diff --git a/.ahoy.yml b/.ahoy.yml index 300f9efa1d..9c2661e05d 100644 --- a/.ahoy.yml +++ b/.ahoy.yml @@ -107,9 +107,9 @@ commands: aliases: [ssh, shell] cmd: | if [ "${#}" -ne 0 ]; then - docker compose exec $(env | cut -f1 -d= | grep "TERM\|COMPOSE_\|GITHUB_\|PACKAGE_\|DOCKER_\|DRUPAL_\|VORTEX_\|ENVIRONMENT_\|LOCALDEV_URL$" | sed 's/^/-e /') cli bash -c "$*" + docker compose exec $(env | cut -f1 -d= | grep -E '^(TERM|LOCALDEV_URL)$|^(COMPOSE|GITHUB|PACKAGE|DOCKER|DRUPAL|VORTEX|ENVIRONMENT)_' | sed 's/^/-e /') cli bash -c "$*" else - docker compose exec $(env | cut -f1 -d= | grep "TERM\|COMPOSE_\|GITHUB_\|PACKAGE_\|DOCKER_\|DRUPAL_\|VORTEX_\|ENVIRONMENT_\|LOCALDEV_URL$" | sed 's/^/-e /') cli bash + docker compose exec $(env | cut -f1 -d= | grep -E '^(TERM|LOCALDEV_URL)$|^(COMPOSE|GITHUB|PACKAGE|DOCKER|DRUPAL|VORTEX|ENVIRONMENT)_' | sed 's/^/-e /') cli bash fi composer: @@ -211,28 +211,28 @@ commands: usage: Install front-end assets. aliases: [fe-install] cmd: | - ahoy cli "yarn install --frozen-lockfile" + ahoy cli "npm ci" #;< DRUPAL_THEME - ahoy cli "yarn --cwd=${WEBROOT}/themes/custom/${DRUPAL_THEME} install --frozen-lockfile" + ahoy cli "npm --prefix=${WEBROOT}/themes/custom/${DRUPAL_THEME} ci" #;> DRUPAL_THEME #;< DRUPAL_THEME fe: usage: Build front-end assets. aliases: [fe-build] - cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run build" + cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run build" fed: usage: Build front-end assets for development. aliases: [fe-build-dev] - cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run build-dev" + cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run build-dev" few: usage: Watch front-end assets during development. aliases: [fe-watch] cmd: | ahoy cli "pkill -9 -f grunt" || true - ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run watch" + ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run watch" #;> DRUPAL_THEME lint: @@ -253,9 +253,9 @@ commands: usage: Lint front-end code. cmd: | ahoy cli vendor/bin/twig-cs-fixer lint - ahoy cli "yarn run lint" + ahoy cli "npm run lint" #;< DRUPAL_THEME - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" + ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" #;> DRUPAL_THEME lint-tests: @@ -291,9 +291,9 @@ commands: usage: Fix lint issues of front-end code. cmd: | ahoy cli vendor/bin/twig-cs-fixer lint --fix - ahoy cli "yarn run lint-fix" + ahoy cli "npm run lint-fix" #;< DRUPAL_THEME - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" + ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" #;> DRUPAL_THEME #;< TOOL_PHPUNIT @@ -322,7 +322,7 @@ commands: #;< TOOL_JEST test-js: usage: Run Jest JavaScript unit tests. - cmd: ahoy cli "yarn test" + cmd: ahoy cli "npm test" #;> TOOL_JEST #;< TOOL_BEHAT diff --git a/.circleci/config.yml b/.circleci/config.yml index 65449720ef..0a5ac6706c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -173,7 +173,7 @@ jobs: if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" #;< TOOL_ESLINT_STYLELINT - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" #;> TOOL_ESLINT_STYLELINT - run: @@ -213,16 +213,16 @@ jobs: #;< TOOL_ESLINT_STYLELINT - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - #;> TOOL_ESLINT_STYLELINT + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] #;< DRUPAL_THEME - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] #;> DRUPAL_THEME + #;> TOOL_ESLINT_STYLELINT # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -233,10 +233,6 @@ jobs: #;< CI_GITLEAKS - *step_setup_remote_docker - - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:v8.30.1 dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] #;> CI_GITLEAKS #;< VORTEX_DEV @@ -252,6 +248,13 @@ jobs: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + #;< CI_GITLEAKS + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:v8.30.1 dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + #;> CI_GITLEAKS + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -274,6 +277,38 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + #;< TOOL_JEST + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + #;> TOOL_JEST + #;< TOOL_PHPUNIT + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + #;> TOOL_PHPUNIT + #;< DRUPAL_THEME + #;< MODULE_SDC_DEVEL + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + #;> MODULE_SDC_DEVEL + #;> DRUPAL_THEME + #;< TOOL_BEHAT + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + #;> TOOL_BEHAT + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -341,7 +376,7 @@ jobs: #;< DB_FETCH_SOURCE_CONTAINER_REGISTRY [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && export VORTEX_EXPORT_DB_CONTAINER_REGISTRY_PUSH_PROCEED=0 #;> DB_FETCH_SOURCE_CONTAINER_REGISTRY - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" #;< DB_FETCH_SOURCE_CONTAINER_REGISTRY grep -q ^VORTEX_DB_IMAGE .env && rm .data/db.sql || true @@ -350,7 +385,7 @@ jobs: #;< DB_FETCH_SOURCE_CONTAINER_REGISTRY if [ -n "${VORTEX_DB_IMAGE:-}" ]; then ./vendor/bin/vortex-push-db-image; fi #;> DB_FETCH_SOURCE_CONTAINER_REGISTRY - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -394,7 +429,7 @@ jobs: if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" #;< TOOL_JEST - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" #;> TOOL_JEST - run: @@ -404,13 +439,13 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi #;< MIGRATION if [ -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" ]; then docker compose exec -T cli mkdir -p .data - docker compose cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" + docker compose --progress quiet cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" rm -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" fi #;> MIGRATION @@ -420,29 +455,31 @@ jobs: #;< TOOL_JEST - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] #;> TOOL_JEST #;< TOOL_PHPUNIT - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -451,7 +488,7 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt @@ -459,7 +496,7 @@ jobs: - run: name: Upload code coverage reports to Codecov command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ -n "${CODECOV_TOKEN}" ] && [ -d /tmp/artifacts/coverage ] && ! echo "${CIRCLE_BRANCH}" | grep -q '^deps/'; then curl -fOs https://uploader.codecov.io/v0.8.0/linux/codecov chmod +x codecov @@ -470,7 +507,7 @@ jobs: - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -482,7 +519,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -497,10 +534,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m #;> TOOL_BEHAT @@ -510,9 +548,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always @@ -556,7 +594,7 @@ jobs: command: | echo "${VORTEX_DEPLOY_TYPES:-}" | grep -vq "artifact" && exit 0 || true mkdir -p "/tmp/workspace/code" - docker compose cp -L cli:"/app/." "/tmp/workspace/code" + docker compose --progress quiet cp -L cli:"/app/." "/tmp/workspace/code" du -sh "/tmp/workspace/code" #;> DEPLOY_TYPES_ARTIFACT diff --git a/.circleci/vortex-test-common.yml b/.circleci/vortex-test-common.yml index e0c9e03dd6..8bc3c6f2ae 100644 --- a/.circleci/vortex-test-common.yml +++ b/.circleci/vortex-test-common.yml @@ -134,6 +134,38 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + #;< TOOL_JEST + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + #;> TOOL_JEST + #;< TOOL_PHPUNIT + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + #;> TOOL_PHPUNIT + #;< DRUPAL_THEME + #;< MODULE_SDC_DEVEL + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + #;> MODULE_SDC_DEVEL + #;> DRUPAL_THEME + #;< TOOL_BEHAT + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + #;> TOOL_BEHAT + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -201,7 +233,7 @@ jobs: #;< DB_FETCH_SOURCE_CONTAINER_REGISTRY [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && export VORTEX_EXPORT_DB_CONTAINER_REGISTRY_PUSH_PROCEED=0 #;> DB_FETCH_SOURCE_CONTAINER_REGISTRY - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" #;< DB_FETCH_SOURCE_CONTAINER_REGISTRY grep -q ^VORTEX_DB_IMAGE .env && rm .data/db.sql || true @@ -210,7 +242,7 @@ jobs: #;< DB_FETCH_SOURCE_CONTAINER_REGISTRY if [ -n "${VORTEX_DB_IMAGE:-}" ]; then ./vendor/bin/vortex-push-db-image; fi #;> DB_FETCH_SOURCE_CONTAINER_REGISTRY - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -254,7 +286,7 @@ jobs: if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" #;< TOOL_JEST - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" #;> TOOL_JEST - run: @@ -264,13 +296,13 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi #;< MIGRATION if [ -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" ]; then docker compose exec -T cli mkdir -p .data - docker compose cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" + docker compose --progress quiet cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" rm -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" fi #;> MIGRATION @@ -280,29 +312,31 @@ jobs: #;< TOOL_JEST - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] #;> TOOL_JEST #;< TOOL_PHPUNIT - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -311,7 +345,7 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt @@ -319,7 +353,7 @@ jobs: - run: name: Upload code coverage reports to Codecov command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ -n "${CODECOV_TOKEN}" ] && [ -d /tmp/artifacts/coverage ] && ! echo "${CIRCLE_BRANCH}" | grep -q '^deps/'; then curl -fOs https://uploader.codecov.io/v0.8.0/linux/codecov chmod +x codecov @@ -330,7 +364,7 @@ jobs: - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -342,7 +376,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -357,10 +391,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m #;> TOOL_BEHAT @@ -370,9 +405,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.claude/skills/prepare-vortex-release/SKILL.md b/.claude/skills/prepare-vortex-release/SKILL.md index 800f2f9ea0..ca9e4e3006 100644 --- a/.claude/skills/prepare-vortex-release/SKILL.md +++ b/.claude/skills/prepare-vortex-release/SKILL.md @@ -92,8 +92,8 @@ Work through each checklist item from the release process doc: repo). **After bumping, grep the whole repo for the previous tooling version** (e.g. `grep -rn "vortex-tooling.*" --exclude-dir=vendor`) - this is the authoritative check, since new pin spots have been added over time. -5. **Theme dependencies** - Run `yarn upgrade` in `web/themes/custom/your_site_theme/`. - Use yarn, NOT npm. +5. **Theme dependencies** - Run `npm update` in `web/themes/custom/your_site_theme/`. + Use npm, NOT yarn. 6. **CI runner PHP** - Ensure the CI runner PHP matches `config.platform.php` (see item 3): the `cimg/php` tag in `.circleci/config.yml` and the `setup-php` `php-version` in the GitHub Actions workflows. @@ -131,6 +131,10 @@ Work through each checklist item from the release process doc: Docker. `ahoy update-videos cli-install` is fast (no Docker). - The command does NOT auto-commit; review the artifact diff under `.vortex/docs/static/img/` and stage manually. + - A recording whose output reports an error, a warning or a failure is not + rendered, and the command stops naming the offending lines. Read them in + `.artifacts/videos/.txt`, fix the command that emits them, and record + again - there is no flag that renders anyway. ## Step 5: Generate release notes diff --git a/.docker/clamav.dockerfile b/.docker/clamav.dockerfile index 5f306a192e..d706b5d51a 100644 --- a/.docker/clamav.dockerfile +++ b/.docker/clamav.dockerfile @@ -8,7 +8,7 @@ # @see https://hub.docker.com/r/uselagoon/commons/tags # @see https://github.com/uselagoon/lagoon-images/tree/main/images/commons -FROM uselagoon/commons:26.8.0 AS commons +FROM uselagoon/commons:26.8.1 AS commons FROM clamav/clamav-debian:1.5.4 diff --git a/.docker/cli.dockerfile b/.docker/cli.dockerfile index 32acefb03e..59087b65dc 100644 --- a/.docker/cli.dockerfile +++ b/.docker/cli.dockerfile @@ -8,7 +8,7 @@ # @see https://hub.docker.com/r/uselagoon/php-8.4-cli-drupal/tags # @see https://github.com/uselagoon/lagoon-images/tree/main/images/php-cli-drupal -FROM uselagoon/php-8.4-cli-drupal:26.8.0 +FROM uselagoon/php-8.4-cli-drupal:26.8.1 # Add missing variables. # @todo Remove once https://github.com/uselagoon/lagoon/issues/3121 is resolved. @@ -105,9 +105,10 @@ RUN mkdir -p -m 2775 "/app/${WEBROOT}/${DRUPAL_PUBLIC_FILES}" "/app/${WEBROOT}/$ #;< DRUPAL_THEME RUN if [ "${VORTEX_FRONTEND_BUILD_SKIP}" != "1" ]; then \ theme_path="/app/${WEBROOT}/themes/custom/${DRUPAL_THEME}"; \ - yarn --cwd="${theme_path}" install --frozen-lockfile --no-progress && \ - yarn --cwd="${theme_path}" run build && \ - yarn cache clean; \ + export npm_config_cache=/tmp/npm-cache; \ + npm --prefix="${theme_path}" ci --no-progress --no-audit --no-fund && \ + npm --prefix="${theme_path}" run build && \ + rm -rf /tmp/npm-cache; \ fi #;> DRUPAL_THEME diff --git a/.docker/config/database/my.cnf b/.docker/config/database/my.cnf index 27b23b9b02..85f1bf9c39 100644 --- a/.docker/config/database/my.cnf +++ b/.docker/config/database/my.cnf @@ -1 +1,9 @@ -# Custom configuration for database clients. +# Custom configuration for the database service. + +[mysqld] +# The image default of 128MB is exhausted during a large dump import faster +# than the log checkpointer reclaims it, aborting the import with +# "ERROR 1114 ... table is full". +# MariaDB images abort at startup on this MySQL-only variable, so the +# "loose-" prefix downgrades that to a warning. +loose-innodb_redo_log_capacity = 1073741824 diff --git a/.docker/database.dockerfile b/.docker/database.dockerfile index a59f3a6da8..652ce1bc73 100644 --- a/.docker/database.dockerfile +++ b/.docker/database.dockerfile @@ -1,17 +1,21 @@ +# check=skip=SecretsUsedInArgOrEnv # Database container. # +# The check skipped above is BuildKit's twin of DL3064, ignored inline below. +# # @see https://hub.docker.com/r/uselagoon/mysql-8.4/tags # @see https://github.com/uselagoon/lagoon-images/tree/main/images/mysql # # The ARG value will be updated with a value passed from docker-compose.yml -ARG IMAGE=uselagoon/mysql-8.4:26.8.0 +ARG IMAGE=uselagoon/mysql-8.4:26.8.1 FROM ${IMAGE} # hadolint ignore=DL3066 # named account provided by the base image USER root -COPY ./.docker/config/database/my.cnf /etc/my.cnf.d/server.cnf -RUN fix-permissions /etc/my.cnf.d/ +COPY ./.docker/config/database/my.cnf /etc/mysql/conf.d/server.cnf +# The entrypoint rewrites files in this directory before starting the server. +RUN fix-permissions /etc/mysql/conf.d/ # hadolint ignore=DL3064 # local development credentials only ENV MYSQL_DATABASE=drupal \ diff --git a/.docker/nginx-drupal.dockerfile b/.docker/nginx-drupal.dockerfile index a2669dced2..0ed0c8a8e4 100644 --- a/.docker/nginx-drupal.dockerfile +++ b/.docker/nginx-drupal.dockerfile @@ -8,7 +8,7 @@ ARG CLI_IMAGE FROM ${CLI_IMAGE:-cli} AS cli -FROM uselagoon/nginx-drupal:26.8.0 +FROM uselagoon/nginx-drupal:26.8.1 # Webroot is used for Nginx web root configuration. ARG WEBROOT=web diff --git a/.docker/php.dockerfile b/.docker/php.dockerfile index 5088938146..3b51c48b36 100644 --- a/.docker/php.dockerfile +++ b/.docker/php.dockerfile @@ -9,7 +9,7 @@ ARG CLI_IMAGE FROM ${CLI_IMAGE:-cli} AS cli -FROM uselagoon/php-8.4-fpm:26.8.0 +FROM uselagoon/php-8.4-fpm:26.8.1 # hadolint ignore=DL3018 # the package set tracks the pinned base image RUN apk add --no-cache tzdata diff --git a/.docker/solr.dockerfile b/.docker/solr.dockerfile index 26051ef14f..a27eae0b6a 100644 --- a/.docker/solr.dockerfile +++ b/.docker/solr.dockerfile @@ -3,7 +3,7 @@ # @see https://hub.docker.com/r/uselagoon/solr-9-drupal/tags # @see https://github.com/uselagoon/lagoon-images/blob/main/images/solr-drupal/9.Dockerfile -FROM uselagoon/solr-9-drupal:26.8.0 +FROM uselagoon/solr-9-drupal:26.8.1 # Solr jump-start config needs to be manually copied from the search_api_solr # Drupal module to .docker/config/solr/config-set. diff --git a/.editorconfig b/.editorconfig index 00607a4581..b448d1278e 100644 --- a/.editorconfig +++ b/.editorconfig @@ -13,13 +13,17 @@ charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true +# Matches the Prettier 'printWidth' in .prettierrc.json. +[*.js] +max_line_length = 160 + [*.{json,lock}] indent_size = 4 [*.xml] indent_size = 4 -[.eslintrc.json] +[eslint.config.mjs] indent_size = 2 [.prettierrc.json] diff --git a/.env b/.env index 3bbb159a4a..4ffa8e6158 100644 --- a/.env +++ b/.env @@ -114,7 +114,7 @@ DRUPAL_CLAMAV_MODE=daemon # or fresh install from profile), running updates, appying configuration # changes, clearing caches and performing other tasks that prepare the site for # use. -# @see https://www.vortextemplate.com/docs/drupal/provision +# @see https://www.vortextemplate.com/docs/development/provision # Set to 'profile' to install a site from profile instead of the database dump. VORTEX_PROVISION_TYPE=database @@ -146,13 +146,13 @@ VORTEX_PROVISION_VERIFY_CONFIG_UNCHANGED_AFTER_UPDATE=0 # # Database sanitization is enabled by default in all non-production # environments and is always skipped in the production environment. -# @see https://www.vortextemplate.com/docs/drupal/provision#database-sanitization +# @see https://www.vortextemplate.com/docs/development/provision#database-sanitization VORTEX_PROVISION_SANITIZE_DB_SKIP=0 # Sanitization email pattern. # # Applied if database sanitization is enabled. -# @see https://www.vortextemplate.com/docs/drupal/provision#database-sanitization +# @see https://www.vortextemplate.com/docs/development/provision#database-sanitization VORTEX_PROVISION_SANITIZE_DB_EMAIL=user_%uid@your-site-domain.example #;> !PROVISION_TYPE_PROFILE diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index b74d22e4b2..0000000000 --- a/.eslintignore +++ /dev/null @@ -1,10 +0,0 @@ -node_modules/ -vendor/ -web/core/ -web/libraries/ -web/modules/contrib/ -web/profiles/contrib/ -web/themes/contrib/ -web/sites/*/files/ -*.min.js -*.min.css diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 97387452cf..0000000000 --- a/.eslintrc.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "extends": [ - "airbnb-base", - "plugin:prettier/recommended", - "plugin:yml/recommended" - ], - "root": true, - "env": { - "browser": true, - "es6": true, - "node": true - }, - "parserOptions": { - "ecmaVersion": 2020 - }, - "plugins": [ - "jsdoc" - ], - "globals": { - "Drupal": true, - "drupalSettings": true, - "drupalTranslations": true, - "jQuery": true, - "_": true, - "Cookies": true, - "Backbone": true, - "htmx": true, - "loadjs": true, - "Shepherd": true, - "Sortable": true, - "once": true, - "CKEditor5": true, - "tabbable": true, - "transliterate": true, - "bodyScrollLock" : true, - "FloatingUIDOM": true - }, - "rules": { - "prettier/prettier": "error", - "consistent-return": ["off"], - "no-underscore-dangle": ["off"], - "max-nested-callbacks": ["warn", 3], - "import/no-mutable-exports": ["warn"], - "no-plusplus": ["warn", { - "allowForLoopAfterthoughts": true - }], - "no-param-reassign": ["off"], - "no-prototype-builtins": ["off"], - "jsdoc/require-returns": ["off"], - "jsdoc/require-returns-type": ["warn"], - "jsdoc/require-returns-description": ["warn"], - "jsdoc/require-returns-check": ["warn"], - "jsdoc/require-param": ["warn"], - "jsdoc/require-param-type": ["warn"], - "jsdoc/require-param-description": ["warn"], - "jsdoc/check-param-names": ["warn"], - "jsdoc/valid-types": ["warn"], - "jsdoc/require-param-name": ["warn"], - "jsdoc/check-tag-names": ["warn"], - "no-unused-vars": ["warn"], - "operator-linebreak": ["error", "after", { "overrides": { "?": "ignore", ":": "ignore" } }], - "yml/indent": ["error", 2] - }, - "overrides": [ - { - "files": ["*.test.js"], - "env": { "jest": true }, - "rules": { - "global-require": "off", - "import/extensions": "off", - "max-nested-callbacks": ["warn", 5], - "jsdoc/check-tag-names": "off" - } - } - ], - "settings": { - "jsdoc": { - "tagNamePreference": { - "returns": "return", - "property": "prop" - } - } - } -} diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index 8b07383716..32072475c0 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -2,8 +2,9 @@ name-template: '$RESOLVED_VERSION' tag-template: '$RESOLVED_VERSION' change-template: '- $TITLE @$AUTHOR (#$NUMBER)' change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks. -version-resolver: - default: minor +categories: + - type: 'version-resolver' + semver-increment: 'minor' template: | ## What's new since $PREVIOUS_TAG diff --git a/.github/workflows/assign-author.yml b/.github/workflows/assign-author.yml index e92231599d..fdff9b6521 100644 --- a/.github/workflows/assign-author.yml +++ b/.github/workflows/assign-author.yml @@ -15,4 +15,4 @@ jobs: steps: - name: Assign author - uses: toshimaru/auto-author-assign@3e19bfc990cb1cf0589dce95e9f75289bb1e22de # v3.0.3 + uses: toshimaru/auto-author-assign@a78a94b219445cece8ccf0d45fec60af449f212a # v3.1.0 diff --git a/.github/workflows/audit.yml b/.github/workflows/audit.yml index 3485c2e484..4295e88a9d 100644 --- a/.github/workflows/audit.yml +++ b/.github/workflows/audit.yml @@ -82,12 +82,6 @@ jobs: - name: Load environment variables from .env run: t=$(mktemp) && export -p >"${t}" && set -a && . ./.env && set +a && . "${t}" && env >> "$GITHUB_ENV" - #;< CI_GITLEAKS - - name: Scan for committed secrets with Gitleaks - run: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:v8.30.1 dir . --no-banner - continue-on-error: ${{ vars.VORTEX_CI_GITLEAKS_IGNORE_FAILURE == '1' }} - #;> CI_GITLEAKS - #;< VORTEX_DEV #; Vortex does not track 'composer.lock', so resolve dependencies to give #; the audit below something to read. Nothing is installed, so the runner @@ -97,5 +91,13 @@ jobs: #;> VORTEX_DEV - name: Audit Composer packages + if: ${{ !cancelled() }} run: composer audit --locked continue-on-error: ${{ vars.VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE == '1' }} + + #;< CI_GITLEAKS + - name: Scan for committed secrets with Gitleaks + if: ${{ !cancelled() }} + run: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:v8.30.1 dir . --no-banner + continue-on-error: ${{ vars.VORTEX_CI_GITLEAKS_IGNORE_FAILURE == '1' }} + #;> CI_GITLEAKS diff --git a/.github/workflows/build-test-deploy.yml b/.github/workflows/build-test-deploy.yml index eafc12d1ab..45ce63d12a 100644 --- a/.github/workflows/build-test-deploy.yml +++ b/.github/workflows/build-test-deploy.yml @@ -141,7 +141,7 @@ jobs: if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" #;< TOOL_ESLINT_STYLELINT - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" #;> TOOL_ESLINT_STYLELINT - name: Validate Composer configuration is normalized @@ -180,16 +180,16 @@ jobs: #;< TOOL_ESLINT_STYLELINT - name: Lint module code with NodeJS linters - run: docker compose exec -T cli bash -c "yarn run lint" + run: docker compose exec -T cli bash -c "npm run lint" continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} - #;> TOOL_ESLINT_STYLELINT #;< DRUPAL_THEME - name: Lint theme code with NodeJS linters if: ${{ vars.VORTEX_FRONTEND_BUILD_SKIP != '1' }} - run: docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" + run: docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} #;> DRUPAL_THEME + #;> TOOL_ESLINT_STYLELINT test: runs-on: ubuntu-latest @@ -228,8 +228,44 @@ jobs: # Which branch to use as a source of DB caches. VORTEX_CI_DB_CACHE_BRANCH: "develop" #;> !PROVISION_TYPE_PROFILE + # Which tools run on this instance. Tools that only need to run once are + # pinned to the first instance. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + VORTEX_CI_RUNNER_INDEX: ${{ strategy.job-index }} + VORTEX_CI_RUNNER_TOTAL: ${{ strategy.job-total }} + #;< TOOL_JEST + VORTEX_CI_IS_JEST_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + #;> TOOL_JEST + #;< TOOL_PHPUNIT + VORTEX_CI_IS_PHPUNIT_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + #;> TOOL_PHPUNIT + #;< DRUPAL_THEME + #;< MODULE_SDC_DEVEL + VORTEX_CI_IS_SDC_DEVEL_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + #;> MODULE_SDC_DEVEL + #;> DRUPAL_THEME + #;< TOOL_BEHAT + # Runs on every instance, using the `p` profile. + VORTEX_CI_IS_BEHAT_RUNNER: true + # Subtracted from the instance index to derive the profile number. Raise + # it by one for every leading instance that does not run Behat, so the + # first Behat instance still selects the `p0` catch-all profile. + VORTEX_CI_BEHAT_PROFILE_OFFSET: 0 + #;> TOOL_BEHAT steps: + # Frees disk space by removing preinstalled toolchains unused by this project. + - name: Free up disk space on the runner + if: ${{ vars.VORTEX_CI_FREE_DISK_SPACE == '1' }} + run: | + set -- /usr/local/.ghcup /usr/share/swift /usr/local/share/powershell /usr/share/dotnet /opt/hostedtoolcache/CodeQL + # set -- "$@" /usr/local/lib/android # Removes about 10GB more, but takes about 50s. Uncomment to enable. + sudo rm -rf "$@" || true + + - name: Report disk usage + run: df -h + - name: Check out code uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: @@ -339,7 +375,7 @@ jobs: #;< DB_FETCH_SOURCE_CONTAINER_REGISTRY if [ "${STRATEGY_JOB_TOTAL}" -gt 1 ] && [ "${STRATEGY_JOB_INDEX}" -ne 0 ]; then export VORTEX_EXPORT_DB_CONTAINER_REGISTRY_PUSH_PROCEED=0; fi #;> DB_FETCH_SOURCE_CONTAINER_REGISTRY - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" #;< DB_FETCH_SOURCE_CONTAINER_REGISTRY grep -q ^VORTEX_DB_IMAGE .env && rm .data/db.sql || true @@ -348,7 +384,7 @@ jobs: #;< DB_FETCH_SOURCE_CONTAINER_REGISTRY if [ -n "${VORTEX_DB_IMAGE:-}" ]; then ./vendor/bin/vortex-push-db-image; fi #;> DB_FETCH_SOURCE_CONTAINER_REGISTRY - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true timeout-minutes: 30 #;< DB_FETCH_SOURCE_CONTAINER_REGISTRY env: @@ -372,7 +408,7 @@ jobs: if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" #;< TOOL_JEST - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" #;> TOOL_JEST - name: Provision site @@ -381,13 +417,13 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi #;< MIGRATION if [ -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" ]; then docker compose exec -T cli mkdir -p .data - docker compose cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" + docker compose --progress quiet cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" rm -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" fi #;> MIGRATION @@ -396,27 +432,27 @@ jobs: #;< TOOL_JEST - name: Test with Jest - if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} - run: docker compose exec -T cli bash -c "yarn test" + if: ${{ env.VORTEX_CI_IS_JEST_RUNNER == 'true' }} + run: docker compose exec -T cli bash -c "npm test" continue-on-error: ${{ vars.VORTEX_CI_JEST_IGNORE_FAILURE == '1' }} #;> TOOL_JEST #;< TOOL_PHPUNIT - name: Test with PHPUnit - if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} run: docker compose exec -T cli vendor/bin/phpunit continue-on-error: ${{ vars.VORTEX_CI_PHPUNIT_IGNORE_FAILURE == '1' }} - name: Process PHPUnit logs and coverage - if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} run: | mkdir -p ".logs" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. ".logs/" + docker compose --progress quiet cp cli:/app/.logs/. ".logs/" fi - name: Extract code coverage - if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} run: | RATE=$(grep -om1 'line-rate="[0-9.]*"' .logs/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") @@ -434,7 +470,7 @@ jobs: VORTEX_CI_CODE_COVERAGE_THRESHOLD: ${{ vars.VORTEX_CI_CODE_COVERAGE_THRESHOLD || '90' }} - name: Post coverage summary as PR comment - if: ${{ github.event_name == 'pull_request' && (matrix.instance == 0 || strategy.job-total == 1) && vars.VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP != '1' }} + if: ${{ github.event_name == 'pull_request' && env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' && vars.VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP != '1' }} uses: marocchino/sticky-pull-request-comment@5770ad5eb8f42dd2c4f34da00c94c5381e49af88 # v3.0.5 with: header: coverage-gha @@ -455,7 +491,7 @@ jobs: #;< CODE_COVERAGE_PROVIDER_CODECOV - name: Upload coverage report to Codecov uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7 - if: ${{ (matrix.instance == 0 || strategy.job-total == 1) && env.CODECOV_TOKEN != '' }} + if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' && env.CODECOV_TOKEN != '' }} continue-on-error: true with: directory: .logs/coverage @@ -466,7 +502,7 @@ jobs: #;> CODE_COVERAGE_PROVIDER_CODECOV - name: Check code coverage threshold - if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} run: | if [ "${COVERAGE_PERCENT//.}" -lt "$((VORTEX_CI_CODE_COVERAGE_THRESHOLD*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD}%" @@ -479,7 +515,7 @@ jobs: #;< DRUPAL_THEME #;< MODULE_SDC_DEVEL - name: Validate Single Directory Components - if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + if: ${{ env.VORTEX_CI_IS_SDC_DEVEL_RUNNER == 'true' }} run: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) @@ -494,16 +530,15 @@ jobs: #;< TOOL_BEHAT - name: Test with Behat + if: ${{ env.VORTEX_CI_IS_BEHAT_RUNNER == 'true' }} run: | # shellcheck disable=SC2170 - if [ "${STRATEGY_JOB_TOTAL}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${STRATEGY_JOB_INDEX}}"; fi + if [ "${VORTEX_CI_RUNNER_TOTAL}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" env: VORTEX_CI_BEHAT_PROFILE: ${{ vars.VORTEX_CI_BEHAT_PROFILE }} - STRATEGY_JOB_TOTAL: ${{ strategy.job-total }} - STRATEGY_JOB_INDEX: ${{ strategy.job-index }} continue-on-error: ${{ vars.VORTEX_CI_BEHAT_IGNORE_FAILURE == '1' }} timeout-minutes: 30 #;> TOOL_BEHAT @@ -513,7 +548,7 @@ jobs: run: | mkdir -p ".logs" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. ".logs/" + docker compose --progress quiet cp cli:/app/.logs/. ".logs/" fi - name: Upload test artifacts @@ -565,6 +600,17 @@ jobs: VORTEX_DEBUG: ${{ vars.VORTEX_DEBUG }} steps: + # Frees disk space by removing preinstalled toolchains unused by this project. + - name: Free up disk space on the runner + if: ${{ vars.VORTEX_CI_FREE_DISK_SPACE == '1' }} + run: | + set -- /usr/local/.ghcup /usr/share/swift /usr/local/share/powershell /usr/share/dotnet /opt/hostedtoolcache/CodeQL + # set -- "$@" /usr/local/lib/android # Removes about 10GB more, but takes about 50s. Uncomment to enable. + sudo rm -rf "$@" || true + + - name: Report disk usage + run: df -h + - name: Check out code uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: @@ -600,7 +646,7 @@ jobs: if: ${{ contains(env.VORTEX_DEPLOY_TYPES, 'artifact') }} run: | mkdir -p "/tmp/workspace/code" "/tmp/artifacts" - docker compose cp -L cli:"/app/." "/tmp/workspace/code" + docker compose --progress quiet cp -L cli:"/app/." "/tmp/workspace/code" tar -C /tmp/workspace -cpf /tmp/artifacts/code.tar code du -sh "/tmp/artifacts" diff --git a/.github/workflows/vortex-release.yml b/.github/workflows/vortex-release.yml index 4409b71ddc..ec07ea0f05 100644 --- a/.github/workflows/vortex-release.yml +++ b/.github/workflows/vortex-release.yml @@ -146,7 +146,6 @@ jobs: env: CURRENT_MAJOR: ${{ vars.VORTEX_CURRENT_MAJOR || '1' }} - OTHER_MAJOR: ${{ (vars.VORTEX_CURRENT_MAJOR || '1') == '1' && '2' || '1' }} steps: - name: Checkout code @@ -214,23 +213,12 @@ jobs: run: yarn install --frozen-lockfile working-directory: .vortex/docs - # Assemble the multi-version site for production: snapshot this ref's docs - # as the current major (served at the bare '/docs') and pull the other - # major's '{N}.x' branch docs in at '/docs/v{other}'. All driven by - # 'VORTEX_CURRENT_MAJOR'. Mirrors the same step in 'vortex-test-docs.yml' - # (development / Netlify). - - name: Assemble versioned docs - run: | - yarn docusaurus docs:version "${CURRENT_MAJOR}.x" - git -C "${{ github.workspace }}" fetch origin "${OTHER_MAJOR}.x" --depth=1 || { echo "Failed to fetch the ${OTHER_MAJOR}.x branch."; exit 1; } - git -C "${{ github.workspace }}" rev-parse --verify "origin/${OTHER_MAJOR}.x" || { echo "The ${OTHER_MAJOR}.x branch does not exist."; exit 1; } - rm -rf content - git -C "${{ github.workspace }}" checkout "origin/${OTHER_MAJOR}.x" -- .vortex/docs/content || { echo "Failed to check out content from ${OTHER_MAJOR}.x."; exit 1; } - working-directory: .vortex/docs - - - name: Build documentation site - run: yarn run build - working-directory: .vortex/docs + # Production (GitHub Pages) serves the same combined site that + # 'vortex-test-docs.yml' builds for development deploys and previews. The + # binaries copied above are picked up from 'docs/static'. + - name: Build the combined documentation site + run: ./docs/.utils/assemble-combined-docs.sh + working-directory: .vortex env: VORTEX_CURRENT_MAJOR: ${{ env.CURRENT_MAJOR }} @@ -251,7 +239,7 @@ jobs: - name: Upload documentation site uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5 with: - path: .vortex/docs/build + path: .vortex/docs_combined/build - name: Deploy to GitHub Pages uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5 diff --git a/.github/workflows/vortex-test-docs.yml b/.github/workflows/vortex-test-docs.yml index af9ab7cb5a..07bd6fec64 100644 --- a/.github/workflows/vortex-test-docs.yml +++ b/.github/workflows/vortex-test-docs.yml @@ -25,6 +25,10 @@ jobs: env: CURRENT_MAJOR: ${{ vars.VORTEX_CURRENT_MAJOR || '1' }} OTHER_MAJOR: ${{ (vars.VORTEX_CURRENT_MAJOR || '1') == '1' && '2' || '1' }} + # The major the triggering commit ships. Each major builds its own binary + # from its own workflow, so the workflow name identifies the major for + # pushes, branches and fork pull requests alike. + DOCS_MAJOR: ${{ github.event.workflow_run.name == 'Vortex - Test CLI' && '2' || '1' }} BINARY_ARTIFACT: ${{ github.event.workflow_run.name == 'Vortex - Test CLI' && 'vortex-cli' || 'vortex-installer' }} BINARY_FILE: ${{ github.event.workflow_run.name == 'Vortex - Test CLI' && 'vortex.phar' || 'installer.phar' }} @@ -64,7 +68,7 @@ jobs: # searching by name returns the most recent successful run across all # branches, which would pull a binary built from a different commit. - name: Download the binary artifact - uses: dawidd6/action-download-artifact@b6e2e70617bc3265edd6dab6c906732b2f1ae151 # v21 + uses: dawidd6/action-download-artifact@d63b86af1b34672e53c440b1b83979861906bad7 # v24 with: run_id: ${{ github.event.workflow_run.id }} name: ${{ env.BINARY_ARTIFACT }} @@ -99,22 +103,6 @@ jobs: run: yarn run spellcheck working-directory: '${{ github.workspace }}/.vortex/docs' - # On the main (development) deploy, assemble the multi-version site: - # snapshot main's docs as the current major (served at the bare '/docs') - # and pull the other major's '{N}.x' branch docs in at '/docs/v{other}'. - # Driven by 'VORTEX_CURRENT_MAJOR'. Skipped on PR/branch builds, which stay - # single-version previews. Mirrors the same step in 'vortex-release.yml' - # (production / GitHub Pages). - - name: Assemble versioned docs - if: github.event.workflow_run.head_branch == 'main' - run: | - yarn docusaurus docs:version "${CURRENT_MAJOR}.x" - git -C "${{ github.workspace }}" fetch origin "${OTHER_MAJOR}.x" --depth=1 || { echo "Failed to fetch the ${OTHER_MAJOR}.x branch."; exit 1; } - git -C "${{ github.workspace }}" rev-parse --verify "origin/${OTHER_MAJOR}.x" || { echo "The ${OTHER_MAJOR}.x branch does not exist."; exit 1; } - rm -rf content - git -C "${{ github.workspace }}" checkout "origin/${OTHER_MAJOR}.x" -- .vortex/docs/content || { echo "Failed to check out content from ${OTHER_MAJOR}.x."; exit 1; } - working-directory: '${{ github.workspace }}/.vortex/docs' - # On the main deploy, publish both majors to match the multi-version # docs: '/v1/install' and '/v2/install' are the stable per-major pins and # the bare '/install' is a copy of the current major's pin (the @@ -145,11 +133,15 @@ jobs: cp "vortex-v${OTHER_MAJOR}/.vortex/installer/build/installer.phar" ".vortex/docs/static/v${OTHER_MAJOR}/install" cp ".vortex/docs/static/v${CURRENT_MAJOR}/install" .vortex/docs/static/install - - name: Build documentation site - run: yarn run build - working-directory: '${{ github.workspace }}/.vortex/docs' + # Building the combined site is what checks links across both majors, so + # every branch builds it. It runs after the binaries are staged, which the + # assembly copies across with the rest of 'docs/'. + - name: Build the combined documentation site + run: ./docs/.utils/assemble-combined-docs.sh + working-directory: '${{ github.workspace }}/.vortex' env: VORTEX_CURRENT_MAJOR: ${{ env.CURRENT_MAJOR }} + VORTEX_DOCS_MAJOR: ${{ env.DOCS_MAJOR }} # This workflow runs via 'workflow_run', where 'github.ref' is always the # default branch, so the action's branch-based production detection cannot @@ -162,7 +154,7 @@ jobs: id: netlify uses: nwtgck/actions-netlify@d22a32a27c918fe470bbc562e984f80ec48c2668 # v4.0 with: - publish-dir: '.vortex/docs/build' + publish-dir: '.vortex/docs_combined/build' production-deploy: ${{ github.event.workflow_run.head_branch == 'main' }} deploy-message: "Deploy from GitHub Actions" enable-pull-request-comment: false diff --git a/.gitignore b/.gitignore index e02e81705b..11a32aed47 100644 --- a/.gitignore +++ b/.gitignore @@ -39,16 +39,17 @@ recipes/* #;> CONTENT_MODEL #;< AI_CODE_INSTRUCTIONS -# Ignore all Claude files by default. Custom files should be added explicitly. +# Claude writes machine-local state into '.claude/', so it stays an allow +# list: un-ignore only the files shared with the team. .claude/* !.claude/settings.json +!.claude/skills/ #;> AI_CODE_INSTRUCTIONS #;< VORTEX_DEV #; Ignore these files in Vortex itself, but do not ignore in consumer site. /composer.lock /patches.lock.json -!.claude/skills/ #;> VORTEX_DEV # Dependencies. diff --git a/.gitignore.artifact b/.gitignore.artifact index 6b60c4eeb1..c62e96e850 100644 --- a/.gitignore.artifact +++ b/.gitignore.artifact @@ -31,8 +31,6 @@ web/sites/simpletest /.docker /.dockerignore /.editorconfig -/.eslintignore -/.eslintrc.json /.gitattributes /.github /.gitignore.artifact @@ -45,6 +43,7 @@ web/sites/simpletest /AGENTS.md /CLAUDE.md /docker-compose.yml +/eslint.config.mjs /renovate.json #;< CI_PROVIDER_GHA @@ -84,18 +83,17 @@ web/sites/simpletest /package-lock.json /patches /patches.lock.json -/yarn.lock web/themes/**/node_modules # Custom theme asset sources - only compiled assets in 'build' are deployed. -web/themes/custom/your_site_theme/.eslintrc.json +web/themes/custom/your_site_theme/eslint.config.mjs web/themes/custom/your_site_theme/fonts web/themes/custom/your_site_theme/images web/themes/custom/your_site_theme/js web/themes/custom/your_site_theme/package.json +web/themes/custom/your_site_theme/package-lock.json web/themes/custom/your_site_theme/postcss.config.js web/themes/custom/your_site_theme/scss -web/themes/custom/your_site_theme/yarn.lock # Caches, data, logs and temporary artifacts. .artifacts diff --git a/.prettierrc.json b/.prettierrc.json index b5ed527867..8ef17490e8 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -1,10 +1,12 @@ { - "printWidth": 80, + "printWidth": 160, "semi": true, "singleQuote": true, "trailingComma": "all", "plugins": ["@homer0/prettier-plugin-jsdoc"], + "jsdocPrintWidth": 80, "jsdocReplaceTagsSynonyms": false, + "jsdocUseTypeScriptTypesCasing": false, "overrides": [ { "files": ["*.css"], diff --git a/.vortex/.ahoy.yml b/.vortex/.ahoy.yml index 55e5dc7c2b..cc5241a96b 100644 --- a/.vortex/.ahoy.yml +++ b/.vortex/.ahoy.yml @@ -35,6 +35,18 @@ commands: [ ! -d ./docs/node_modules ] && yarn --cwd=docs install --frozen-lockfile yarn --cwd=docs run build + docs-combined: + usage: Build the combined site serving both majors into the disposable 'docs_combined' directory. + cmd: ./docs/.utils/assemble-combined-docs.sh + + docs-combined-serve: + usage: Serve the built combined site on port 4000. Pass a port as the first argument to override. + cmd: | + [ -d ./docs_combined/build ] || { echo "No combined site found. Run 'ahoy docs-combined' first."; exit 1; } + port="${1:-4000}" + echo "Serving the combined documentation site at http://localhost:${port}" + php -S "localhost:${port}" -t ./docs_combined/build ./docs/.utils/serve-router.php + build-cli: name: Build the Vortex CLI PHAR. cmd: | diff --git a/.vortex/.gitignore b/.vortex/.gitignore new file mode 100644 index 0000000000..5949aeabba --- /dev/null +++ b/.vortex/.gitignore @@ -0,0 +1,4 @@ +# The combined documentation site built by `ahoy docs-combined`. It is a +# generated copy of `docs/` carrying both majors, rebuilt from scratch on every +# run and safe to delete at any time. +/docs_combined diff --git a/.vortex/CLAUDE.md b/.vortex/CLAUDE.md index ca53dc09f4..b975f25e84 100644 --- a/.vortex/CLAUDE.md +++ b/.vortex/CLAUDE.md @@ -165,15 +165,22 @@ commit its output manually. Run both after the code change is committed. ## Documentation videos -Six terminal demo videos live in `.vortex/docs/static/img/` (`cli-install.*`, -`build.*`, `provision.*`, `lint.*`, `test.*`, `test-bdd.*`). Regenerate from -`.vortex/` with `ahoy update-videos [names]`. A video goes stale when the +Nine terminal demo videos live in `.vortex/docs/static/img/` (`cli-install.*`, +`build.*`, `provision.*`, `lint.*`, `test.*`, `test-bdd.*`, `info.*`, +`doctor.*`, `doctor-info.*`). Regenerate from `.vortex/` with +`ahoy update-videos [names]`. A video goes stale when the command it records changes behavior: - `cli-install` - any prompt flow change. - `build`, `provision` - changes to `.ahoy.yml` build/provision targets or `scripts/vortex/provision*`. - `lint`, `test`, `test-bdd` - changes to the linter or test-runner setup. +- `info`, `doctor`, `doctor-info` - changes to the reported environment. + +A published video is a claim that the command it records runs clean, so each +recording is decoded to plain text at `.artifacts/videos/.txt` and is not +rendered when that text reports an error, a warning or a failure. There is no +override flag: fix the output at the command that emits it and record again. `update-videos` does not commit - review the diff under `.vortex/docs/static/img/` and commit manually. See `.vortex/docs/CLAUDE.md` for the pipeline internals diff --git a/.vortex/cli/rector.php b/.vortex/cli/rector.php index de25426eda..f6ba9f2c56 100644 --- a/.vortex/cli/rector.php +++ b/.vortex/cli/rector.php @@ -18,13 +18,14 @@ use Rector\CodingStyle\Rector\Catch_\CatchExceptionNameMatchingTypeRector; use Rector\CodingStyle\Rector\ClassLike\NewlineBetweenClassLikeStmtsRector; use Rector\CodingStyle\Rector\ClassMethod\NewlineBeforeNewAssignSetRector; -use Rector\CodingStyle\Rector\FuncCall\CountArrayToEmptyArrayComparisonRector; use Rector\CodingStyle\Rector\Stmt\NewlineAfterStatementRector; use Rector\Config\RectorConfig; use Rector\DeadCode\Rector\If_\RemoveAlwaysTrueIfConditionRector; use Rector\Naming\Rector\Assign\RenameVariableToMatchMethodCallReturnTypeRector; use Rector\Naming\Rector\ClassMethod\RenameParamToMatchTypeRector; use Rector\Naming\Rector\ClassMethod\RenameVariableToMatchNewTypeRector; +use Rector\Naming\Rector\Foreach_\RenameForeachValueVariableToMatchExprVariableRector; +use Rector\Naming\Rector\Foreach_\RenameForeachValueVariableToMatchMethodCallReturnTypeRector; use Rector\Php55\Rector\String_\StringClassNameToClassConstantRector; use Rector\Php80\Rector\Switch_\ChangeSwitchToMatchRector; use Rector\PHPUnit\CodeQuality\Rector\Class_\YieldDataProviderRector; @@ -47,7 +48,6 @@ CatchExceptionNameMatchingTypeRector::class, ChangeSwitchToMatchRector::class, CompleteDynamicPropertiesRector::class, - CountArrayToEmptyArrayComparisonRector::class, DisallowedEmptyRuleFixerRector::class, InlineArrayReturnAssignRector::class, NewlineAfterStatementRector::class, @@ -57,6 +57,8 @@ PrivatizeFinalClassPropertyRector::class, PrivatizeLocalGetterToPropertyRector::class, RemoveAlwaysTrueIfConditionRector::class, + RenameForeachValueVariableToMatchExprVariableRector::class, + RenameForeachValueVariableToMatchMethodCallReturnTypeRector::class, RenameParamToMatchTypeRector::class, RenameVariableToMatchMethodCallReturnTypeRector::class, RenameVariableToMatchNewTypeRector::class, diff --git a/.vortex/cli/src/Prompts/Handlers/Tools.php b/.vortex/cli/src/Prompts/Handlers/Tools.php index 45311b3324..c6fa7b8335 100644 --- a/.vortex/cli/src/Prompts/Handlers/Tools.php +++ b/.vortex/cli/src/Prompts/Handlers/Tools.php @@ -8,6 +8,7 @@ use AlexSkrypnyk\File\Replacer\Replacement; use DrevOps\VortexCli\Utils\File; use DrevOps\VortexCli\Utils\JsonManipulator; +use DrevOps\VortexCli\Utils\NpmLock; use DrevOps\VortexCli\Utils\Strings; use DrevOps\VortexCli\Utils\Yaml; use function iter\flatten; @@ -161,15 +162,7 @@ protected function processTool(string $name): void { } } - // Remove dependencies from package.json. - if (isset($tool['package.json']) && is_callable($tool['package.json'])) { - $package_path = $this->tmpDir . '/package.json'; - $pj = JsonManipulator::fromFile($package_path); - if ($pj instanceof JsonManipulator) { - $tool['package.json']($pj); - file_put_contents($package_path, $pj->getContents()); - } - } + $this->processNpmManifests($tool); // Remove command definitions from Ahoy. if (isset($tool['ahoy'])) { @@ -181,10 +174,57 @@ protected function processTool(string $name): void { } } + $this->processContent($tool); + + File::removeTokenAsync('TOOL_' . strtoupper($name)); + } + + protected function processGroup(string $name): void { + $config = static::getToolDefinitions('groups')[$name]; + $selected_tools = $this->getResponseAsArray(); + + if (!isset($config['tools']) || array_intersect($config['tools'], $selected_tools)) { + return; + } + + $this->processNpmManifests($config); + + if (isset($config['files'])) { + $files = array_map(fn($file): string => $this->tmpDir . '/' . $file, $config['files']); + File::remove($files); + } + + if (isset($config['ahoy'])) { + foreach ($config['ahoy'] as $string) { + File::replaceContentInFile($this->tmpDir . '/.ahoy.yml', Replacement::create('ahoy_tool', function (string $content) use ($string): string { + $content = File::replaceContent($content, $string, ''); + return Yaml::collapseEmptyLinesInLiteralBlock($content); + })); + } + } + + $this->processContent($config); + + if (isset($config['token'])) { + File::removeTokenAsync($config['token']); + } + } + + /** + * Queue the content removals declared by a tool or a group. + * + * @param array $config + * Tool or group definition. + */ + protected function processContent(array $config): void { + if (!isset($config['strings']) && !isset($config['lines'])) { + return; + } + File::replaceContentAsync( - function (string $content, ContentFile $file) use ($tool): string { - if (isset($tool['strings'])) { - foreach ($tool['strings'] as $string) { + function (string $content, ContentFile $file) use ($config): string { + if (isset($config['strings'])) { + foreach ($config['strings'] as $string) { if (Strings::isRegex($string)) { $replaced = preg_replace($string, '', $content, -1, $count); @@ -198,9 +238,9 @@ function (string $content, ContentFile $file) use ($tool): string { } } - if (isset($tool['lines'])) { + if (isset($config['lines'])) { $relative_file_path = str_replace($this->tmpDir . '/', '', $file->getPathname()); - foreach ($tool['lines'] as $relative_lines_file_name => $lines) { + foreach ($config['lines'] as $relative_lines_file_name => $lines) { if ($relative_file_path === $relative_lines_file_name) { foreach ($lines as $line) { $content = File::removeLine($content, $line); @@ -212,35 +252,49 @@ function (string $content, ContentFile $file) use ($tool): string { return $content; } ); + } - File::removeTokenAsync('TOOL_' . strtoupper($name)); + /** + * Apply the npm manifest edits declared by a tool or a group. + * + * @param array $config + * Tool or group definition. + */ + protected function processNpmManifests(array $config): void { + if (isset($config['package.json']) && is_callable($config['package.json'])) { + $this->updateNpmManifest($this->tmpDir . '/package.json', $config['package.json']); + } + + if (isset($config['theme.package.json']) && is_callable($config['theme.package.json'])) { + foreach ($this->themeManifests() as $manifest) { + $this->updateNpmManifest($manifest, $config['theme.package.json']); + } + } } - protected function processGroup(string $name): void { - $config = static::getToolDefinitions('groups')[$name]; - $selected_tools = $this->getResponseAsArray(); + protected function updateNpmManifest(string $manifest, callable $callback): void { + $json = JsonManipulator::fromFile($manifest); - if (!isset($config['tools']) || array_intersect($config['tools'], $selected_tools)) { + if (!$json instanceof JsonManipulator) { return; } - if (isset($config['files'])) { - $files = array_map(fn($file): string => $this->tmpDir . '/' . $file, $config['files']); - File::remove($files); - } + $callback($json); + file_put_contents($manifest, $json->getContents()); - if (isset($config['ahoy'])) { - foreach ($config['ahoy'] as $string) { - File::replaceContentInFile($this->tmpDir . '/.ahoy.yml', Replacement::create('ahoy_tool', function (string $content) use ($string): string { - $content = File::replaceContent($content, $string, ''); - return Yaml::collapseEmptyLinesInLiteralBlock($content); - })); - } - } + // A lock file that still lists the removed dependencies makes 'npm ci' + // abort on the first build. + NpmLock::sync($manifest); + } - if (isset($config['token'])) { - File::removeTokenAsync($config['token']); - } + /** + * Find the manifests of the custom themes. + * + * @return array + * Paths to the "package.json" files. + */ + protected function themeManifests(): array { + return glob($this->tmpDir . '/' . $this->webroot . '/themes/custom/*/package.json') ?: []; } public static function getToolDefinitions(string $filter = 'all'): array { @@ -312,24 +366,46 @@ public static function getToolDefinitions(string $filter = 'all'): array { self::ESLINT => [ 'title' => 'ESLint', 'present' => fn(): mixed => File::contains($this->dstDir . '/package.json', '"eslint":') || - File::exists($this->dstDir . '/.eslintrc.json'), + File::exists($this->dstDir . '/eslint.config.mjs'), 'package.json' => function (JsonManipulator $pj): void { + $pj->removeSubNode('devDependencies', '@eslint/compat'); + $pj->removeSubNode('devDependencies', '@eslint/js'); $pj->removeSubNode('devDependencies', 'eslint'); - $pj->removeSubNode('devDependencies', 'eslint-config-airbnb-base'); $pj->removeSubNode('devDependencies', 'eslint-config-prettier'); $pj->removeSubNode('devDependencies', 'eslint-plugin-import'); $pj->removeSubNode('devDependencies', 'eslint-plugin-jsdoc'); $pj->removeSubNode('devDependencies', 'eslint-plugin-no-jquery'); $pj->removeSubNode('devDependencies', 'eslint-plugin-prettier'); $pj->removeSubNode('devDependencies', 'eslint-plugin-yml'); + $pj->removeSubNode('devDependencies', 'globals'); $pj->removeSubNode('devDependencies', 'prettier'); $pj->removeSubNode('devDependencies', '@homer0/prettier-plugin-jsdoc'); $pj->removeSubNode('scripts', 'lint-js'); $pj->removeSubNode('scripts', 'lint-fix-js'); - $pj->addSubNode('scripts', 'lint', 'yarn run lint-css'); - $pj->addSubNode('scripts', 'lint-fix', 'yarn run lint-fix-css'); + $pj->addSubNode('scripts', 'lint', 'npm run lint-css'); + $pj->addSubNode('scripts', 'lint-fix', 'npm run lint-fix-css'); + }, + 'theme.package.json' => function (JsonManipulator $pj): void { + $pj->removeSubNode('devDependencies', '@eslint/compat'); + $pj->removeSubNode('devDependencies', '@eslint/js'); + $pj->removeSubNode('devDependencies', 'eslint'); + $pj->removeSubNode('devDependencies', 'eslint-config-prettier'); + $pj->removeSubNode('devDependencies', 'eslint-plugin-import'); + $pj->removeSubNode('devDependencies', 'eslint-plugin-jsdoc'); + $pj->removeSubNode('devDependencies', 'eslint-plugin-no-jquery'); + $pj->removeSubNode('devDependencies', 'eslint-plugin-prettier'); + $pj->removeSubNode('devDependencies', 'eslint-plugin-yml'); + $pj->removeSubNode('devDependencies', 'globals'); + $pj->removeSubNode('devDependencies', 'prettier'); + $pj->removeSubNode('devDependencies', '@homer0/prettier-plugin-jsdoc'); + $pj->removeSubNode('scripts', 'lint-js'); + $pj->removeSubNode('scripts', 'lint-js-fix'); + $pj->addSubNode('scripts', 'lint', 'npm run lint-css'); + $pj->addSubNode('scripts', 'lint-fix', 'npm run lint-css-fix'); }, - 'files' => ['.eslintrc.json', '.eslintignore', '.prettierrc.json', '.prettierignore'], + // A project created before the move to flat config still carries the + // legacy files, which linger unread once the tool is deselected. + 'files' => ['eslint.config.mjs', '.eslintrc.json', '.eslintignore', '.prettierrc.json', '.prettierignore'], ], self::STYLELINT => [ @@ -342,8 +418,19 @@ public static function getToolDefinitions(string $filter = 'all'): array { $pj->removeSubNode('devDependencies', 'stylelint-order'); $pj->removeSubNode('scripts', 'lint-css'); $pj->removeSubNode('scripts', 'lint-fix-css'); - $pj->addSubNode('scripts', 'lint', 'yarn run lint-js'); - $pj->addSubNode('scripts', 'lint-fix', 'yarn run lint-fix-js'); + $pj->addSubNode('scripts', 'lint', 'npm run lint-js'); + $pj->addSubNode('scripts', 'lint-fix', 'npm run lint-fix-js'); + }, + 'theme.package.json' => function (JsonManipulator $pj): void { + $pj->removeSubNode('devDependencies', 'stylelint'); + $pj->removeSubNode('devDependencies', 'stylelint-config-standard'); + $pj->removeSubNode('devDependencies', 'stylelint-config-standard-scss'); + $pj->removeSubNode('devDependencies', 'stylelint-order'); + $pj->removeSubNode('devDependencies', 'stylelint-scss'); + $pj->removeSubNode('scripts', 'lint-css'); + $pj->removeSubNode('scripts', 'lint-css-fix'); + $pj->addSubNode('scripts', 'lint', 'npm run lint-js'); + $pj->addSubNode('scripts', 'lint-fix', 'npm run lint-js-fix'); }, 'files' => ['.stylelintrc.js'], ], @@ -510,9 +597,25 @@ public static function getToolDefinitions(string $filter = 'all'): array { ], 'frontend_linting' => [ 'tools' => [self::ESLINT, self::STYLELINT], + // Each linter rewrites 'lint' to call the other one, so with both + // deselected the pair points at scripts that no longer exist. + 'package.json' => function (JsonManipulator $pj): void { + $pj->removeSubNode('scripts', 'lint'); + $pj->removeSubNode('scripts', 'lint-fix'); + }, + 'theme.package.json' => function (JsonManipulator $pj): void { + $pj->removeSubNode('scripts', 'lint'); + $pj->removeSubNode('scripts', 'lint-fix'); + }, 'ahoy' => [ - '/^\h*ahoy cli "yarn run lint"\h*\n?/m', - '/^\h*ahoy cli "yarn run lint-fix"\h*\n?/m', + '/^\h*ahoy cli "npm run lint"\h*\n?/m', + '/^\h*ahoy cli "npm run lint-fix"\h*\n?/m', + 'ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint"', + 'ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix"', + ], + 'strings' => [ + '/^\|\h*`npm run lint`.*\n?/m', + '/^\|\h*`npm run lint-fix`.*\n?/m', ], 'token' => 'TOOL_ESLINT_STYLELINT', ], @@ -522,7 +625,7 @@ public static function getToolDefinitions(string $filter = 'all'): array { ], 'frontend_all' => [ 'tools' => [self::ESLINT, self::STYLELINT, self::JEST], - 'files' => ['package.json', 'yarn.lock'], + 'files' => ['package.json', 'package-lock.json'], ], ]; diff --git a/.vortex/cli/src/Utils/NpmLock.php b/.vortex/cli/src/Utils/NpmLock.php new file mode 100644 index 0000000000..001311ae9f --- /dev/null +++ b/.vortex/cli/src/Utils/NpmLock.php @@ -0,0 +1,209 @@ +packages) || !isset($lock->packages->{''})) { + throw new \RuntimeException(sprintf('Unsupported lock file format at "%s": a "packages" entry is required.', $lock_file)); + } + + self::reconcileRoot($manifest, $lock->packages->{''}, $manifest_file); + self::prune($lock->packages); + + self::write($lock_file, $lock); + } + + /** + * Copy the manifest's dependency blocks onto the lock's root entry. + */ + protected static function reconcileRoot(\stdClass $manifest, \stdClass $root, string $manifest_file): void { + foreach (self::BLOCKS as $block) { + if (!isset($manifest->{$block})) { + unset($root->{$block}); + + continue; + } + + if (!$manifest->{$block} instanceof \stdClass) { + throw new \RuntimeException(sprintf('Unable to read the "%s" block of "%s": a JSON object is required.', $block, $manifest_file)); + } + + $root->{$block} = clone $manifest->{$block}; + } + } + + /** + * Remove installed packages that no roots reach any more. + */ + protected static function prune(\stdClass $packages): void { + $paths = array_keys(get_object_vars($packages)); + $queue = array_values(array_filter($paths, fn(string $path): bool => !str_starts_with($path, 'node_modules/'))); + $reachable = []; + + while ($queue !== []) { + $path = array_shift($queue); + + if (isset($reachable[$path])) { + continue; + } + + $reachable[$path] = TRUE; + + foreach (self::edges($packages->{$path}) as $name) { + $resolved = self::resolve($packages, $path, $name); + + if ($resolved !== NULL) { + $queue[] = $resolved; + } + } + } + + foreach ($paths as $path) { + if (!isset($reachable[$path])) { + unset($packages->{$path}); + } + } + } + + /** + * Collect the names a lock entry depends on. + * + * @return array + * Package names. + */ + protected static function edges(\stdClass $entry): array { + $names = []; + + foreach (self::BLOCKS as $block) { + if (isset($entry->{$block})) { + $names = array_merge($names, array_keys(get_object_vars($entry->{$block}))); + } + } + + return $names; + } + + /** + * Find the entry that satisfies a name for a package at the given path. + * + * Node walks the "node_modules" directories from the requiring package + * outwards, so the innermost copy wins over a hoisted one. + * + * @return string|null + * The path of the satisfying entry, or NULL when the tree has none. + */ + protected static function resolve(\stdClass $packages, string $from, string $name): ?string { + $scope = $from; + + while (TRUE) { + $candidate = ($scope === '' ? '' : $scope . '/') . 'node_modules/' . $name; + + if (isset($packages->{$candidate})) { + return $candidate; + } + + if ($scope === '') { + return NULL; + } + + $position = strrpos($scope, '/node_modules/'); + $scope = $position === FALSE ? '' : substr($scope, 0, $position); + } + } + + /** + * Decode a JSON file into objects. + */ + protected static function read(string $file): \stdClass { + $contents = file_get_contents($file); + + if ($contents === FALSE) { + // @codeCoverageIgnoreStart + throw new \RuntimeException(sprintf('Unable to read a JSON file at "%s".', $file)); + // @codeCoverageIgnoreEnd + } + + try { + $decoded = json_decode($contents, FALSE, 512, JSON_THROW_ON_ERROR); + } + catch (\JsonException $exception) { + throw new \RuntimeException(sprintf('Unable to parse a JSON file at "%s": %s', $file, $exception->getMessage()), $exception->getCode(), $exception); + } + + if (!$decoded instanceof \stdClass) { + throw new \RuntimeException(sprintf('Unable to parse a JSON file at "%s": a JSON object is required.', $file)); + } + + return $decoded; + } + + /** + * Write a JSON file the way npm writes it. + */ + protected static function write(string $file, \stdClass $data): void { + $json = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR); + + // Two-space indentation matches what npm writes; PHP indents with four. A + // JSON string cannot hold a raw newline, so a leading run of spaces is + // always indentation. + $json = preg_replace_callback('/^ +/m', fn(array $matches): string => str_repeat(' ', intdiv(strlen($matches[0]), 2)), $json); + + if ($json === NULL) { + // @codeCoverageIgnoreStart + throw new \RuntimeException(sprintf('Unable to format a JSON file at "%s".', $file)); + // @codeCoverageIgnoreEnd + } + + $json .= "\n"; + + if (!is_writable($file) || file_put_contents($file, $json) !== strlen($json)) { + throw new \RuntimeException(sprintf('Unable to write a JSON file at "%s".', $file)); + } + } + +} diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.ahoy.yml index 5f2356c58c..3f2f8a0df2 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.ahoy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.ahoy.yml @@ -87,9 +87,9 @@ commands: aliases: [ssh, shell] cmd: | if [ "${#}" -ne 0 ]; then - docker compose exec $(env | cut -f1 -d= | grep "TERM\|COMPOSE_\|GITHUB_\|PACKAGE_\|DOCKER_\|DRUPAL_\|VORTEX_\|ENVIRONMENT_\|LOCALDEV_URL$" | sed 's/^/-e /') cli bash -c "$*" + docker compose exec $(env | cut -f1 -d= | grep -E '^(TERM|LOCALDEV_URL)$|^(COMPOSE|GITHUB|PACKAGE|DOCKER|DRUPAL|VORTEX|ENVIRONMENT)_' | sed 's/^/-e /') cli bash -c "$*" else - docker compose exec $(env | cut -f1 -d= | grep "TERM\|COMPOSE_\|GITHUB_\|PACKAGE_\|DOCKER_\|DRUPAL_\|VORTEX_\|ENVIRONMENT_\|LOCALDEV_URL$" | sed 's/^/-e /') cli bash + docker compose exec $(env | cut -f1 -d= | grep -E '^(TERM|LOCALDEV_URL)$|^(COMPOSE|GITHUB|PACKAGE|DOCKER|DRUPAL|VORTEX|ENVIRONMENT)_' | sed 's/^/-e /') cli bash fi composer: @@ -169,25 +169,25 @@ commands: usage: Install front-end assets. aliases: [fe-install] cmd: | - ahoy cli "yarn install --frozen-lockfile" - ahoy cli "yarn --cwd=${WEBROOT}/themes/custom/${DRUPAL_THEME} install --frozen-lockfile" + ahoy cli "npm ci" + ahoy cli "npm --prefix=${WEBROOT}/themes/custom/${DRUPAL_THEME} ci" fe: usage: Build front-end assets. aliases: [fe-build] - cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run build" + cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run build" fed: usage: Build front-end assets for development. aliases: [fe-build-dev] - cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run build-dev" + cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run build-dev" few: usage: Watch front-end assets during development. aliases: [fe-watch] cmd: | ahoy cli "pkill -9 -f grunt" || true - ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run watch" + ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run watch" lint: usage: Lint back-end and front-end code. @@ -207,8 +207,8 @@ commands: usage: Lint front-end code. cmd: | ahoy cli vendor/bin/twig-cs-fixer lint - ahoy cli "yarn run lint" - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" + ahoy cli "npm run lint" + ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" lint-tests: usage: Lint tests code. @@ -239,8 +239,8 @@ commands: usage: Fix lint issues of front-end code. cmd: | ahoy cli vendor/bin/twig-cs-fixer lint --fix - ahoy cli "yarn run lint-fix" - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" + ahoy cli "npm run lint-fix" + ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" test: usage: Run all PHPUnit tests. @@ -265,7 +265,7 @@ commands: test-js: usage: Run Jest JavaScript unit tests. - cmd: ahoy cli "yarn test" + cmd: ahoy cli "npm test" test-bdd: usage: Run BDD tests. diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.docker/cli.dockerfile b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.docker/cli.dockerfile index 94495b2b45..0ff273086e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.docker/cli.dockerfile +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.docker/cli.dockerfile @@ -97,9 +97,10 @@ RUN mkdir -p -m 2775 "/app/${WEBROOT}/${DRUPAL_PUBLIC_FILES}" "/app/${WEBROOT}/$ RUN if [ "${VORTEX_FRONTEND_BUILD_SKIP}" != "1" ]; then \ theme_path="/app/${WEBROOT}/themes/custom/${DRUPAL_THEME}"; \ - yarn --cwd="${theme_path}" install --frozen-lockfile --no-progress && \ - yarn --cwd="${theme_path}" run build && \ - yarn cache clean; \ + export npm_config_cache=/tmp/npm-cache; \ + npm --prefix="${theme_path}" ci --no-progress --no-audit --no-fund && \ + npm --prefix="${theme_path}" run build && \ + rm -rf /tmp/npm-cache; \ fi WORKDIR /app diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.docker/config/database/my.cnf b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.docker/config/database/my.cnf index 27b23b9b02..85f1bf9c39 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.docker/config/database/my.cnf +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.docker/config/database/my.cnf @@ -1 +1,9 @@ -# Custom configuration for database clients. +# Custom configuration for the database service. + +[mysqld] +# The image default of 128MB is exhausted during a large dump import faster +# than the log checkpointer reclaims it, aborting the import with +# "ERROR 1114 ... table is full". +# MariaDB images abort at startup on this MySQL-only variable, so the +# "loose-" prefix downgrades that to a warning. +loose-innodb_redo_log_capacity = 1073741824 diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.docker/database.dockerfile b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.docker/database.dockerfile index 74b4be0637..b361f6c695 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.docker/database.dockerfile +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.docker/database.dockerfile @@ -1,5 +1,8 @@ +# check=skip=SecretsUsedInArgOrEnv # Database container. # +# The check skipped above is BuildKit's twin of DL3064, ignored inline below. +# # @see https://hub.docker.com/r/uselagoon/mysql-8.4/tags # @see https://github.com/uselagoon/lagoon-images/tree/main/images/mysql # @@ -10,8 +13,9 @@ FROM ${IMAGE} # hadolint ignore=DL3066 # named account provided by the base image USER root -COPY ./.docker/config/database/my.cnf /etc/my.cnf.d/server.cnf -RUN fix-permissions /etc/my.cnf.d/ +COPY ./.docker/config/database/my.cnf /etc/mysql/conf.d/server.cnf +# The entrypoint rewrites files in this directory before starting the server. +RUN fix-permissions /etc/mysql/conf.d/ # hadolint ignore=DL3064 # local development credentials only ENV MYSQL_DATABASE=drupal \ diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.editorconfig b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.editorconfig index 00607a4581..b448d1278e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.editorconfig +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.editorconfig @@ -13,13 +13,17 @@ charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true +# Matches the Prettier 'printWidth' in .prettierrc.json. +[*.js] +max_line_length = 160 + [*.{json,lock}] indent_size = 4 [*.xml] indent_size = 4 -[.eslintrc.json] +[eslint.config.mjs] indent_size = 2 [.prettierrc.json] diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.env b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.env index bf45c80737..1d022ea7ac 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.env +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.env @@ -100,7 +100,7 @@ DRUPAL_CLAMAV_MODE=daemon # or fresh install from profile), running updates, appying configuration # changes, clearing caches and performing other tasks that prepare the site for # use. -# @see https://www.vortextemplate.com/docs/drupal/provision +# @see https://www.vortextemplate.com/docs/development/provision # Set to 'profile' to install a site from profile instead of the database dump. VORTEX_PROVISION_TYPE=database @@ -129,13 +129,13 @@ VORTEX_PROVISION_VERIFY_CONFIG_UNCHANGED_AFTER_UPDATE=0 # # Database sanitization is enabled by default in all non-production # environments and is always skipped in the production environment. -# @see https://www.vortextemplate.com/docs/drupal/provision#database-sanitization +# @see https://www.vortextemplate.com/docs/development/provision#database-sanitization VORTEX_PROVISION_SANITIZE_DB_SKIP=0 # Sanitization email pattern. # # Applied if database sanitization is enabled. -# @see https://www.vortextemplate.com/docs/drupal/provision#database-sanitization +# @see https://www.vortextemplate.com/docs/development/provision#database-sanitization VORTEX_PROVISION_SANITIZE_DB_EMAIL=user_%uid@star-wars.com # Put the site into a maintenance mode during site provisioning. diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.eslintignore b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.eslintignore deleted file mode 100644 index b74d22e4b2..0000000000 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.eslintignore +++ /dev/null @@ -1,10 +0,0 @@ -node_modules/ -vendor/ -web/core/ -web/libraries/ -web/modules/contrib/ -web/profiles/contrib/ -web/themes/contrib/ -web/sites/*/files/ -*.min.js -*.min.css diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.eslintrc.json deleted file mode 100644 index 97387452cf..0000000000 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.eslintrc.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "extends": [ - "airbnb-base", - "plugin:prettier/recommended", - "plugin:yml/recommended" - ], - "root": true, - "env": { - "browser": true, - "es6": true, - "node": true - }, - "parserOptions": { - "ecmaVersion": 2020 - }, - "plugins": [ - "jsdoc" - ], - "globals": { - "Drupal": true, - "drupalSettings": true, - "drupalTranslations": true, - "jQuery": true, - "_": true, - "Cookies": true, - "Backbone": true, - "htmx": true, - "loadjs": true, - "Shepherd": true, - "Sortable": true, - "once": true, - "CKEditor5": true, - "tabbable": true, - "transliterate": true, - "bodyScrollLock" : true, - "FloatingUIDOM": true - }, - "rules": { - "prettier/prettier": "error", - "consistent-return": ["off"], - "no-underscore-dangle": ["off"], - "max-nested-callbacks": ["warn", 3], - "import/no-mutable-exports": ["warn"], - "no-plusplus": ["warn", { - "allowForLoopAfterthoughts": true - }], - "no-param-reassign": ["off"], - "no-prototype-builtins": ["off"], - "jsdoc/require-returns": ["off"], - "jsdoc/require-returns-type": ["warn"], - "jsdoc/require-returns-description": ["warn"], - "jsdoc/require-returns-check": ["warn"], - "jsdoc/require-param": ["warn"], - "jsdoc/require-param-type": ["warn"], - "jsdoc/require-param-description": ["warn"], - "jsdoc/check-param-names": ["warn"], - "jsdoc/valid-types": ["warn"], - "jsdoc/require-param-name": ["warn"], - "jsdoc/check-tag-names": ["warn"], - "no-unused-vars": ["warn"], - "operator-linebreak": ["error", "after", { "overrides": { "?": "ignore", ":": "ignore" } }], - "yml/indent": ["error", 2] - }, - "overrides": [ - { - "files": ["*.test.js"], - "env": { "jest": true }, - "rules": { - "global-require": "off", - "import/extensions": "off", - "max-nested-callbacks": ["warn", 5], - "jsdoc/check-tag-names": "off" - } - } - ], - "settings": { - "jsdoc": { - "tagNamePreference": { - "returns": "return", - "property": "prop" - } - } - } -} diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.github/release-drafter.yml b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.github/release-drafter.yml index 8b07383716..32072475c0 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.github/release-drafter.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.github/release-drafter.yml @@ -2,8 +2,9 @@ name-template: '$RESOLVED_VERSION' tag-template: '$RESOLVED_VERSION' change-template: '- $TITLE @$AUTHOR (#$NUMBER)' change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks. -version-resolver: - default: minor +categories: + - type: 'version-resolver' + semver-increment: 'minor' template: | ## What's new since $PREVIOUS_TAG diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.github/workflows/audit.yml b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.github/workflows/audit.yml index d5f0a7ea31..f04d47d32d 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.github/workflows/audit.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.github/workflows/audit.yml @@ -73,10 +73,12 @@ jobs: - name: Load environment variables from .env run: t=$(mktemp) && export -p >"${t}" && set -a && . ./.env && set +a && . "${t}" && env >> "$GITHUB_ENV" - - name: Scan for committed secrets with Gitleaks - run: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner - continue-on-error: ${{ vars.VORTEX_CI_GITLEAKS_IGNORE_FAILURE == '1' }} - - name: Audit Composer packages + if: ${{ !cancelled() }} run: composer audit --locked continue-on-error: ${{ vars.VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE == '1' }} + + - name: Scan for committed secrets with Gitleaks + if: ${{ !cancelled() }} + run: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner + continue-on-error: ${{ vars.VORTEX_CI_GITLEAKS_IGNORE_FAILURE == '1' }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.github/workflows/build-test-deploy.yml index 58779ba42a..03f99c6603 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.github/workflows/build-test-deploy.yml @@ -125,7 +125,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - name: Validate Composer configuration is normalized run: docker compose exec -T cli composer normalize --dry-run @@ -152,12 +152,12 @@ jobs: continue-on-error: ${{ vars.VORTEX_CI_GHERKIN_LINT_IGNORE_FAILURE == '1' }} - name: Lint module code with NodeJS linters - run: docker compose exec -T cli bash -c "yarn run lint" + run: docker compose exec -T cli bash -c "npm run lint" continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} - name: Lint theme code with NodeJS linters if: ${{ vars.VORTEX_FRONTEND_BUILD_SKIP != '1' }} - run: docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" + run: docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} test: @@ -193,8 +193,34 @@ jobs: VORTEX_CI_DB_CACHE_FALLBACK: "yes" # Which branch to use as a source of DB caches. VORTEX_CI_DB_CACHE_BRANCH: "develop" + # Which tools run on this instance. Tools that only need to run once are + # pinned to the first instance. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + VORTEX_CI_RUNNER_INDEX: ${{ strategy.job-index }} + VORTEX_CI_RUNNER_TOTAL: ${{ strategy.job-total }} + VORTEX_CI_IS_JEST_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + VORTEX_CI_IS_PHPUNIT_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + VORTEX_CI_IS_SDC_DEVEL_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + # Runs on every instance, using the `p` profile. + VORTEX_CI_IS_BEHAT_RUNNER: true + # Subtracted from the instance index to derive the profile number. Raise + # it by one for every leading instance that does not run Behat, so the + # first Behat instance still selects the `p0` catch-all profile. + VORTEX_CI_BEHAT_PROFILE_OFFSET: 0 steps: + # Frees disk space by removing preinstalled toolchains unused by this project. + - name: Free up disk space on the runner + if: ${{ vars.VORTEX_CI_FREE_DISK_SPACE == '1' }} + run: | + set -- /usr/local/.ghcup /usr/share/swift /usr/local/share/powershell /usr/share/dotnet /opt/hostedtoolcache/CodeQL + # set -- "$@" /usr/local/lib/android # Removes about 10GB more, but takes about 50s. Uncomment to enable. + sudo rm -rf "$@" || true + + - name: Report disk usage + run: df -h + - name: Check out code uses: actions/checkout@__HASH__ # __VERSION__ with: @@ -270,10 +296,10 @@ jobs: - name: Export DB after fetch run: | if [ ! -f /tmp/fetch-db-success ]; then echo "==> Database fetch semaphore file is missing. DB export will not proceed."; exit 0; fi - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true timeout-minutes: 30 # Save the clean DB dump to cache from the primary parallel runner only, @@ -290,7 +316,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - name: Provision site run: | @@ -298,32 +324,32 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision timeout-minutes: 30 - name: Test with Jest - if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} - run: docker compose exec -T cli bash -c "yarn test" + if: ${{ env.VORTEX_CI_IS_JEST_RUNNER == 'true' }} + run: docker compose exec -T cli bash -c "npm test" continue-on-error: ${{ vars.VORTEX_CI_JEST_IGNORE_FAILURE == '1' }} - name: Test with PHPUnit - if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} run: docker compose exec -T cli vendor/bin/phpunit continue-on-error: ${{ vars.VORTEX_CI_PHPUNIT_IGNORE_FAILURE == '1' }} - name: Process PHPUnit logs and coverage - if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} run: | mkdir -p ".logs" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. ".logs/" + docker compose --progress quiet cp cli:/app/.logs/. ".logs/" fi - name: Extract code coverage - if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} run: | RATE=$(grep -om1 'line-rate="[0-9.]*"' .logs/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") @@ -341,7 +367,7 @@ jobs: VORTEX_CI_CODE_COVERAGE_THRESHOLD: ${{ vars.VORTEX_CI_CODE_COVERAGE_THRESHOLD || '90' }} - name: Post coverage summary as PR comment - if: ${{ github.event_name == 'pull_request' && (matrix.instance == 0 || strategy.job-total == 1) && vars.VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP != '1' }} + if: ${{ github.event_name == 'pull_request' && env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' && vars.VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP != '1' }} uses: marocchino/sticky-pull-request-comment@__HASH__ # __VERSION__ with: header: coverage-gha @@ -360,7 +386,7 @@ jobs: hide_and_recreate: true - name: Check code coverage threshold - if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} run: | if [ "${COVERAGE_PERCENT//.}" -lt "$((VORTEX_CI_CODE_COVERAGE_THRESHOLD*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD}%" @@ -370,7 +396,7 @@ jobs: VORTEX_CI_CODE_COVERAGE_THRESHOLD: ${{ vars.VORTEX_CI_CODE_COVERAGE_THRESHOLD || '90' }} - name: Validate Single Directory Components - if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + if: ${{ env.VORTEX_CI_IS_SDC_DEVEL_RUNNER == 'true' }} run: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) @@ -382,16 +408,15 @@ jobs: continue-on-error: ${{ vars.VORTEX_CI_SDC_DEVEL_IGNORE_FAILURE == '1' }} - name: Test with Behat + if: ${{ env.VORTEX_CI_IS_BEHAT_RUNNER == 'true' }} run: | # shellcheck disable=SC2170 - if [ "${STRATEGY_JOB_TOTAL}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${STRATEGY_JOB_INDEX}}"; fi + if [ "${VORTEX_CI_RUNNER_TOTAL}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" env: VORTEX_CI_BEHAT_PROFILE: ${{ vars.VORTEX_CI_BEHAT_PROFILE }} - STRATEGY_JOB_TOTAL: ${{ strategy.job-total }} - STRATEGY_JOB_INDEX: ${{ strategy.job-index }} continue-on-error: ${{ vars.VORTEX_CI_BEHAT_IGNORE_FAILURE == '1' }} timeout-minutes: 30 @@ -400,7 +425,7 @@ jobs: run: | mkdir -p ".logs" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. ".logs/" + docker compose --progress quiet cp cli:/app/.logs/. ".logs/" fi - name: Upload test artifacts @@ -449,6 +474,17 @@ jobs: VORTEX_DEBUG: ${{ vars.VORTEX_DEBUG }} steps: + # Frees disk space by removing preinstalled toolchains unused by this project. + - name: Free up disk space on the runner + if: ${{ vars.VORTEX_CI_FREE_DISK_SPACE == '1' }} + run: | + set -- /usr/local/.ghcup /usr/share/swift /usr/local/share/powershell /usr/share/dotnet /opt/hostedtoolcache/CodeQL + # set -- "$@" /usr/local/lib/android # Removes about 10GB more, but takes about 50s. Uncomment to enable. + sudo rm -rf "$@" || true + + - name: Report disk usage + run: df -h + - name: Check out code uses: actions/checkout@__HASH__ # __VERSION__ with: diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.gitignore b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.gitignore index d64bed8f99..bb67481c1c 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.gitignore +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.gitignore @@ -34,9 +34,11 @@ web/sites/simpletest recipes/* !recipes/page -# Ignore all Claude files by default. Custom files should be added explicitly. +# Claude writes machine-local state into '.claude/', so it stays an allow +# list: un-ignore only the files shared with the team. .claude/* !.claude/settings.json +!.claude/skills/ # Dependencies. /vendor diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.prettierrc.json b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.prettierrc.json index b5ed527867..8ef17490e8 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/.prettierrc.json +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/.prettierrc.json @@ -1,10 +1,12 @@ { - "printWidth": 80, + "printWidth": 160, "semi": true, "singleQuote": true, "trailingComma": "all", "plugins": ["@homer0/prettier-plugin-jsdoc"], + "jsdocPrintWidth": 80, "jsdocReplaceTagsSynonyms": false, + "jsdocUseTypeScriptTypesCasing": false, "overrides": [ { "files": ["*.css"], diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/behat.yml b/.vortex/cli/tests/Fixtures/handler_process/_baseline/behat.yml index 8a2c36ca41..a1e99c1d52 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/behat.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/behat.yml @@ -96,16 +96,22 @@ default: # Show explicit fail information and continue the test run. DrevOps\BehatFormatProgressFail\FormatExtension: ~ -# Profile for parallel testing. -# Runs all tests not tagged with 'smoke' or '@p1' and not tagged with '@skipped'. -# This is a 'catch-all' profile that runs any tests not tagged with '@pX'. +# Profiles for parallel testing. CI derives the profile number from the index +# of the runner it is on minus 'VORTEX_CI_BEHAT_PROFILE_OFFSET', so profiles +# stay numbered from 'p0' regardless of which runner Behat starts on. Adding a +# runner that runs Behat means adding a profile for its derived number and +# excluding its tag from the 'p0' catch-all below. +# https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + +# Runs all tests tagged with '@smoke' or not tagged with '@p1', and not tagged +# with '@skipped'. This is a 'catch-all' profile that runs any tests not tagged +# with '@pX'. p0: gherkin: cache: '/tmp/behat_gherkin_cache' filters: tags: '@smoke,~@p1&&~@skipped' -# Profile for parallel testing. # Runs all tests tagged with '@smoke' or '@p1' and not tagged with '@skipped'. p1: gherkin: diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/composer.json b/.vortex/cli/tests/Fixtures/handler_process/_baseline/composer.json index ecfdc754c0..44ed3eae30 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/composer.json +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/composer.json @@ -60,6 +60,7 @@ "phpunit/phpunit": "__VERSION__", "pyrech/composer-changelogs": "__VERSION__", "rector/rector": "__VERSION__", + "softcreatr/jsonpath": "^0.10 || ^1.0", "vincentlanglet/twig-cs-fixer": "__VERSION__" }, "conflict": { diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/_baseline/docker-compose.yml index 716289dbd7..ba8214bb1a 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/docker-compose.yml @@ -19,6 +19,7 @@ x-environment: &default-environment TZ: ${TZ:-UTC} # Pass-through 'CI' variable used to identify the CI environment. CI: ${CI:-} + ##SSMTP_MAILHUB: "127.0.0.1:1" # Closed port so that no message leaves an automated test run. Automatically uncommented in CI. # Pass-through 'ENVIRONMENT_TYPE' to override the auto-detected environment type. ENVIRONMENT_TYPE: ${ENVIRONMENT_TYPE:-} # Pass-through 'XDEBUG_ENABLE' to enable XDebug with "ahoy debug" or "XDEBUG_ENABLE=true docker compose up -d". diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/docs/testing.md b/.vortex/cli/tests/Fixtures/handler_process/_baseline/docs/testing.md index 0739323454..bd6497761b 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/docs/testing.md +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/docs/testing.md @@ -7,7 +7,7 @@ this project. Unit, Kernel, Functional tests. -See [documentation](https://www.vortextemplate.com/docs/development/phpunit) +See [documentation](https://www.vortextemplate.com/docs/development/testing/phpunit) on how to run tests, configure environment variables and code coverage, and use test reports in continuous integration pipeline. @@ -141,7 +141,7 @@ class MyServiceTest extends KernelTestBase { BDD end-to-end tests. -See [documentation](https://www.vortextemplate.com/docs/development/behat) +See [documentation](https://www.vortextemplate.com/docs/development/testing/behat) on how to run Behat tests, configure environment variables, and use test reports in continuous integration pipeline. diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/drush/php-ini/drush.ini b/.vortex/cli/tests/Fixtures/handler_process/_baseline/drush/php-ini/drush.ini index 97b9aa9fce..bde1aec844 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/drush/php-ini/drush.ini +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/drush/php-ini/drush.ini @@ -5,5 +5,7 @@ ; ; @see https://github.com/drevops/vortex/issues/1913 -; Increase memory limit for Drush operations (database imports, config sync). -memory_limit = 512M +; Sized for database imports and config sync on large sites. Exceeding it +; usually indicates a memory leak in custom code rather than a limit set too +; low. +memory_limit = 1G diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/eslint.config.mjs b/.vortex/cli/tests/Fixtures/handler_process/_baseline/eslint.config.mjs new file mode 100644 index 0000000000..0f43195e8f --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/eslint.config.mjs @@ -0,0 +1,122 @@ +// Mirrors the Drupal core configuration from +// https://www.drupal.org/project/drupal/issues/3440225, adapted to lint custom +// modules rather than core itself. +import { defineConfig } from 'eslint/config'; +import { fixupPluginRules } from '@eslint/compat'; +import importPlugin from 'eslint-plugin-import'; +import noJQuery from 'eslint-plugin-no-jquery'; +import prettierConfig from 'eslint-plugin-prettier/recommended'; +import ymlConfig from 'eslint-plugin-yml'; +import jsdoc from 'eslint-plugin-jsdoc'; +import js from '@eslint/js'; +import globals from 'globals'; + +export default defineConfig( + { + ignores: [ + 'node_modules/**/*', + 'vendor/**/*', + 'web/core/**/*', + 'web/libraries/**/*', + 'web/modules/contrib/**/*', + 'web/profiles/contrib/**/*', + 'web/themes/contrib/**/*', + 'web/sites/*/files/**/*', + '**/build/**/*', + '**/*.min.js', + ], + }, + js.configs.recommended, + importPlugin.flatConfigs.recommended, + jsdoc.configs['flat/recommended'], + prettierConfig, + ymlConfig.configs['flat/recommended'], + { + plugins: { + 'no-jquery': fixupPluginRules(noJQuery), + }, + languageOptions: { + ecmaVersion: 2020, + globals: { + ...globals.browser, + ...globals.node, + + Drupal: 'readonly', + drupalSettings: 'readonly', + drupalTranslations: 'readonly', + jQuery: 'readonly', + _: 'readonly', + Cookies: 'readonly', + Backbone: 'readonly', + htmx: 'readonly', + loadjs: 'readonly', + Shepherd: 'readonly', + Sortable: 'readonly', + once: 'readonly', + CKEditor5: 'readonly', + CKEDITOR: 'readonly', + tabbable: 'readonly', + transliterate: 'readonly', + bodyScrollLock: 'readonly', + FloatingUIDOM: 'readonly', + }, + }, + rules: { + 'prettier/prettier': 'error', + 'no-unexpected-multiline': ['off'], + 'consistent-return': ['off'], + 'no-underscore-dangle': ['off'], + 'max-nested-callbacks': ['warn', 3], + 'import/no-mutable-exports': ['warn'], + 'no-plusplus': [ + 'warn', + { + allowForLoopAfterthoughts: true, + }, + ], + 'no-param-reassign': ['off'], + 'no-prototype-builtins': ['off'], + 'no-unused-vars': ['warn'], + // Kept from the previous ruleset: console calls left in shipped code + // print to every visitor's browser. + 'no-console': 'error', + 'operator-linebreak': [ + 'error', + 'after', + { + overrides: { + '?': 'ignore', + ':': 'ignore', + }, + }, + ], + 'yml/indent': ['error', 2], + // The Drupal docblock style separates the description from the first tag + // with a blank line, which the preset forbids by default. + 'jsdoc/tag-lines': ['warn', 'any', { startLines: 1 }], + // Drupal front-end code documents contracts, not every function. + 'jsdoc/require-jsdoc': ['off'], + ...noJQuery.configs.all.rules, + }, + settings: { + jsdoc: { + tagNamePreference: { + returns: 'return', + property: 'prop', + }, + }, + }, + }, + { + files: ['**/*.test.js'], + languageOptions: { + globals: { + ...globals.jest, + }, + }, + rules: { + 'max-nested-callbacks': ['warn', 5], + 'jsdoc/check-tag-names': 'off', + }, + }, +); diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/_baseline/package-lock.json new file mode 100644 index 0000000000..fec61bb154 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/package-lock.json @@ -0,0 +1,8645 @@ +{ + "name": "star_wars", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "star_wars", + "license": "proprietary", + "devDependencies": { + "@eslint/compat": "__VERSION__", + "@eslint/js": "__VERSION__", + "@homer0/prettier-plugin-jsdoc": "__VERSION__", + "eslint": "__VERSION__", + "eslint-config-prettier": "__VERSION__", + "eslint-plugin-import": "__VERSION__", + "eslint-plugin-jsdoc": "__VERSION__", + "eslint-plugin-no-jquery": "__VERSION__", + "eslint-plugin-prettier": "__VERSION__", + "eslint-plugin-yml": "__VERSION__", + "globals": "__VERSION__", + "jest": "__VERSION__", + "jest-environment-jsdom": "__VERSION__", + "prettier": "__VERSION__", + "stylelint": "__VERSION__", + "stylelint-config-standard": "__VERSION__", + "stylelint-order": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__", + "npm": ">= __VERSION__" + } + }, + "node_modules/@asamuzakjp/css-color": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/generational-cache": "__VERSION__", + "@csstools/css-calc": "__VERSION__", + "@csstools/css-color-parser": "__VERSION__", + "@csstools/css-parser-algorithms": "__VERSION__", + "@csstools/css-tokenizer": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/@csstools/css-calc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "__VERSION__", + "@csstools/css-tokenizer": "__VERSION__" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/@csstools/css-color-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "__VERSION__", + "@csstools/css-calc": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "__VERSION__", + "@csstools/css-tokenizer": "__VERSION__" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/@csstools/css-parser-algorithms": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "__VERSION__" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/@csstools/css-tokenizer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@asamuzakjp/dom-selector": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/generational-cache": "__VERSION__", + "@asamuzakjp/nwsapi": "__VERSION__", + "bidi-js": "__VERSION__", + "css-tree": "__VERSION__", + "is-potential-custom-element-name": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@asamuzakjp/generational-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@asamuzakjp/generational-cache/-/generational-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@asamuzakjp/nwsapi": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/code-frame": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "__VERSION__", + "js-tokens": "__VERSION__", + "picocolors": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@babel/compat-data": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@babel/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "__VERSION__", + "@babel/generator": "__VERSION__", + "@babel/helper-compilation-targets": "__VERSION__", + "@babel/helper-module-transforms": "__VERSION__", + "@babel/helpers": "__VERSION__", + "@babel/parser": "__VERSION__", + "@babel/template": "__VERSION__", + "@babel/traverse": "__VERSION__", + "@babel/types": "__VERSION__", + "@jridgewell/remapping": "__VERSION__", + "convert-source-map": "__VERSION__", + "debug": "__VERSION__", + "gensync": "__VERSION__", + "json5": "__VERSION__", + "semver": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json5/-/json5-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@babel/generator": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "__VERSION__", + "@babel/types": "__VERSION__", + "@jridgewell/gen-mapping": "__VERSION__", + "@jridgewell/trace-mapping": "__VERSION__", + "jsesc": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "__VERSION__", + "@babel/helper-validator-option": "__VERSION__", + "browserslist": "__VERSION__", + "lru-cache": "__VERSION__", + "semver": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@babel/helper-globals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "__VERSION__", + "@babel/types": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "__VERSION__", + "@babel/helper-validator-identifier": "__VERSION__", + "@babel/traverse": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@babel/core": "__VERSION__" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@babel/helpers": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "__VERSION__", + "@babel/types": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@babel/parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "__VERSION__" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "__VERSION__" + }, + "peerDependencies": { + "@babel/core": "__VERSION__" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "__VERSION__" + }, + "peerDependencies": { + "@babel/core": "__VERSION__" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "__VERSION__" + }, + "peerDependencies": { + "@babel/core": "__VERSION__" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@babel/core": "__VERSION__" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@babel/core": "__VERSION__" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "__VERSION__" + }, + "peerDependencies": { + "@babel/core": "__VERSION__" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "__VERSION__" + }, + "peerDependencies": { + "@babel/core": "__VERSION__" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@babel/core": "__VERSION__" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "__VERSION__" + }, + "peerDependencies": { + "@babel/core": "__VERSION__" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "__VERSION__" + }, + "peerDependencies": { + "@babel/core": "__VERSION__" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "__VERSION__" + }, + "peerDependencies": { + "@babel/core": "__VERSION__" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "__VERSION__" + }, + "peerDependencies": { + "@babel/core": "__VERSION__" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "__VERSION__" + }, + "peerDependencies": { + "@babel/core": "__VERSION__" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "__VERSION__" + }, + "peerDependencies": { + "@babel/core": "__VERSION__" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@babel/core": "__VERSION__" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@babel/core": "__VERSION__" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@babel/core": "__VERSION__" + } + }, + "node_modules/@babel/template": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "__VERSION__", + "@babel/parser": "__VERSION__", + "@babel/types": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@babel/traverse": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "__VERSION__", + "@babel/generator": "__VERSION__", + "@babel/helper-globals": "__VERSION__", + "@babel/parser": "__VERSION__", + "@babel/template": "__VERSION__", + "@babel/types": "__VERSION__", + "debug": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@babel/types": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "__VERSION__", + "@babel/helper-validator-identifier": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/@bramus/specificity": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "__VERSION__" + }, + "bin": { + "specificity": "bin/cli.js" + } + }, + "node_modules/@cacheable/memory": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/utils": "__VERSION__", + "@keyv/bigmap": "__VERSION__", + "hookified": "__VERSION__", + "keyv": "__VERSION__" + } + }, + "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "__VERSION__", + "hookified": "__VERSION__" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "keyv": "__VERSION__" + } + }, + "node_modules/@cacheable/memory/node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "__VERSION__" + } + }, + "node_modules/@cacheable/utils": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "__VERSION__", + "keyv": "__VERSION__" + } + }, + "node_modules/@cacheable/utils/node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "__VERSION__" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "__VERSION__" + } + }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "peerDependencies": { + "css-tree": "__VERSION__" + }, + "peerDependenciesMeta": { + "css-tree": { + "optional": true + } + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "__VERSION__", + "@csstools/css-tokenizer": "__VERSION__" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss-selector-parser": "__VERSION__" + } + }, + "node_modules/@dual-bundle/import-meta-resolve": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/JounQin" + } + }, + "node_modules/@emnapi/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "__VERSION__", + "tslib": "__VERSION__" + } + }, + "node_modules/@emnapi/runtime": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "__VERSION__" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "__VERSION__" + } + }, + "node_modules/@es-joy/jsdoccomment": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "__VERSION__", + "@typescript-eslint/types": "__VERSION__", + "comment-parser": "__VERSION__", + "esquery": "__VERSION__", + "jsdoc-type-pratt-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + } + }, + "node_modules/@es-joy/jsdoccomment/node_modules/comment-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/@es-joy/resolve.exports": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/compat": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + }, + "peerDependencies": { + "eslint": "^8.40 || 9 || 10" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/@eslint/compat/node_modules/@eslint/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + } + }, + "node_modules/@eslint/config-array": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "__VERSION__", + "debug": "__VERSION__", + "minimatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "__VERSION__", + "debug": "__VERSION__", + "espree": "__VERSION__", + "globals": "__VERSION__", + "ignore": "__VERSION__", + "import-fresh": "__VERSION__", + "js-yaml": "__VERSION__", + "minimatch": "__VERSION__", + "strip-json-comments": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "__VERSION__", + "levn": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@exodus/bytes": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "peerDependencies": { + "@noble/hashes": "__VERSION__ || __VERSION__" + }, + "peerDependenciesMeta": { + "@noble/hashes": { + "optional": true + } + } + }, + "node_modules/@homer0/prettier-plugin-jsdoc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@homer0/prettier-plugin-jsdoc/-/prettier-plugin-jsdoc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "comment-parser": "__VERSION__", + "ramda": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "prettier": "__VERSION__" + } + }, + "node_modules/@humanfs/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/types": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@humanfs/node": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "__VERSION__", + "@humanfs/types": "__VERSION__", + "@humanwhocodes/retry": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@humanfs/types": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "__VERSION__", + "find-up": "__VERSION__", + "get-package-type": "__VERSION__", + "js-yaml": "__VERSION__", + "resolve-from": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "__VERSION__" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "__VERSION__", + "esprima": "__VERSION__" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@jest/console": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "__VERSION__", + "@types/node": "*", + "chalk": "__VERSION__", + "jest-message-util": "__VERSION__", + "jest-util": "__VERSION__", + "slash": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@jest/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "__VERSION__", + "@jest/pattern": "__VERSION__", + "@jest/reporters": "__VERSION__", + "@jest/test-result": "__VERSION__", + "@jest/transform": "__VERSION__", + "@jest/types": "__VERSION__", + "@types/node": "*", + "ansi-escapes": "__VERSION__", + "chalk": "__VERSION__", + "ci-info": "__VERSION__", + "exit-x": "__VERSION__", + "fast-json-stable-stringify": "__VERSION__", + "graceful-fs": "__VERSION__", + "jest-changed-files": "__VERSION__", + "jest-config": "__VERSION__", + "jest-haste-map": "__VERSION__", + "jest-message-util": "__VERSION__", + "jest-regex-util": "__VERSION__", + "jest-resolve": "__VERSION__", + "jest-resolve-dependencies": "__VERSION__", + "jest-runner": "__VERSION__", + "jest-runtime": "__VERSION__", + "jest-snapshot": "__VERSION__", + "jest-util": "__VERSION__", + "jest-validate": "__VERSION__", + "jest-watcher": "__VERSION__", + "pretty-format": "__VERSION__", + "slash": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + }, + "peerDependencies": { + "node-notifier": "__VERSION__ || __VERSION__ || __VERSION__" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/diff-sequences": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@jest/environment": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "__VERSION__", + "@jest/types": "__VERSION__", + "@types/node": "*", + "jest-mock": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@jest/environment-jsdom-abstract": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jest/environment-jsdom-abstract/-/environment-jsdom-abstract-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "__VERSION__", + "@jest/fake-timers": "__VERSION__", + "@jest/types": "__VERSION__", + "@types/jsdom": "__VERSION__", + "@types/node": "*", + "jest-mock": "__VERSION__", + "jest-util": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + }, + "peerDependencies": { + "canvas": "__VERSION__", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/@jest/expect": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "__VERSION__", + "jest-snapshot": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@jest/expect-utils": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@jest/fake-timers": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "__VERSION__", + "@sinonjs/fake-timers": "__VERSION__", + "@types/node": "*", + "jest-message-util": "__VERSION__", + "jest-mock": "__VERSION__", + "jest-util": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@jest/get-type": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@jest/globals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "__VERSION__", + "@jest/expect": "__VERSION__", + "@jest/types": "__VERSION__", + "jest-mock": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@jest/pattern": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-regex-util": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@jest/reporters": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "__VERSION__", + "@jest/console": "__VERSION__", + "@jest/test-result": "__VERSION__", + "@jest/transform": "__VERSION__", + "@jest/types": "__VERSION__", + "@jridgewell/trace-mapping": "__VERSION__", + "@types/node": "*", + "chalk": "__VERSION__", + "collect-v8-coverage": "__VERSION__", + "exit-x": "__VERSION__", + "glob": "__VERSION__", + "graceful-fs": "__VERSION__", + "istanbul-lib-coverage": "__VERSION__", + "istanbul-lib-instrument": "__VERSION__", + "istanbul-lib-report": "__VERSION__", + "istanbul-lib-source-maps": "__VERSION__", + "istanbul-reports": "__VERSION__", + "jest-message-util": "__VERSION__", + "jest-util": "__VERSION__", + "jest-worker": "__VERSION__", + "slash": "__VERSION__", + "string-length": "__VERSION__", + "v8-to-istanbul": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + }, + "peerDependencies": { + "node-notifier": "__VERSION__ || __VERSION__ || __VERSION__" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@jest/snapshot-utils": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "__VERSION__", + "chalk": "__VERSION__", + "graceful-fs": "__VERSION__", + "natural-compare": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@jest/source-map": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "__VERSION__", + "callsites": "__VERSION__", + "graceful-fs": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@jest/test-result": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "__VERSION__", + "@jest/types": "__VERSION__", + "@types/istanbul-lib-coverage": "__VERSION__", + "collect-v8-coverage": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "__VERSION__", + "graceful-fs": "__VERSION__", + "jest-haste-map": "__VERSION__", + "slash": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@jest/transform": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "__VERSION__", + "@jest/types": "__VERSION__", + "@jridgewell/trace-mapping": "__VERSION__", + "babel-plugin-istanbul": "__VERSION__", + "chalk": "__VERSION__", + "convert-source-map": "__VERSION__", + "fast-json-stable-stringify": "__VERSION__", + "graceful-fs": "__VERSION__", + "jest-haste-map": "__VERSION__", + "jest-regex-util": "__VERSION__", + "jest-util": "__VERSION__", + "pirates": "__VERSION__", + "slash": "__VERSION__", + "write-file-atomic": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@jest/types": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/pattern": "__VERSION__", + "@jest/schemas": "__VERSION__", + "@types/istanbul-lib-coverage": "__VERSION__", + "@types/istanbul-reports": "__VERSION__", + "@types/node": "*", + "@types/yargs": "__VERSION__", + "chalk": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "__VERSION__", + "@jridgewell/trace-mapping": "__VERSION__" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "__VERSION__", + "@jridgewell/trace-mapping": "__VERSION__" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "__VERSION__", + "@jridgewell/sourcemap-codec": "__VERSION__" + } + }, + "node_modules/@keyv/serialize": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "__VERSION__ || __VERSION__", + "@emnapi/runtime": "__VERSION__ || __VERSION__" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "__VERSION__", + "run-parallel": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "__VERSION__", + "fastq": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgr/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@rtsao/scc": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinclair/typebox": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/@sindresorhus/base62": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@sinonjs/commons": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "__VERSION__" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "__VERSION__" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "__VERSION__" + } + }, + "node_modules/@types/babel__core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "__VERSION__", + "@babel/types": "__VERSION__", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "__VERSION__" + } + }, + "node_modules/@types/babel__template": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "__VERSION__", + "@babel/types": "__VERSION__" + } + }, + "node_modules/@types/babel__traverse": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "__VERSION__" + } + }, + "node_modules/@types/estree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jsdom": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "__VERSION__" + } + }, + "node_modules/@types/json-schema": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/node/-/node-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "__VERSION__" + } + }, + "node_modules/@types/stack-utils": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/tough-cookie": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/types": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC" + }, + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-loong64-gnu": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-gnu/-/resolver-binding-linux-loong64-gnu-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-loong64-musl": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-musl/-/resolver-binding-linux-loong64-musl-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-openharmony-arm64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-openharmony-arm64/-/resolver-binding-openharmony-arm64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "__VERSION__", + "@emnapi/runtime": "__VERSION__", + "@napi-rs/wasm-runtime": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/acorn": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/acorn-jsx": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "__VERSION__ || __VERSION__ || __VERSION__" + } + }, + "node_modules/ajv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "__VERSION__", + "fast-json-stable-stringify": "__VERSION__", + "json-schema-traverse": "__VERSION__", + "uri-js": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/ansi-styles": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/are-docs-informative": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/argparse": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "is-array-buffer": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-object-atoms": "__VERSION__", + "get-intrinsic": "__VERSION__", + "is-string": "__VERSION__", + "math-intrinsics": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "es-shim-unscopables": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-shim-unscopables": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-shim-unscopables": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "__VERSION__", + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "is-array-buffer": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/astral-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/async-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/available-typed-arrays": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-jest": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "__VERSION__", + "@types/babel__core": "__VERSION__", + "babel-plugin-istanbul": "__VERSION__", + "babel-preset-jest": "__VERSION__", + "chalk": "__VERSION__", + "graceful-fs": "__VERSION__", + "slash": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + }, + "peerDependencies": { + "@babel/core": "__VERSION__ || __VERSION__" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-3-Clause", + "workspaces": [ + "test/babel-8" + ], + "dependencies": { + "@babel/helper-plugin-utils": "__VERSION__", + "@istanbuljs/load-nyc-config": "__VERSION__", + "@istanbuljs/schema": "__VERSION__", + "istanbul-lib-instrument": "__VERSION__", + "test-exclude": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/babel__core": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "__VERSION__", + "@babel/plugin-syntax-bigint": "__VERSION__", + "@babel/plugin-syntax-class-properties": "__VERSION__", + "@babel/plugin-syntax-class-static-block": "__VERSION__", + "@babel/plugin-syntax-import-attributes": "__VERSION__", + "@babel/plugin-syntax-import-meta": "__VERSION__", + "@babel/plugin-syntax-json-strings": "__VERSION__", + "@babel/plugin-syntax-logical-assignment-operators": "__VERSION__", + "@babel/plugin-syntax-nullish-coalescing-operator": "__VERSION__", + "@babel/plugin-syntax-numeric-separator": "__VERSION__", + "@babel/plugin-syntax-object-rest-spread": "__VERSION__", + "@babel/plugin-syntax-optional-catch-binding": "__VERSION__", + "@babel/plugin-syntax-optional-chaining": "__VERSION__", + "@babel/plugin-syntax-private-property-in-object": "__VERSION__", + "@babel/plugin-syntax-top-level-await": "__VERSION__" + }, + "peerDependencies": { + "@babel/core": "__VERSION__ || __VERSION__" + } + }, + "node_modules/babel-preset-jest": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "__VERSION__", + "babel-preset-current-node-syntax": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + }, + "peerDependencies": { + "@babel/core": "__VERSION__ || __VERSION__" + } + }, + "node_modules/balanced-match": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/bidi-js": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "require-from-string": "__VERSION__" + } + }, + "node_modules/brace-expansion": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "__VERSION__", + "concat-map": "__VERSION__" + } + }, + "node_modules/braces": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/braces/-/braces-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/browserslist": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": { + "baseline-browser-mapping": "__VERSION__", + "caniuse-lite": "__VERSION__", + "electron-to-chromium": "__VERSION__", + "node-releases": "__VERSION__", + "update-browserslist-db": "__VERSION__" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/bser/-/bser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "__VERSION__" + } + }, + "node_modules/buffer-from": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/memory": "__VERSION__", + "@cacheable/utils": "__VERSION__", + "hookified": "__VERSION__", + "keyv": "__VERSION__", + "qified": "__VERSION__" + } + }, + "node_modules/cacheable/node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "__VERSION__" + } + }, + "node_modules/call-bind": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "es-define-property": "__VERSION__", + "get-intrinsic": "__VERSION__", + "set-function-length": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "function-bind": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/camelcase": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/caniuse-lite": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "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": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "supports-color": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/ci-info": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cjs-module-lexer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__", + "wrap-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/co": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/co/-/co-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= __VERSION__", + "node": ">= __VERSION__" + } + }, + "node_modules/collect-v8-coverage": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/color-name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/colord": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/comment-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/concat-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "__VERSION__", + "import-fresh": "__VERSION__", + "js-yaml": "__VERSION__", + "parse-json": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": "__VERSION__" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cross-spawn": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "__VERSION__", + "shebang-command": "__VERSION__", + "which": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-functions-list": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/css-tree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "__VERSION__", + "source-map-js": "__VERSION__" + }, + "engines": { + "node": "^10 || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/cssesc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/data-urls": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "__VERSION__", + "whatwg-url": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/data-view-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-data-view": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-data-view": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-data-view": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/dedent": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "__VERSION__" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/define-data-property": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "gopd": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "object-keys": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-newline": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/diff-sequences": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/dir-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/doctrine": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/dunder-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "es-errors": "__VERSION__", + "gopd": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/entities": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/entities/-/entities-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/error-ex": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "__VERSION__" + } + }, + "node_modules/es-abstract": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "__VERSION__", + "arraybuffer.prototype.slice": "__VERSION__", + "available-typed-arrays": "__VERSION__", + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "data-view-buffer": "__VERSION__", + "data-view-byte-length": "__VERSION__", + "data-view-byte-offset": "__VERSION__", + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "es-set-tostringtag": "__VERSION__", + "es-to-primitive": "__VERSION__", + "function.prototype.name": "__VERSION__", + "get-intrinsic": "__VERSION__", + "get-proto": "__VERSION__", + "get-symbol-description": "__VERSION__", + "globalthis": "__VERSION__", + "gopd": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "has-proto": "__VERSION__", + "has-symbols": "__VERSION__", + "hasown": "__VERSION__", + "internal-slot": "__VERSION__", + "is-array-buffer": "__VERSION__", + "is-callable": "__VERSION__", + "is-data-view": "__VERSION__", + "is-negative-zero": "__VERSION__", + "is-regex": "__VERSION__", + "is-set": "__VERSION__", + "is-shared-array-buffer": "__VERSION__", + "is-string": "__VERSION__", + "is-typed-array": "__VERSION__", + "is-weakref": "__VERSION__", + "math-intrinsics": "__VERSION__", + "object-inspect": "__VERSION__", + "object-keys": "__VERSION__", + "object.assign": "__VERSION__", + "own-keys": "__VERSION__", + "regexp.prototype.flags": "__VERSION__", + "safe-array-concat": "__VERSION__", + "safe-push-apply": "__VERSION__", + "safe-regex-test": "__VERSION__", + "set-proto": "__VERSION__", + "stop-iteration-iterator": "__VERSION__", + "string.prototype.trim": "__VERSION__", + "string.prototype.trimend": "__VERSION__", + "string.prototype.trimstart": "__VERSION__", + "typed-array-buffer": "__VERSION__", + "typed-array-byte-length": "__VERSION__", + "typed-array-byte-offset": "__VERSION__", + "typed-array-length": "__VERSION__", + "unbox-primitive": "__VERSION__", + "which-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "has-tostringtag": "__VERSION__", + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "__VERSION__", + "is-date-object": "__VERSION__", + "is-symbol": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/escape-string-regexp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "__VERSION__", + "@eslint-community/regexpp": "__VERSION__", + "@eslint/config-array": "__VERSION__", + "@eslint/config-helpers": "__VERSION__", + "@eslint/core": "__VERSION__", + "@eslint/eslintrc": "__VERSION__", + "@eslint/js": "__VERSION__", + "@eslint/plugin-kit": "__VERSION__", + "@humanfs/node": "__VERSION__", + "@humanwhocodes/module-importer": "__VERSION__", + "@humanwhocodes/retry": "__VERSION__", + "@types/estree": "__VERSION__", + "ajv": "__VERSION__", + "chalk": "__VERSION__", + "cross-spawn": "__VERSION__", + "debug": "__VERSION__", + "escape-string-regexp": "__VERSION__", + "eslint-scope": "__VERSION__", + "eslint-visitor-keys": "__VERSION__", + "espree": "__VERSION__", + "esquery": "__VERSION__", + "esutils": "__VERSION__", + "fast-deep-equal": "__VERSION__", + "file-entry-cache": "__VERSION__", + "find-up": "__VERSION__", + "glob-parent": "__VERSION__", + "ignore": "__VERSION__", + "imurmurhash": "__VERSION__", + "is-glob": "__VERSION__", + "json-stable-stringify-without-jsonify": "__VERSION__", + "lodash.merge": "__VERSION__", + "minimatch": "__VERSION__", + "natural-compare": "__VERSION__", + "optionator": "__VERSION__" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-compat-utils": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "eslint": "__VERSION__" + } + }, + "node_modules/eslint-compat-utils/node_modules/semver": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/eslint-config-prettier": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": "__VERSION__" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "__VERSION__", + "is-core-module": "__VERSION__", + "resolve": "__VERSION__" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + } + }, + "node_modules/eslint-module-utils": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + } + }, + "node_modules/eslint-plugin-import": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "__VERSION__", + "array-includes": "__VERSION__", + "array.prototype.findlastindex": "__VERSION__", + "array.prototype.flat": "__VERSION__", + "array.prototype.flatmap": "__VERSION__", + "debug": "__VERSION__", + "doctrine": "__VERSION__", + "eslint-import-resolver-node": "__VERSION__", + "eslint-module-utils": "__VERSION__", + "hasown": "__VERSION__", + "is-core-module": "__VERSION__", + "is-glob": "__VERSION__", + "minimatch": "__VERSION__", + "object.fromentries": "__VERSION__", + "object.groupby": "__VERSION__", + "object.values": "__VERSION__", + "semver": "__VERSION__", + "string.prototype.trimend": "__VERSION__", + "tsconfig-paths": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || __VERSION__ || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + } + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@es-joy/jsdoccomment": "__VERSION__", + "@es-joy/resolve.exports": "__VERSION__", + "are-docs-informative": "__VERSION__", + "comment-parser": "__VERSION__", + "debug": "__VERSION__", + "escape-string-regexp": "__VERSION__", + "espree": "__VERSION__", + "esquery": "__VERSION__", + "html-entities": "__VERSION__", + "object-deep-merge": "__VERSION__", + "parse-imports-exports": "__VERSION__", + "semver": "__VERSION__", + "spdx-expression-parse": "__VERSION__", + "to-valid-identifier": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=24" + }, + "peerDependencies": { + "eslint": "__VERSION__ || __VERSION__ || __VERSION__ || __VERSION__" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/comment-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/espree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/espree/-/espree-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "__VERSION__", + "acorn-jsx": "__VERSION__", + "eslint-visitor-keys": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/semver": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/eslint-plugin-no-jquery": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": "__VERSION__", + "oxlint": "__VERSION__" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "oxlint": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "__VERSION__", + "synckit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": "__VERSION__", + "eslint": "__VERSION__", + "eslint-config-prettier": ">= __VERSION__ <__VERSION__ || >=__VERSION__", + "prettier": "__VERSION__" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-yml": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "__VERSION__", + "diff-sequences": "__VERSION__", + "escape-string-regexp": "__VERSION__", + "eslint-compat-utils": "__VERSION__", + "natural-compare": "__VERSION__", + "yaml-eslint-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": "__VERSION__" + } + }, + "node_modules/eslint-scope": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "__VERSION__", + "estraverse": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "__VERSION__", + "path-exists": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/espree/-/espree-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "__VERSION__", + "acorn-jsx": "__VERSION__", + "eslint-visitor-keys": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/esquery": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/esrecurse": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/estraverse": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/esutils": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/execa": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/execa/-/execa-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "__VERSION__", + "get-stream": "__VERSION__", + "human-signals": "__VERSION__", + "is-stream": "__VERSION__", + "merge-stream": "__VERSION__", + "npm-run-path": "__VERSION__", + "onetime": "__VERSION__", + "signal-exit": "__VERSION__", + "strip-final-newline": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/signal-exit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC" + }, + "node_modules/exit-x": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/exit-x/-/exit-x-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/expect": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/expect/-/expect-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "__VERSION__", + "@jest/get-type": "__VERSION__", + "jest-matcher-utils": "__VERSION__", + "jest-message-util": "__VERSION__", + "jest-mock": "__VERSION__", + "jest-util": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/fast-deep-equal": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "__VERSION__", + "@nodelib/fs.walk": "__VERSION__", + "glob-parent": "__VERSION__", + "merge2": "__VERSION__", + "micromatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "__VERSION__" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastest-levenshtein": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/fastq": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "__VERSION__" + } + }, + "node_modules/fb-watchman": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "__VERSION__" + } + }, + "node_modules/file-entry-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fill-range": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/find-up": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "__VERSION__", + "path-exists": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/flat-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "__VERSION__", + "keyv": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/flatted": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fsevents": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/function-bind": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "functions-have-names": "__VERSION__", + "hasown": "__VERSION__", + "is-callable": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gensync": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-__VERSION__", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/get-caller-file": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "function-bind": "__VERSION__", + "get-proto": "__VERSION__", + "gopd": "__VERSION__", + "has-symbols": "__VERSION__", + "hasown": "__VERSION__", + "math-intrinsics": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/get-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/glob/-/glob-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BlueOak-__VERSION__", + "dependencies": { + "minimatch": "__VERSION__", + "minipass": "__VERSION__", + "path-scurry": "__VERSION__" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/glob/node_modules/balanced-match": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "__VERSION__" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BlueOak-__VERSION__", + "dependencies": { + "brace-expansion": "__VERSION__" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/global-modules": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/global-prefix": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "__VERSION__", + "kind-of": "__VERSION__", + "which": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "__VERSION__" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "__VERSION__", + "gopd": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globby/-/globby-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "__VERSION__", + "dir-glob": "__VERSION__", + "fast-glob": "__VERSION__", + "ignore": "__VERSION__", + "merge2": "__VERSION__", + "slash": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globjoin": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/gopd": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC" + }, + "node_modules/has-bigints": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/has-property-descriptors": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hashery": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/hasown": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hookified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/html-encoding-sniffer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@exodus/bytes": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/html-entities": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/html-escaper": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/html-tags": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/human-signals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/ignore": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "__VERSION__", + "resolve-from": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/import-local": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "__VERSION__", + "resolve-cwd": "__VERSION__" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/ini": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "hasown": "__VERSION__", + "side-channel": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "__VERSION__", + "call-bound": "__VERSION__", + "get-proto": "__VERSION__", + "has-tostringtag": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__", + "is-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-finalizationregistry": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-generator-fn": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-generator-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "generator-function": "__VERSION__", + "get-proto": "__VERSION__", + "has-tostringtag": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-number-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-object": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "gopd": "__VERSION__", + "has-tostringtag": "__VERSION__", + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-symbols": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "__VERSION__", + "@babel/parser": "__VERSION__", + "@istanbuljs/schema": "__VERSION__", + "istanbul-lib-coverage": "__VERSION__", + "semver": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/istanbul-lib-report": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "__VERSION__", + "make-dir": "__VERSION__", + "supports-color": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@jridgewell/trace-mapping": "__VERSION__", + "debug": "__VERSION__", + "istanbul-lib-coverage": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/istanbul-reports": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "__VERSION__", + "istanbul-lib-report": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/jest": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest/-/jest-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "__VERSION__", + "@jest/types": "__VERSION__", + "import-local": "__VERSION__", + "jest-cli": "__VERSION__" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + }, + "peerDependencies": { + "node-notifier": "__VERSION__ || __VERSION__ || __VERSION__" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "__VERSION__", + "jest-util": "__VERSION__", + "p-limit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/jest-circus": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "__VERSION__", + "@jest/expect": "__VERSION__", + "@jest/test-result": "__VERSION__", + "@jest/types": "__VERSION__", + "@types/node": "*", + "chalk": "__VERSION__", + "co": "__VERSION__", + "dedent": "__VERSION__", + "is-generator-fn": "__VERSION__", + "jest-each": "__VERSION__", + "jest-matcher-utils": "__VERSION__", + "jest-message-util": "__VERSION__", + "jest-runtime": "__VERSION__", + "jest-snapshot": "__VERSION__", + "jest-util": "__VERSION__", + "p-limit": "__VERSION__", + "pretty-format": "__VERSION__", + "pure-rand": "__VERSION__", + "slash": "__VERSION__", + "stack-utils": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/jest-cli": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "__VERSION__", + "@jest/test-result": "__VERSION__", + "@jest/types": "__VERSION__", + "chalk": "__VERSION__", + "exit-x": "__VERSION__", + "import-local": "__VERSION__", + "jest-config": "__VERSION__", + "jest-util": "__VERSION__", + "jest-validate": "__VERSION__", + "yargs": "__VERSION__" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + }, + "peerDependencies": { + "node-notifier": "__VERSION__ || __VERSION__ || __VERSION__" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "__VERSION__", + "@jest/get-type": "__VERSION__", + "@jest/pattern": "__VERSION__", + "@jest/test-sequencer": "__VERSION__", + "@jest/types": "__VERSION__", + "babel-jest": "__VERSION__", + "chalk": "__VERSION__", + "ci-info": "__VERSION__", + "deepmerge": "__VERSION__", + "glob": "__VERSION__", + "graceful-fs": "__VERSION__", + "jest-circus": "__VERSION__", + "jest-docblock": "__VERSION__", + "jest-environment-node": "__VERSION__", + "jest-regex-util": "__VERSION__", + "jest-resolve": "__VERSION__", + "jest-runner": "__VERSION__", + "jest-util": "__VERSION__", + "jest-validate": "__VERSION__", + "parse-json": "__VERSION__", + "pretty-format": "__VERSION__", + "slash": "__VERSION__", + "strip-json-comments": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + }, + "peerDependencies": { + "@types/node": "*", + "esbuild-register": "__VERSION__", + "ts-node": "__VERSION__" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "esbuild-register": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/diff-sequences": "__VERSION__", + "@jest/get-type": "__VERSION__", + "chalk": "__VERSION__", + "pretty-format": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/jest-docblock": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/jest-each": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "__VERSION__", + "@jest/types": "__VERSION__", + "chalk": "__VERSION__", + "jest-util": "__VERSION__", + "pretty-format": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "__VERSION__", + "@jest/environment-jsdom-abstract": "__VERSION__", + "jsdom": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + }, + "peerDependencies": { + "canvas": "__VERSION__" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jest-environment-node": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "__VERSION__", + "@jest/fake-timers": "__VERSION__", + "@jest/types": "__VERSION__", + "@types/node": "*", + "jest-mock": "__VERSION__", + "jest-util": "__VERSION__", + "jest-validate": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/jest-haste-map": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "__VERSION__", + "@types/node": "*", + "anymatch": "__VERSION__", + "fb-watchman": "__VERSION__", + "graceful-fs": "__VERSION__", + "jest-regex-util": "__VERSION__", + "jest-util": "__VERSION__", + "jest-worker": "__VERSION__", + "picomatch": "__VERSION__", + "walker": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + }, + "optionalDependencies": { + "fsevents": "__VERSION__" + } + }, + "node_modules/jest-leak-detector": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "__VERSION__", + "pretty-format": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/jest-matcher-utils": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "__VERSION__", + "chalk": "__VERSION__", + "jest-diff": "__VERSION__", + "pretty-format": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/jest-message-util": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "__VERSION__", + "@jest/types": "__VERSION__", + "@types/stack-utils": "__VERSION__", + "chalk": "__VERSION__", + "graceful-fs": "__VERSION__", + "jest-util": "__VERSION__", + "picomatch": "__VERSION__", + "pretty-format": "__VERSION__", + "slash": "__VERSION__", + "stack-utils": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/jest-mock": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "__VERSION__", + "@types/node": "*", + "jest-util": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/jest-resolve": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "__VERSION__", + "graceful-fs": "__VERSION__", + "jest-haste-map": "__VERSION__", + "jest-pnp-resolver": "__VERSION__", + "jest-util": "__VERSION__", + "jest-validate": "__VERSION__", + "slash": "__VERSION__", + "unrs-resolver": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "__VERSION__", + "jest-snapshot": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/jest-runner": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "__VERSION__", + "@jest/environment": "__VERSION__", + "@jest/test-result": "__VERSION__", + "@jest/transform": "__VERSION__", + "@jest/types": "__VERSION__", + "@types/node": "*", + "chalk": "__VERSION__", + "emittery": "__VERSION__", + "exit-x": "__VERSION__", + "graceful-fs": "__VERSION__", + "jest-docblock": "__VERSION__", + "jest-environment-node": "__VERSION__", + "jest-haste-map": "__VERSION__", + "jest-leak-detector": "__VERSION__", + "jest-message-util": "__VERSION__", + "jest-resolve": "__VERSION__", + "jest-runtime": "__VERSION__", + "jest-util": "__VERSION__", + "jest-watcher": "__VERSION__", + "jest-worker": "__VERSION__", + "p-limit": "__VERSION__", + "source-map-support": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/jest-runtime": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "__VERSION__", + "@jest/fake-timers": "__VERSION__", + "@jest/globals": "__VERSION__", + "@jest/source-map": "__VERSION__", + "@jest/test-result": "__VERSION__", + "@jest/transform": "__VERSION__", + "@jest/types": "__VERSION__", + "@types/node": "*", + "chalk": "__VERSION__", + "cjs-module-lexer": "__VERSION__", + "collect-v8-coverage": "__VERSION__", + "glob": "__VERSION__", + "graceful-fs": "__VERSION__", + "jest-haste-map": "__VERSION__", + "jest-message-util": "__VERSION__", + "jest-mock": "__VERSION__", + "jest-regex-util": "__VERSION__", + "jest-resolve": "__VERSION__", + "jest-snapshot": "__VERSION__", + "jest-util": "__VERSION__", + "slash": "__VERSION__", + "strip-bom": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/jest-runtime/node_modules/strip-bom": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/jest-snapshot": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "__VERSION__", + "@babel/generator": "__VERSION__", + "@babel/plugin-syntax-jsx": "__VERSION__", + "@babel/plugin-syntax-typescript": "__VERSION__", + "@babel/types": "__VERSION__", + "@jest/expect-utils": "__VERSION__", + "@jest/get-type": "__VERSION__", + "@jest/snapshot-utils": "__VERSION__", + "@jest/transform": "__VERSION__", + "@jest/types": "__VERSION__", + "babel-preset-current-node-syntax": "__VERSION__", + "chalk": "__VERSION__", + "expect": "__VERSION__", + "graceful-fs": "__VERSION__", + "jest-diff": "__VERSION__", + "jest-matcher-utils": "__VERSION__", + "jest-message-util": "__VERSION__", + "jest-util": "__VERSION__", + "pretty-format": "__VERSION__", + "semver": "__VERSION__", + "synckit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/jest-util": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "__VERSION__", + "@types/node": "*", + "chalk": "__VERSION__", + "ci-info": "__VERSION__", + "graceful-fs": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/jest-validate": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "__VERSION__", + "@jest/types": "__VERSION__", + "camelcase": "__VERSION__", + "chalk": "__VERSION__", + "leven": "__VERSION__", + "pretty-format": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "__VERSION__", + "@jest/types": "__VERSION__", + "@types/node": "*", + "ansi-escapes": "__VERSION__", + "chalk": "__VERSION__", + "emittery": "__VERSION__", + "jest-util": "__VERSION__", + "string-length": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/jest-worker": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@ungap/structured-clone": "__VERSION__", + "jest-util": "__VERSION__", + "merge-stream": "__VERSION__", + "supports-color": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "__VERSION__" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/jsdom": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/css-color": "__VERSION__", + "@asamuzakjp/dom-selector": "__VERSION__", + "@bramus/specificity": "__VERSION__", + "@csstools/css-syntax-patches-for-csstree": "__VERSION__", + "@exodus/bytes": "__VERSION__", + "css-tree": "__VERSION__", + "data-urls": "__VERSION__", + "decimal.js": "__VERSION__", + "html-encoding-sniffer": "__VERSION__", + "is-potential-custom-element-name": "__VERSION__", + "lru-cache": "__VERSION__", + "parse5": "__VERSION__", + "saxes": "__VERSION__", + "symbol-tree": "__VERSION__", + "tough-cookie": "__VERSION__", + "undici": "__VERSION__", + "w3c-xmlserializer": "__VERSION__", + "webidl-conversions": "__VERSION__", + "whatwg-mimetype": "__VERSION__", + "whatwg-url": "__VERSION__", + "xml-name-validator": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "peerDependencies": { + "canvas": "__VERSION__" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/entities": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/entities/-/entities-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/jsdom/node_modules/lru-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BlueOak-__VERSION__", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/jsdom/node_modules/parse5": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "__VERSION__" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/jsesc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/json-buffer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "__VERSION__" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "__VERSION__" + } + }, + "node_modules/kind-of": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/known-css-properties": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/leven": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/leven/-/leven-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/levn": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "__VERSION__", + "type-check": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/lines-and-columns": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/lodash.merge": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "__VERSION__" + } + }, + "node_modules/make-dir": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/makeerror": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "__VERSION__" + } + }, + "node_modules/math-intrinsics": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mathml-tag-names": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdn-data": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/meow": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/meow/-/meow-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mimic-fn": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/minimatch": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "__VERSION__" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BlueOak-__VERSION__", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=__VERSION__" + } + }, + "node_modules/napi-postinstall": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } + }, + "node_modules/natural-compare": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/node-int64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/normalize-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/npm-run-path": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/object-deep-merge": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/object-deep-merge/-/object-deep-merge-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/object-inspect": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__", + "has-symbols": "__VERSION__", + "object-keys": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/onetime": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "__VERSION__", + "fast-levenshtein": "__VERSION__", + "levn": "__VERSION__", + "prelude-ls": "__VERSION__", + "type-check": "__VERSION__", + "word-wrap": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/own-keys": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "__VERSION__", + "object-keys": "__VERSION__", + "safe-push-apply": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/parent-module": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/parse-imports-exports": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-statements": "__VERSION__" + } + }, + "node_modules/parse-json": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "__VERSION__", + "error-ex": "__VERSION__", + "json-parse-even-better-errors": "__VERSION__", + "lines-and-columns": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-statements": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/parse5": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "__VERSION__" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-exists": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/path-key": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/path-parse": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BlueOak-__VERSION__", + "dependencies": { + "lru-cache": "__VERSION__", + "minipass": "__VERSION__" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BlueOak-__VERSION__", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/path-type": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/picocolors": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/possible-typed-array-names": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__", + "picocolors": "__VERSION__", + "source-map-js": "__VERSION__" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-safe-parser": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-selector-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "__VERSION__", + "util-deprecate": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-sorting": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-value-parser": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/prettier": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/pretty-format": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "__VERSION__", + "ansi-styles": "__VERSION__", + "react-is-18": "npm:react-is@__VERSION__", + "react-is-19": "npm:react-is@__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/punycode": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/pure-rand": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, + "node_modules/qified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/qified/-/qified-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/qified/node_modules/hookified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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/ramda": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ramda" + } + }, + "node_modules/react-is-18": { + "name": "react-is", + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/react-is-19": { + "name": "react-is", + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/reflect.getprototypeof": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "get-intrinsic": "__VERSION__", + "get-proto": "__VERSION__", + "which-builtin-type": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-errors": "__VERSION__", + "get-proto": "__VERSION__", + "gopd": "__VERSION__", + "set-function-name": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/require-from-string": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/reserved-identifiers": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/resolve": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "__VERSION__", + "path-parse": "__VERSION__", + "supports-preserve-symlinks-flag": "__VERSION__" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/resolve-from": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/reusify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "iojs": "__VERSION__", + "node": "__VERSION__" + } + }, + "node_modules/run-parallel": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__" + } + }, + "node_modules/safe-array-concat": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__", + "has-symbols": "__VERSION__", + "isarray": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "isarray": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-regex": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/saxes": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "xmlchars": "__VERSION__" + }, + "engines": { + "node": ">=__VERSION__" + } + }, + "node_modules/semver": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-function-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "__VERSION__", + "es-errors": "__VERSION__", + "function-bind": "__VERSION__", + "get-intrinsic": "__VERSION__", + "gopd": "__VERSION__", + "has-property-descriptors": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "__VERSION__", + "es-errors": "__VERSION__", + "functions-have-names": "__VERSION__", + "has-property-descriptors": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/shebang-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/side-channel": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "object-inspect": "__VERSION__", + "side-channel-list": "__VERSION__", + "side-channel-map": "__VERSION__", + "side-channel-weakmap": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "object-inspect": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "object-inspect": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "object-inspect": "__VERSION__", + "side-channel-map": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/slash/-/slash-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/slice-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "astral-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/source-map": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/source-map-js": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/source-map-support": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "__VERSION__", + "source-map": "__VERSION__" + } + }, + "node_modules/spdx-exceptions": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "__VERSION__", + "spdx-license-ids": "__VERSION__" + } + }, + "node_modules/spdx-license-ids": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/sprintf-js": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/stack-utils": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "internal-slot": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string-length": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/string-width": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/string.prototype.trim": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-data-property": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-object-atoms": "__VERSION__", + "has-property-descriptors": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/strip-bom": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/strip-final-newline": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/strip-json-comments": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/css-parser-algorithms": "__VERSION__", + "@csstools/css-syntax-patches-for-csstree": "__VERSION__", + "@csstools/css-tokenizer": "__VERSION__", + "@csstools/media-query-list-parser": "__VERSION__", + "@csstools/selector-specificity": "__VERSION__", + "@dual-bundle/import-meta-resolve": "__VERSION__", + "balanced-match": "__VERSION__", + "colord": "__VERSION__", + "cosmiconfig": "__VERSION__", + "css-functions-list": "__VERSION__", + "css-tree": "__VERSION__", + "debug": "__VERSION__", + "fast-glob": "__VERSION__", + "fastest-levenshtein": "__VERSION__", + "file-entry-cache": "__VERSION__", + "global-modules": "__VERSION__", + "globby": "__VERSION__", + "globjoin": "__VERSION__", + "html-tags": "__VERSION__", + "ignore": "__VERSION__", + "imurmurhash": "__VERSION__", + "is-plain-object": "__VERSION__", + "known-css-properties": "__VERSION__", + "mathml-tag-names": "__VERSION__", + "meow": "__VERSION__", + "micromatch": "__VERSION__", + "normalize-path": "__VERSION__", + "picocolors": "__VERSION__", + "postcss": "__VERSION__", + "postcss-resolve-nested-selector": "__VERSION__", + "postcss-safe-parser": "__VERSION__", + "postcss-selector-parser": "__VERSION__", + "postcss-value-parser": "__VERSION__", + "resolve-from": "__VERSION__", + "string-width": "__VERSION__", + "supports-hyperlinks": "__VERSION__", + "svg-tags": "__VERSION__", + "table": "__VERSION__", + "write-file-atomic": "__VERSION__" + }, + "bin": { + "stylelint": "bin/stylelint.mjs" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__" + } + }, + "node_modules/stylelint-config-standard": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "stylelint-config-recommended": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__" + } + }, + "node_modules/stylelint-order": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss": "__VERSION__", + "postcss-sorting": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__ || __VERSION__" + } + }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/stylelint/node_modules/file-entry-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "__VERSION__" + } + }, + "node_modules/stylelint/node_modules/flat-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "cacheable": "__VERSION__", + "flatted": "__VERSION__", + "hookified": "__VERSION__" + } + }, + "node_modules/stylelint/node_modules/ignore": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/supports-color": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/supports-hyperlinks": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "__VERSION__", + "supports-color": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-tags": { + "version": "__VERSION__", + "dev": true + }, + "node_modules/symbol-tree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/synckit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/table": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "__VERSION__", + "lodash.truncate": "__VERSION__", + "slice-ansi": "__VERSION__", + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "__VERSION__", + "fast-uri": "__VERSION__", + "json-schema-traverse": "__VERSION__", + "require-from-string": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/test-exclude": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "__VERSION__", + "glob": "__VERSION__", + "minimatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/test-exclude/node_modules/balanced-match": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "__VERSION__" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BlueOak-__VERSION__", + "dependencies": { + "brace-expansion": "__VERSION__" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/tldts": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "tldts-core": "__VERSION__" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/tmpl": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/to-regex-range": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/to-valid-identifier": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/base62": "__VERSION__", + "reserved-identifiers": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tough-cookie": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/tr46": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/tsconfig-paths": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "__VERSION__", + "json5": "__VERSION__", + "minimist": "__VERSION__", + "strip-bom": "__VERSION__" + } + }, + "node_modules/tslib": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "0BSD", + "optional": true + }, + "node_modules/type-check": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/type-detect": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/type-fest": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "for-each": "__VERSION__", + "gopd": "__VERSION__", + "has-proto": "__VERSION__", + "is-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "__VERSION__", + "call-bind": "__VERSION__", + "for-each": "__VERSION__", + "gopd": "__VERSION__", + "has-proto": "__VERSION__", + "is-typed-array": "__VERSION__", + "reflect.getprototypeof": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "for-each": "__VERSION__", + "gopd": "__VERSION__", + "is-typed-array": "__VERSION__", + "possible-typed-array-names": "__VERSION__", + "reflect.getprototypeof": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-bigints": "__VERSION__", + "has-symbols": "__VERSION__", + "which-boxed-primitive": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/undici/-/undici-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/undici-types": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/unrs-resolver": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "napi-postinstall": "__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "__VERSION__", + "@unrs/resolver-binding-android-arm64": "__VERSION__", + "@unrs/resolver-binding-darwin-arm64": "__VERSION__", + "@unrs/resolver-binding-darwin-x64": "__VERSION__", + "@unrs/resolver-binding-freebsd-x64": "__VERSION__", + "@unrs/resolver-binding-linux-arm-gnueabihf": "__VERSION__", + "@unrs/resolver-binding-linux-arm-musleabihf": "__VERSION__", + "@unrs/resolver-binding-linux-arm64-gnu": "__VERSION__", + "@unrs/resolver-binding-linux-arm64-musl": "__VERSION__", + "@unrs/resolver-binding-linux-loong64-gnu": "__VERSION__", + "@unrs/resolver-binding-linux-loong64-musl": "__VERSION__", + "@unrs/resolver-binding-linux-ppc64-gnu": "__VERSION__", + "@unrs/resolver-binding-linux-riscv64-gnu": "__VERSION__", + "@unrs/resolver-binding-linux-riscv64-musl": "__VERSION__", + "@unrs/resolver-binding-linux-s390x-gnu": "__VERSION__", + "@unrs/resolver-binding-linux-x64-gnu": "__VERSION__", + "@unrs/resolver-binding-linux-x64-musl": "__VERSION__", + "@unrs/resolver-binding-openharmony-arm64": "__VERSION__", + "@unrs/resolver-binding-wasm32-wasi": "__VERSION__", + "@unrs/resolver-binding-win32-arm64-msvc": "__VERSION__", + "@unrs/resolver-binding-win32-ia32-msvc": "__VERSION__", + "@unrs/resolver-binding-win32-x64-msvc": "__VERSION__" + } + }, + "node_modules/update-browserslist-db": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__", + "picocolors": "__VERSION__" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= __VERSION__" + } + }, + "node_modules/uri-js": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "__VERSION__" + } + }, + "node_modules/util-deprecate": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/v8-to-istanbul": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "__VERSION__", + "@types/istanbul-lib-coverage": "__VERSION__", + "convert-source-map": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "xml-name-validator": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/walker": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/walker/-/walker-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "__VERSION__" + } + }, + "node_modules/webidl-conversions": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/whatwg-mimetype": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/whatwg-url": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@exodus/bytes": "__VERSION__", + "tr46": "__VERSION__", + "webidl-conversions": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/which": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "__VERSION__" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "__VERSION__", + "is-boolean-object": "__VERSION__", + "is-number-object": "__VERSION__", + "is-string": "__VERSION__", + "is-symbol": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "function.prototype.name": "__VERSION__", + "has-tostringtag": "__VERSION__", + "is-async-function": "__VERSION__", + "is-date-object": "__VERSION__", + "is-finalizationregistry": "__VERSION__", + "is-generator-function": "__VERSION__", + "is-regex": "__VERSION__", + "is-weakref": "__VERSION__", + "isarray": "__VERSION__", + "which-boxed-primitive": "__VERSION__", + "which-collection": "__VERSION__", + "which-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "__VERSION__", + "is-set": "__VERSION__", + "is-weakmap": "__VERSION__", + "is-weakset": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "__VERSION__", + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "for-each": "__VERSION__", + "get-proto": "__VERSION__", + "gopd": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/write-file-atomic": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "__VERSION__", + "signal-exit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/xml-name-validator": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/xmlchars": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/y18n": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yallist": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yaml-eslint-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "__VERSION__", + "yaml": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, + "node_modules/yargs": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "__VERSION__", + "escalade": "__VERSION__", + "get-caller-file": "__VERSION__", + "require-directory": "__VERSION__", + "string-width": "__VERSION__", + "y18n": "__VERSION__", + "yargs-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yocto-queue": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/package.json b/.vortex/cli/tests/Fixtures/handler_process/_baseline/package.json index 35c81a56b9..4d98340f22 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/package.json +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/package.json @@ -4,33 +4,40 @@ "license": "proprietary", "private": true, "engines": { - "yarn": ">= __VERSION__", + "npm": ">= __VERSION__", "node": ">= __VERSION__" }, "scripts": { - "lint-js": "eslint web/modules/custom --ext .js --max-warnings=0 --no-error-on-unmatched-pattern", + "lint-js": "eslint web/modules/custom --max-warnings=0 --no-error-on-unmatched-pattern", "lint-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\"", - "lint": "yarn run lint-js && yarn run lint-css", - "lint-fix-js": "eslint web/modules/custom --ext .js --no-error-on-unmatched-pattern --fix", + "lint": "npm run lint-js && npm run lint-css", + "lint-fix-js": "eslint web/modules/custom --no-error-on-unmatched-pattern --fix", "lint-fix-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\" --fix", - "lint-fix": "yarn run lint-fix-js && yarn run lint-fix-css", + "lint-fix": "npm run lint-fix-js && npm run lint-fix-css", "test": "jest --coverage --passWithNoTests" }, "devDependencies": { + "@eslint/compat": "__VERSION__", + "@eslint/js": "__VERSION__", "@homer0/prettier-plugin-jsdoc": "__VERSION__", "jest": "__VERSION__", "jest-environment-jsdom": "__VERSION__", "eslint": "__VERSION__", - "eslint-config-airbnb-base": "__VERSION__", "eslint-config-prettier": "__VERSION__", "eslint-plugin-import": "__VERSION__", "eslint-plugin-jsdoc": "__VERSION__", "eslint-plugin-no-jquery": "__VERSION__", "eslint-plugin-prettier": "__VERSION__", "eslint-plugin-yml": "__VERSION__", + "globals": "__VERSION__", "prettier": "__VERSION__", "stylelint": "__VERSION__", "stylelint-config-standard": "__VERSION__", "stylelint-order": "__VERSION__" + }, + "overrides": { + "test-exclude": "__VERSION__", + "glob": "__VERSION__", + "jsdom": "__VERSION__" } } diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/rector.php b/.vortex/cli/tests/Fixtures/handler_process/_baseline/rector.php index 2c2daabe98..d7679978b9 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/rector.php +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/rector.php @@ -24,7 +24,6 @@ use Rector\CodingStyle\Rector\Catch_\CatchExceptionNameMatchingTypeRector; use Rector\CodingStyle\Rector\ClassLike\NewlineBetweenClassLikeStmtsRector; use Rector\CodingStyle\Rector\ClassMethod\NewlineBeforeNewAssignSetRector; -use Rector\CodingStyle\Rector\FuncCall\CountArrayToEmptyArrayComparisonRector; use Rector\CodingStyle\Rector\Stmt\NewlineAfterStatementRector; use Rector\Config\RectorConfig; use Rector\DeadCode\Rector\If_\RemoveAlwaysTrueIfConditionRector; @@ -32,6 +31,7 @@ use Rector\Naming\Rector\Class_\RenamePropertyToMatchTypeRector; use Rector\Naming\Rector\ClassMethod\RenameParamToMatchTypeRector; use Rector\Naming\Rector\ClassMethod\RenameVariableToMatchNewTypeRector; +use Rector\Naming\Rector\Foreach_\RenameForeachValueVariableToMatchExprVariableRector; use Rector\Naming\Rector\Foreach_\RenameForeachValueVariableToMatchMethodCallReturnTypeRector; use Rector\Php55\Rector\String_\StringClassNameToClassConstantRector; use Rector\Php80\Rector\Switch_\ChangeSwitchToMatchRector; @@ -60,7 +60,6 @@ CatchExceptionNameMatchingTypeRector::class, ChangeSwitchToMatchRector::class, CompleteDynamicPropertiesRector::class, - CountArrayToEmptyArrayComparisonRector::class, DisallowedEmptyRuleFixerRector::class, InlineArrayReturnAssignRector::class, NewlineAfterStatementRector::class, @@ -71,6 +70,7 @@ PrivatizeFinalClassPropertyRector::class, PrivatizeLocalGetterToPropertyRector::class, RemoveAlwaysTrueIfConditionRector::class, + RenameForeachValueVariableToMatchExprVariableRector::class, RenameForeachValueVariableToMatchMethodCallReturnTypeRector::class, RenameParamToMatchTypeRector::class, RenamePropertyToMatchTypeRector::class, @@ -78,7 +78,7 @@ RenameVariableToMatchNewTypeRector::class, SimplifyEmptyCheckOnEmptyArrayRector::class, StringClassNameToClassConstantRector::class => [ - __DIR__ . '/web/sites/default/includes/**/*', + __DIR__ . '/web/sites/default/includes/*', ], // Directories to skip. '*/vendor/*', diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/renovate.json b/.vortex/cli/tests/Fixtures/handler_process/_baseline/renovate.json index b680374074..865b120b97 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/renovate.json +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/renovate.json @@ -42,7 +42,7 @@ "groupSlug": "js-language-versions", "matchDepNames": [ "node", - "yarn" + "npm" ], "matchManagers": [ "npm" diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/bootstrap/FeatureContext.php b/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/bootstrap/FeatureContext.php index 873f743ccd..5e99447f3a 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/bootstrap/FeatureContext.php +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/bootstrap/FeatureContext.php @@ -8,9 +8,14 @@ declare(strict_types=1); use DrevOps\BehatSteps\AccessibilityTrait; +use DrevOps\BehatSteps\CommandTrait; use DrevOps\BehatSteps\CookieTrait; use DrevOps\BehatSteps\DateTrait; +use DrevOps\BehatSteps\DiagnosticsTrait; +use DrevOps\BehatSteps\Drupal\BigPipeTrait; use DrevOps\BehatSteps\Drupal\BlockTrait; +use DrevOps\BehatSteps\Drupal\CacheTrait; +use DrevOps\BehatSteps\Drupal\ConfigTrait; use DrevOps\BehatSteps\Drupal\ContentBlockTrait; use DrevOps\BehatSteps\Drupal\ContentTrait; use DrevOps\BehatSteps\Drupal\DraggableviewsTrait; @@ -19,10 +24,14 @@ use DrevOps\BehatSteps\Drupal\FileTrait; use DrevOps\BehatSteps\Drupal\MediaTrait; use DrevOps\BehatSteps\Drupal\MenuTrait; +use DrevOps\BehatSteps\Drupal\ModuleTrait; use DrevOps\BehatSteps\MetatagTrait; use DrevOps\BehatSteps\Drupal\OverrideTrait; use DrevOps\BehatSteps\Drupal\ParagraphsTrait; +use DrevOps\BehatSteps\Drupal\QueueTrait; +use DrevOps\BehatSteps\Drupal\RedirectTrait; use DrevOps\BehatSteps\Drupal\SearchApiTrait; +use DrevOps\BehatSteps\Drupal\StateTrait; use DrevOps\BehatSteps\Drupal\TaxonomyTrait; use DrevOps\BehatSteps\Drupal\TestmodeTrait; use DrevOps\BehatSteps\Drupal\UserTrait; @@ -30,12 +39,19 @@ use DrevOps\BehatSteps\ElementTrait; use DrevOps\BehatSteps\FieldTrait; use DrevOps\BehatSteps\FileDownloadTrait; +use DrevOps\BehatSteps\IframeTrait; use DrevOps\BehatSteps\JavascriptTrait; +use DrevOps\BehatSteps\JsonTrait; use DrevOps\BehatSteps\KeyboardTrait; use DrevOps\BehatSteps\LinkTrait; +use DrevOps\BehatSteps\ModalTrait; use DrevOps\BehatSteps\PathTrait; use DrevOps\BehatSteps\ResponseTrait; +use DrevOps\BehatSteps\ResponsiveTrait; +use DrevOps\BehatSteps\RestTrait; +use DrevOps\BehatSteps\TableTrait; use DrevOps\BehatSteps\WaitTrait; +use DrevOps\BehatSteps\XmlTrait; use Drupal\DrupalExtension\Context\DrupalContext; /** @@ -44,11 +60,16 @@ class FeatureContext extends DrupalContext { use AccessibilityTrait; + use BigPipeTrait; use BlockTrait; + use CacheTrait; + use CommandTrait; + use ConfigTrait; use ContentBlockTrait; use ContentTrait; use CookieTrait; use DateTrait; + use DiagnosticsTrait; use DraggableviewsTrait; use EckTrait; use ElementTrait; @@ -56,21 +77,32 @@ class FeatureContext extends DrupalContext { use FieldTrait; use FileDownloadTrait; use FileTrait; + use IframeTrait; use JavascriptTrait; + use JsonTrait; use KeyboardTrait; use LinkTrait; use MediaTrait; use MenuTrait; use MetatagTrait; + use ModalTrait; + use ModuleTrait; use OverrideTrait; use ParagraphsTrait; use PathTrait; + use QueueTrait; + use RedirectTrait; use ResponseTrait; + use ResponsiveTrait; + use RestTrait; use SearchApiTrait; + use StateTrait; + use TableTrait; use TaxonomyTrait; use TestmodeTrait; use UserTrait; use WaitTrait; use WatchdogTrait; + use XmlTrait; } diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/features/behat.feature b/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/features/behat.feature index 210ded2d58..839a470284 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/features/behat.feature +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/features/behat.feature @@ -19,6 +19,58 @@ Feature: Behat configuration And I go to "/user/login" Then the path should be "/user/login" + @api @javascript @breakpoint:mobile_portrait + Scenario: Viewport is resized from a tag and from a step + Given I am an anonymous user + When I go to the homepage + And I set the viewport to the "tablet_landscape" breakpoint + And I set the viewport to "1920" by "1080" + And I go to "/user/login" + Then the path should be "/user/login" + + @api + Scenario: REST requests are sent and asserted + Given a REST header "Accept" with value "text/html" + When I send a REST "GET" request to "/user/login" + Then the REST response status code should be 200 + And the REST response should contain "user-login-form" + + @api + Scenario: XML responses are asserted + Given the response content from the file "response.xml" + Then the response should be in XML format + And the XML should use the namespace "https://example.com/meta" + And the XML element "//items" should have "2" elements + And the XML element "//item[@id='1']/title" should be equal to "First item" + And the XML element "//item[2]/title" should contain "Second" + And the XML attribute "id" on element "//item[2]" should be equal to "2" + And the XML element "//missing" should not exist + + @api + Scenario: JSON responses are asserted + Given the response JSON from the file "response.json" + Then the response should be in JSON format + And the JSON path "$.status" should be equal to "ok" + And the JSON path "$.items" should have "2" elements + And the JSON path "$.items[0].title" should be equal to "First item" + And the JSON path "$.items[*].id" should exist + And the JSON path "$.missing" should not exist + And the response should match the following JSON schema: + """ + { + "type": "object", + "required": ["status", "items"] + } + """ + + @api + Scenario: Caches are invalidated from within a scenario + Given the page cache for the path "/" has been cleared + And the render cache has been cleared + And I am an anonymous user + When I go to the homepage + Then the response status code should be 200 + @api Scenario: Drush integration works Given I run drush "status" diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/features/password_reset.feature b/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/features/password_reset.feature new file mode 100644 index 0000000000..9dfe128ee8 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/features/password_reset.feature @@ -0,0 +1,36 @@ +Feature: Password reset + + As a site visitor who has forgotten their password + I want to be sent a one-time login link + So that I can get back into my account without contacting an administrator + + @api @email + Scenario: Visitor requests a one-time login link + Given the following users: + | name | mail | + | test_password | test_password@example.com | + And I am an anonymous user + + When I go to "/user/password" + And I fill in "Username or email address" with "test_password@example.com" + And I press "Submit" + + # The subject and body below are the text Drupal ships for this message. + # Update them here when this site rewords the password reset email. + Then an email should be sent to the "test_password@example.com" + And the email field "subject" should contain: + """ + Replacement login information for + """ + And an email should be sent to the address "test_password@example.com" with the content containing: + """ + A request to reset the password for your account has been made at + """ + And an email should be sent to the address "test_password@example.com" with the content containing: + """ + You may now log in by clicking this link or copying and pasting it into your browser: + """ + And an email should be sent to the address "test_password@example.com" with the content containing: + """ + user/reset + """ diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/features/redirect.feature b/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/features/redirect.feature new file mode 100644 index 0000000000..b220441ef2 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/features/redirect.feature @@ -0,0 +1,36 @@ +@redirect @p1 +Feature: Redirects + + As a site owner + I want to ensure that redirects are created and followed + In order to keep old URLs working after content is moved + + @api + Scenario: Redirects are created with an explicit and a default status code + Given the following redirects exist: + | from | to | status_code | + | /old-login | /user/login | 301 | + | /legacy/sign-in | /user/login | | + Then the following redirects should exist: + | from | to | status_code | + | /old-login | /user/login | 301 | + | /legacy/sign-in | /user/login | 301 | + + @api + Scenario: A created redirect sends the visitor to the destination + Given the following redirects exist: + | from | to | status_code | + | /old-login | /user/login | 301 | + And I am an anonymous user + When I go to "/old-login" + Then the path should be "/user/login" + + @api + Scenario: A deleted redirect no longer exists + Given the following redirects exist: + | from | to | + | /temp-login | /user/login | + And the following redirects do not exist: + | /temp-login | + Then the following redirects should not exist: + | /temp-login | diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/features/xmlsitemap.feature b/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/features/xmlsitemap.feature index d599935ce8..c26b2745ad 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/features/xmlsitemap.feature +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/features/xmlsitemap.feature @@ -11,4 +11,7 @@ Feature: XML Sitemap And I am an anonymous user When I go to "/sitemap.xml" Then the response status code should be 200 - And the response should contain "urlset" + And the response should be in XML format + And the XML should use the namespace "http://www.sitemaps.org/schemas/sitemap/0.9" + And the XML element "//*[local-name()='urlset']" should exist + And the XML element "//*[local-name()='url']/*[local-name()='loc']" should exist diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/fixtures/response.json b/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/fixtures/response.json new file mode 100644 index 0000000000..adc1587780 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/fixtures/response.json @@ -0,0 +1,13 @@ +{ + "status": "ok", + "items": [ + { + "id": 1, + "title": "First item" + }, + { + "id": 2, + "title": "Second item" + } + ] +} diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/fixtures/response.xml b/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/fixtures/response.xml new file mode 100644 index 0000000000..5985d78a2c --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/behat/fixtures/response.xml @@ -0,0 +1,11 @@ + + + + + First item + + + Second item + + + diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/EnvironmentSettingsTest.php index 42b3e824f3..61f9532cdb 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/EnvironmentSettingsTest.php +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/EnvironmentSettingsTest.php @@ -353,6 +353,7 @@ public function testEnvironmentGha(): void { $config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE; $config['xmlsitemap_engines.settings']['submit'] = FALSE; $config['system.logging']['error_level'] = 'all'; + $config['system.mail']['interface']['default'] = 'test_mail_collector'; $config['system.performance']['cache']['page']['max_age'] = 900; $config['reroute_email.settings']['enable'] = FALSE; $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com'; @@ -383,7 +384,6 @@ public function testEnvironmentGha(): void { $settings['maintenance_theme'] = 'claro'; $settings['skip_permissions_hardening'] = TRUE; $settings['config_sync_directory'] = '../config/default'; - $settings['suspend_mail_send'] = TRUE; $settings['trusted_host_patterns'] = [ '^localhost$', '^127\.0\.0\.1$', diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/SettingsTestCase.php b/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/SettingsTestCase.php index 734fa8c7d7..5c400e8a60 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/SettingsTestCase.php +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/SettingsTestCase.php @@ -140,32 +140,22 @@ protected function tearDown(): void { */ protected function setEnvVars(array $vars): void { // Unset the existing environment variable if not set in the test. - if (!isset($vars['TMP'])) { - $vars['TMP'] = NULL; - } + $vars['TMP'] ??= NULL; // Unset the existing environment variable if not set in the test. - if (!isset($vars['DRUPAL_CONFIG_PATH'])) { - $vars['DRUPAL_CONFIG_PATH'] = NULL; - } + $vars['DRUPAL_CONFIG_PATH'] ??= NULL; // Do not enforce the CI environment unless it is explicitly set. - if (!isset($vars['CI'])) { - $vars['CI'] = FALSE; - } + $vars['CI'] ??= FALSE; // Do not let a real CI platform variable leak in and activate a detector // platform during the test run. NULL unsets it so the platform reports // inactive; an empty string would still count as present. - if (!isset($vars['CIRCLECI'])) { - $vars['CIRCLECI'] = NULL; - } + $vars['CIRCLECI'] ??= NULL; // Clear any leaked detected type unless a test pre-sets ENVIRONMENT_TYPE to // force one (the detector treats a pre-set value as an override). - if (!isset($vars['ENVIRONMENT_TYPE'])) { - $vars['ENVIRONMENT_TYPE'] = NULL; - } + $vars['ENVIRONMENT_TYPE'] ??= NULL; // Filtered real vars without a value to unset them in the lines below. $vars_real = self::getRealEnvVarsFilteredNoValues(static::ALLOWED_ENV_VARS); diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/SwitchableSettingsTest.php b/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/SwitchableSettingsTest.php index e1151cee40..a0419e7ca9 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/SwitchableSettingsTest.php +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/SwitchableSettingsTest.php @@ -958,6 +958,77 @@ public static function dataProviderStageFileProxy(): \Iterator { ]; } + /** + * Test mail collector config. + */ + #[DataProvider('dataProviderMailCollector')] + public function testMailCollector(string $env, array $expected_present, array $expected_absent = []): void { + $this->setEnvVars(['ENVIRONMENT_TYPE' => $env]); + + $this->requireSettingsFile(); + + $this->assertConfigContains($expected_present); + $this->assertConfigNotContains($expected_absent); + } + + /** + * Data provider for testMailCollector(). + */ + public static function dataProviderMailCollector(): \Iterator { + // CI: messages are collected instead of being handed to the transport. + yield [ + self::ENVIRONMENT_CI, + [ + 'system.mail' => ['interface' => ['default' => 'test_mail_collector']], + ], + ]; + + // Local: the mail catcher of the local stack receives the message. + yield [ + self::ENVIRONMENT_LOCAL, + [], + [ + 'system.mail' => ['interface' => ['default' => 'test_mail_collector']], + ], + ]; + + // Dev: rerouted, then delivered to the rerouting address. + yield [ + self::ENVIRONMENT_DEV, + [], + [ + 'system.mail' => ['interface' => ['default' => 'test_mail_collector']], + ], + ]; + + // SUT: a custom environment is rerouted, not collected. + yield [ + self::ENVIRONMENT_SUT, + [], + [ + 'system.mail' => ['interface' => ['default' => 'test_mail_collector']], + ], + ]; + + // Stage: delivered to the original recipients. + yield [ + self::ENVIRONMENT_STAGE, + [], + [ + 'system.mail' => ['interface' => ['default' => 'test_mail_collector']], + ], + ]; + + // Prod: delivered to the original recipients. + yield [ + self::ENVIRONMENT_PROD, + [], + [ + 'system.mail' => ['interface' => ['default' => 'test_mail_collector']], + ], + ]; + } + /** * Test trusted host patterns settings. */ diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php index a21b36e7e0..03c3132eb0 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php @@ -107,6 +107,16 @@ public function run(): void { $this->moduleInstaller->install(['sw_search']); $this->moduleInstaller->install(['sw_demo']); + + // The module creates its content while it installs, and only when + // GENERATED_CONTENT_CREATE is set, so it installs after the modules that + // supply the generated content plugins. + if (getenv('DRUPAL_GENERATED_CONTENT_SKIP') !== '1') { + putenv('GENERATED_CONTENT_CREATE=1'); + } + + $this->moduleInstaller->install(['generated_content']); + putenv('GENERATED_CONTENT_CREATE'); } } diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/modules/custom/sw_base/sw_base.module b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/modules/custom/sw_base/sw_base.module deleted file mode 100644 index 36cf4aae82..0000000000 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/modules/custom/sw_base/sw_base.module +++ /dev/null @@ -1,22 +0,0 @@ -getProperty($property); - return $property->getValue($class); + return $property->getValue($object); } } diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/modules/custom/sw_demo/js/tests/sw_demo.test.js b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/modules/custom/sw_demo/js/tests/sw_demo.test.js index 6998b8d571..70aa5fc9e1 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/modules/custom/sw_demo/js/tests/sw_demo.test.js +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/modules/custom/sw_demo/js/tests/sw_demo.test.js @@ -10,7 +10,6 @@ describe('Drupal.behaviors.ysDemo', () => { jest.spyOn(console, 'log').mockImplementation(() => {}); jest.resetModules(); - // eslint-disable-next-line global-require require('../sw_demo.js'); }); @@ -152,9 +151,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.initCounterBlock(document); - const incrementBtn = document.querySelector( - '[data-counter-action="increment"]', - ); + const incrementBtn = document.querySelector('[data-counter-action="increment"]'); incrementBtn.click(); const value = document.querySelector('[data-counter-value]'); @@ -165,9 +162,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.initCounterBlock(document); - const decrementBtn = document.querySelector( - '[data-counter-action="decrement"]', - ); + const decrementBtn = document.querySelector('[data-counter-action="decrement"]'); decrementBtn.click(); const value = document.querySelector('[data-counter-value]'); @@ -178,9 +173,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.initCounterBlock(document); - const incrementBtn = document.querySelector( - '[data-counter-action="increment"]', - ); + const incrementBtn = document.querySelector('[data-counter-action="increment"]'); incrementBtn.click(); incrementBtn.click(); incrementBtn.click(); @@ -196,9 +189,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.initCounterBlock(document); - const incrementBtn = document.querySelector( - '[data-counter-action="increment"]', - ); + const incrementBtn = document.querySelector('[data-counter-action="increment"]'); incrementBtn.click(); incrementBtn.click(); @@ -210,9 +201,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.initCounterBlock(document); - const incrementBtn = document.querySelector( - '[data-counter-action="increment"]', - ); + const incrementBtn = document.querySelector('[data-counter-action="increment"]'); incrementBtn.click(); const value = document.querySelector('[data-counter-value]'); @@ -237,12 +226,8 @@ describe('Drupal.behaviors.ysDemo', () => { Drupal.behaviors.ysDemo.initCounterBlock(document); const blocks = document.querySelectorAll('[data-sw-demo-counter]'); - expect(blocks[0].classList.contains('sw-demo-counter-processed')).toBe( - true, - ); - expect(blocks[1].classList.contains('sw-demo-counter-processed')).toBe( - true, - ); + expect(blocks[0].classList.contains('sw-demo-counter-processed')).toBe(true); + expect(blocks[1].classList.contains('sw-demo-counter-processed')).toBe(true); }); }); @@ -261,9 +246,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.attach(document); - const incrementBtn = document.querySelector( - '[data-counter-action="increment"]', - ); + const incrementBtn = document.querySelector('[data-counter-action="increment"]'); incrementBtn.click(); const value = document.querySelector('[data-counter-value]'); diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/modules/custom/sw_demo/src/Plugin/GeneratedContent/Node/Page.php b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/modules/custom/sw_demo/src/Plugin/GeneratedContent/Node/Page.php index 38453e6f9a..40835f853c 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/modules/custom/sw_demo/src/Plugin/GeneratedContent/Node/Page.php +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/modules/custom/sw_demo/src/Plugin/GeneratedContent/Node/Page.php @@ -37,10 +37,14 @@ public function generate(): array { 'status' => 1, ]); - $node->set('body', [ - 'value' => $this->helper::staticRichText(3), - 'format' => 'full_html', - ]); + // The content model differs between install profiles, so a field the + // demo populates is only set when the bundle actually carries it. + if ($node->hasField('body')) { + $node->set('body', [ + 'value' => $this->helper::staticRichText(3), + 'format' => 'full_html', + ]); + } // When Content Moderation is attached to the bundle, 'status' alone // leaves the node as an unpublished draft, so the state must be set diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/modules/custom/sw_demo/sw_demo.info.yml b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/modules/custom/sw_demo/sw_demo.info.yml index 45cfab2804..c2f3e3a559 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/modules/custom/sw_demo/sw_demo.info.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/modules/custom/sw_demo/sw_demo.info.yml @@ -8,5 +8,4 @@ dependencies: - drupal:node - drupal:views - drupal_helpers:drupal_helpers - - generated_content:generated_content - testmode:testmode diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/sites/default/includes/modules/settings.reroute_email.php b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/sites/default/includes/modules/settings.reroute_email.php index 9b33203c65..d9701f1ddf 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/sites/default/includes/modules/settings.reroute_email.php +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/sites/default/includes/modules/settings.reroute_email.php @@ -21,13 +21,17 @@ Environment::STAGE, Environment::PRODUCTION, ])) { + // Send every outgoing message to the address above instead of to its + // intended recipient, unless that recipient matches the allowed list. $config['reroute_email.settings']['enable'] = TRUE; } else { + // Deliver every message to its intended recipient. $config['reroute_email.settings']['enable'] = FALSE; } -// Allow to disable reroute email completely in the environment. +// Allow an environment to opt out of the rerouting set above. if (!empty(getenv('DRUPAL_REROUTE_EMAIL_DISABLED'))) { + // Deliver every message to its intended recipient. $config['reroute_email.settings']['enable'] = FALSE; } diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/sites/default/includes/modules/settings.sw_base.php b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/sites/default/includes/modules/settings.sw_base.php deleted file mode 100644 index 884ec2f5ca..0000000000 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/sites/default/includes/modules/settings.sw_base.php +++ /dev/null @@ -1,15 +0,0 @@ - @@ -48,7 +48,7 @@ //////////////////////////////////////////////////////////////////////////////// /// GENERAL /// //////////////////////////////////////////////////////////////////////////////// -// @see https://www.vortextemplate.com/docs/drupal/settings#general +// @see https://www.vortextemplate.com/docs/development/settings#general $app_root ??= DRUPAL_ROOT; $site_path ??= 'sites/default'; @@ -100,7 +100,7 @@ //////////////////////////////////////////////////////////////////////////////// /// ENVIRONMENT TYPE DETECTION /// //////////////////////////////////////////////////////////////////////////////// -// @see https://www.vortextemplate.com/docs/drupal/settings#environment-type-detection +// @see https://www.vortextemplate.com/docs/development/settings#environment-type-detection // Detect the environment type from the hosting platform and apply the // platform-related settings. @@ -109,7 +109,7 @@ //////////////////////////////////////////////////////////////////////////////// /// PER-MODULE OVERRIDES /// //////////////////////////////////////////////////////////////////////////////// -// @see https://www.vortextemplate.com/docs/drupal/settings#per-module-overrides +// @see https://www.vortextemplate.com/docs/development/settings#per-module-overrides if (file_exists($app_root . '/' . $site_path . '/includes/modules')) { $files = glob($app_root . '/' . $site_path . '/includes/modules/settings.*.php'); @@ -123,7 +123,7 @@ //////////////////////////////////////////////////////////////////////////////// /// LOCAL OVERRIDE /// //////////////////////////////////////////////////////////////////////////////// -// @see https://www.vortextemplate.com/docs/drupal/settings#local-overrides +// @see https://www.vortextemplate.com/docs/development/settings#local-overrides // Load local override configuration, if available. // diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/.eslintrc.json deleted file mode 100644 index ef68a6a933..0000000000 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/.eslintrc.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "extends": [ - "airbnb-base", - "plugin:prettier/recommended", - "plugin:yml/recommended" - ], - "root": true, - "env": { - "browser": true, - "es6": true, - "node": true - }, - "parserOptions": { - "ecmaVersion": 2020 - }, - "plugins": [ - "jsdoc" - ], - "globals": { - "Drupal": true, - "drupalSettings": true, - "drupalTranslations": true, - "jQuery": true, - "_": true, - "Cookies": true, - "Backbone": true, - "htmx": true, - "loadjs": true, - "Shepherd": true, - "Sortable": true, - "once": true, - "CKEditor5": true, - "tabbable": true, - "transliterate": true, - "bodyScrollLock" : true, - "FloatingUIDOM": true - }, - "rules": { - "prettier/prettier": "error", - "consistent-return": ["off"], - "no-underscore-dangle": ["off"], - "max-nested-callbacks": ["warn", 3], - "import/no-mutable-exports": ["warn"], - "no-plusplus": ["warn", { - "allowForLoopAfterthoughts": true - }], - "no-param-reassign": ["off"], - "no-prototype-builtins": ["off"], - "jsdoc/require-returns": ["off"], - "jsdoc/require-returns-type": ["warn"], - "jsdoc/require-returns-description": ["warn"], - "jsdoc/require-returns-check": ["warn"], - "jsdoc/require-param": ["warn"], - "jsdoc/require-param-type": ["warn"], - "jsdoc/require-param-description": ["warn"], - "jsdoc/check-param-names": ["warn"], - "jsdoc/valid-types": ["warn"], - "jsdoc/require-param-name": ["warn"], - "jsdoc/check-tag-names": ["warn"], - "no-unused-vars": ["warn"], - "operator-linebreak": ["error", "after", { "overrides": { "?": "ignore", ":": "ignore" } }], - "yml/indent": ["error", 2] - }, - "settings": { - "jsdoc": { - "tagNamePreference": { - "returns": "return", - "property": "prop" - } - } - } -} diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/.prettierrc.json b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/.prettierrc.json index b5ed527867..8ef17490e8 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/.prettierrc.json +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/.prettierrc.json @@ -1,10 +1,12 @@ { - "printWidth": 80, + "printWidth": 160, "semi": true, "singleQuote": true, "trailingComma": "all", "plugins": ["@homer0/prettier-plugin-jsdoc"], + "jsdocPrintWidth": 80, "jsdocReplaceTagsSynonyms": false, + "jsdocUseTypeScriptTypesCasing": false, "overrides": [ { "files": ["*.css"], diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/README.md b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/README.md index bfc90db553..63e5700e12 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/README.md +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/README.md @@ -5,20 +5,20 @@ Custom Drupal theme for the project. ## Requirements - Node.js (LTS version recommended) -- Yarn +- npm ## Installation ```bash -yarn install +npm ci ``` ## Commands -| Command | Description | -|----------------------|------------------------------------------------| -| `yarn run build` | Production build (minified, no source maps) | -| `yarn run build-dev` | Development build (expanded, with source maps) | -| `yarn run watch` | Watch for changes and rebuild automatically | -| `yarn run lint` | Check code style (JS and SCSS) | -| `yarn run lint-fix` | Fix code style issues automatically | +| Command | Description | +|---------------------|------------------------------------------------| +| `npm run build` | Production build (minified, no source maps) | +| `npm run build-dev` | Development build (expanded, with source maps) | +| `npm run watch` | Watch for changes and rebuild automatically | +| `npm run lint` | Check code style (JS and SCSS) | +| `npm run lint-fix` | Fix code style issues automatically | diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/eslint.config.mjs b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/eslint.config.mjs new file mode 100644 index 0000000000..5e6af862fb --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/eslint.config.mjs @@ -0,0 +1,100 @@ +// Mirrors the Drupal core configuration from +// https://www.drupal.org/project/drupal/issues/3440225, adapted to lint the +// theme's own sources. The theme carries its own front-end tooling because it +// can be moved into a separate repository. +import { defineConfig } from 'eslint/config'; +import { fixupPluginRules } from '@eslint/compat'; +import importPlugin from 'eslint-plugin-import'; +import noJQuery from 'eslint-plugin-no-jquery'; +import prettierConfig from 'eslint-plugin-prettier/recommended'; +import ymlConfig from 'eslint-plugin-yml'; +import jsdoc from 'eslint-plugin-jsdoc'; +import js from '@eslint/js'; +import globals from 'globals'; + +export default defineConfig( + { + ignores: ['node_modules/**/*', 'build/**/*', '**/*.min.js'], + }, + js.configs.recommended, + importPlugin.flatConfigs.recommended, + jsdoc.configs['flat/recommended'], + prettierConfig, + ymlConfig.configs['flat/recommended'], + { + plugins: { + 'no-jquery': fixupPluginRules(noJQuery), + }, + languageOptions: { + ecmaVersion: 2020, + globals: { + ...globals.browser, + ...globals.node, + + Drupal: 'readonly', + drupalSettings: 'readonly', + drupalTranslations: 'readonly', + jQuery: 'readonly', + _: 'readonly', + Cookies: 'readonly', + Backbone: 'readonly', + htmx: 'readonly', + loadjs: 'readonly', + Shepherd: 'readonly', + Sortable: 'readonly', + once: 'readonly', + CKEditor5: 'readonly', + CKEDITOR: 'readonly', + tabbable: 'readonly', + transliterate: 'readonly', + bodyScrollLock: 'readonly', + FloatingUIDOM: 'readonly', + }, + }, + rules: { + 'prettier/prettier': 'error', + 'no-unexpected-multiline': ['off'], + 'consistent-return': ['off'], + 'no-underscore-dangle': ['off'], + 'max-nested-callbacks': ['warn', 3], + 'import/no-mutable-exports': ['warn'], + 'no-plusplus': [ + 'warn', + { + allowForLoopAfterthoughts: true, + }, + ], + 'no-param-reassign': ['off'], + 'no-prototype-builtins': ['off'], + 'no-unused-vars': ['warn'], + // Kept from the previous ruleset: console calls left in shipped code + // print to every visitor's browser. + 'no-console': 'error', + 'operator-linebreak': [ + 'error', + 'after', + { + overrides: { + '?': 'ignore', + ':': 'ignore', + }, + }, + ], + 'yml/indent': ['error', 2], + // The Drupal docblock style separates the description from the first tag + // with a blank line, which the preset forbids by default. + 'jsdoc/tag-lines': ['warn', 'any', { startLines: 1 }], + // Drupal front-end code documents contracts, not every function. + 'jsdoc/require-jsdoc': ['off'], + ...noJQuery.configs.all.rules, + }, + settings: { + jsdoc: { + tagNamePreference: { + returns: 'return', + property: 'prop', + }, + }, + }, + }, +); diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/js/star_wars.js b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/js/star_wars.js index d81db5a8e2..ff56f0e716 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/js/star_wars.js +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/js/star_wars.js @@ -1,27 +1,25 @@ /** * @file Global theme behaviors. - * @param $ - * @param Drupal - * @global Drupal, JQuery. */ /** - * Global theme behaviors. + * Wraps the behaviors so that anything declared here stays out of the global + * scope. * - * @param {jQuery} $ The jQuery object. - * @param {Drupal} Drupal The Drupal object. + * @param {object} Drupal The Drupal object. */ -(function StarWarsBehaviors($, Drupal) { - Drupal.behaviors.star_wars = { +(function yourSiteThemeBehaviors(Drupal) { + Drupal.behaviors.yourSiteTheme = { attach(context) { - // give me example code here that would be using context with body - $(context) - .find('body') - .once('star-wars-theme') - .each(function iterateBody() { - // Example: Add a class to the body element. - $(this).addClass('star-wars-theme-processed'); - }); + // The context is the document on load and an element on AJAX, and that + // element may be the body itself, so resolve through the owning document. + const body = context.ownerDocument ? context.ownerDocument.body : document.body; + + if (body.classList.contains('star-wars-theme-processed')) { + return; + } + + body.classList.add('star-wars-theme-processed'); }, }; -})(jQuery, Drupal); +})(Drupal); diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/package-lock.json new file mode 100644 index 0000000000..c6c150b2fe --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/package-lock.json @@ -0,0 +1,6231 @@ +{ + "name": "star_wars", + "version": "__VERSION__", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "star_wars", + "version": "__VERSION__", + "hasInstallScript": true, + "devDependencies": { + "@eslint/compat": "__VERSION__", + "@eslint/js": "__VERSION__", + "@homer0/prettier-plugin-jsdoc": "__VERSION__", + "autoprefixer": "__VERSION__", + "chokidar-cli": "__VERSION__", + "eslint": "__VERSION__", + "eslint-config-prettier": "__VERSION__", + "eslint-plugin-import": "__VERSION__", + "eslint-plugin-jsdoc": "__VERSION__", + "eslint-plugin-no-jquery": "__VERSION__", + "eslint-plugin-prettier": "__VERSION__", + "eslint-plugin-yml": "__VERSION__", + "globals": "__VERSION__", + "patch-package": "__VERSION__", + "postcss": "__VERSION__", + "postcss-cli": "__VERSION__", + "prettier": "__VERSION__", + "sass": "__VERSION__", + "stylelint": "__VERSION__", + "stylelint-config-standard": "__VERSION__", + "stylelint-config-standard-scss": "__VERSION__", + "stylelint-order": "__VERSION__", + "stylelint-scss": "__VERSION__", + "terser": "__VERSION__" + } + }, + "node_modules/@babel/code-frame": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "__VERSION__", + "js-tokens": "__VERSION__", + "picocolors": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@cacheable/memory": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/utils": "__VERSION__", + "@keyv/bigmap": "__VERSION__", + "hookified": "__VERSION__", + "keyv": "__VERSION__" + } + }, + "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "__VERSION__", + "hookified": "__VERSION__" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "keyv": "__VERSION__" + } + }, + "node_modules/@cacheable/memory/node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "__VERSION__" + } + }, + "node_modules/@cacheable/utils": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "__VERSION__", + "keyv": "__VERSION__" + } + }, + "node_modules/@cacheable/utils/node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "__VERSION__" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "__VERSION__" + } + }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "peerDependencies": { + "css-tree": "__VERSION__" + }, + "peerDependenciesMeta": { + "css-tree": { + "optional": true + } + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "__VERSION__", + "@csstools/css-tokenizer": "__VERSION__" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss-selector-parser": "__VERSION__" + } + }, + "node_modules/@dual-bundle/import-meta-resolve": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/JounQin" + } + }, + "node_modules/@es-joy/jsdoccomment": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "__VERSION__", + "@typescript-eslint/types": "__VERSION__", + "comment-parser": "__VERSION__", + "esquery": "__VERSION__", + "jsdoc-type-pratt-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + } + }, + "node_modules/@es-joy/resolve.exports": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/compat": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + }, + "peerDependencies": { + "eslint": "^8.40 || 9 || 10" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/@eslint/compat/node_modules/@eslint/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + } + }, + "node_modules/@eslint/config-array": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "__VERSION__", + "debug": "__VERSION__", + "minimatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "__VERSION__", + "debug": "__VERSION__", + "espree": "__VERSION__", + "globals": "__VERSION__", + "ignore": "__VERSION__", + "import-fresh": "__VERSION__", + "js-yaml": "__VERSION__", + "minimatch": "__VERSION__", + "strip-json-comments": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "__VERSION__", + "levn": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@homer0/prettier-plugin-jsdoc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@homer0/prettier-plugin-jsdoc/-/prettier-plugin-jsdoc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "comment-parser": "__VERSION__", + "ramda": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "prettier": "__VERSION__" + } + }, + "node_modules/@humanfs/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/types": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@humanfs/node": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "__VERSION__", + "@humanfs/types": "__VERSION__", + "@humanwhocodes/retry": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@humanfs/types": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "__VERSION__", + "@jridgewell/trace-mapping": "__VERSION__" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "__VERSION__", + "@jridgewell/trace-mapping": "__VERSION__" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "__VERSION__", + "@jridgewell/sourcemap-codec": "__VERSION__" + } + }, + "node_modules/@keyv/serialize": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "__VERSION__", + "run-parallel": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "__VERSION__", + "fastq": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@parcel/watcher": { + "version": "__VERSION__", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "__VERSION__", + "is-glob": "__VERSION__", + "node-addon-api": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "__VERSION__", + "@parcel/watcher-darwin-arm64": "__VERSION__", + "@parcel/watcher-darwin-x64": "__VERSION__", + "@parcel/watcher-freebsd-x64": "__VERSION__", + "@parcel/watcher-linux-arm-glibc": "__VERSION__", + "@parcel/watcher-linux-arm-musl": "__VERSION__", + "@parcel/watcher-linux-arm64-glibc": "__VERSION__", + "@parcel/watcher-linux-arm64-musl": "__VERSION__", + "@parcel/watcher-linux-x64-glibc": "__VERSION__", + "@parcel/watcher-linux-x64-musl": "__VERSION__", + "@parcel/watcher-win32-arm64": "__VERSION__", + "@parcel/watcher-win32-ia32": "__VERSION__", + "@parcel/watcher-win32-x64": "__VERSION__" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "__VERSION__", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher/node_modules/picomatch": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@pkgr/core": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@rtsao/scc": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@sindresorhus/base62": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@types/estree": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/types": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@yarnpkg/lockfile": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/acorn": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/acorn-jsx": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "__VERSION__ || __VERSION__ || __VERSION__" + } + }, + "node_modules/ajv": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "__VERSION__", + "fast-json-stable-stringify": "__VERSION__", + "json-schema-traverse": "__VERSION__", + "uri-js": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/ansi-styles": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/are-docs-informative": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/argparse": { + "version": "__VERSION__", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "is-array-buffer": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-object-atoms": "__VERSION__", + "get-intrinsic": "__VERSION__", + "is-string": "__VERSION__", + "math-intrinsics": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "es-shim-unscopables": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-shim-unscopables": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-shim-unscopables": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "__VERSION__", + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "is-array-buffer": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/astral-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/async-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/autoprefixer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__", + "caniuse-lite": "__VERSION__", + "fraction.js": "__VERSION__", + "picocolors": "__VERSION__", + "postcss-value-parser": "__VERSION__" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/available-typed-arrays": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/binary-extensions": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "__VERSION__", + "concat-map": "__VERSION__" + } + }, + "node_modules/brace-expansion/node_modules/balanced-match": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/braces": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/browserslist": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": { + "baseline-browser-mapping": "__VERSION__", + "caniuse-lite": "__VERSION__", + "electron-to-chromium": "__VERSION__", + "node-releases": "__VERSION__", + "update-browserslist-db": "__VERSION__" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/memory": "__VERSION__", + "@cacheable/utils": "__VERSION__", + "hookified": "__VERSION__", + "keyv": "__VERSION__", + "qified": "__VERSION__" + } + }, + "node_modules/cacheable/node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "__VERSION__" + } + }, + "node_modules/call-bind": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "es-define-property": "__VERSION__", + "get-intrinsic": "__VERSION__", + "set-function-length": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "function-bind": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/camelcase": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/caniuse-lite": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "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": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "supports-color": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "__VERSION__", + "braces": "__VERSION__", + "glob-parent": "__VERSION__", + "is-binary-path": "__VERSION__", + "is-glob": "__VERSION__", + "normalize-path": "__VERSION__", + "readdirp": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "__VERSION__" + } + }, + "node_modules/chokidar-cli": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "__VERSION__", + "lodash.debounce": "__VERSION__", + "lodash.throttle": "__VERSION__", + "yargs": "__VERSION__" + }, + "bin": { + "chokidar": "index.js" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/ci-info": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cliui": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__", + "wrap-ansi": "__VERSION__" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/color-convert": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/color-name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/colord": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/comment-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/concat-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "__VERSION__", + "import-fresh": "__VERSION__", + "js-yaml": "__VERSION__", + "parse-json": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": "__VERSION__" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cross-spawn": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "__VERSION__", + "shebang-command": "__VERSION__", + "which": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/which/-/which-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "__VERSION__" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-functions-list": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/css-tree": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "__VERSION__", + "source-map-js": "__VERSION__" + }, + "engines": { + "node": "^10 || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/css-tree/node_modules/mdn-data": { + "version": "__VERSION__", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/cssesc": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/data-view-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-data-view": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-data-view": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-data-view": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/deep-is": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "gopd": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "object-keys": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dependency-graph": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/detect-libc": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/diff-sequences": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/dir-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/doctrine": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/dunder-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "es-errors": "__VERSION__", + "gopd": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/env-paths": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/error-ex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "__VERSION__" + } + }, + "node_modules/es-abstract": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "__VERSION__", + "arraybuffer.prototype.slice": "__VERSION__", + "available-typed-arrays": "__VERSION__", + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "data-view-buffer": "__VERSION__", + "data-view-byte-length": "__VERSION__", + "data-view-byte-offset": "__VERSION__", + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "es-set-tostringtag": "__VERSION__", + "es-to-primitive": "__VERSION__", + "function.prototype.name": "__VERSION__", + "get-intrinsic": "__VERSION__", + "get-proto": "__VERSION__", + "get-symbol-description": "__VERSION__", + "globalthis": "__VERSION__", + "gopd": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "has-proto": "__VERSION__", + "has-symbols": "__VERSION__", + "hasown": "__VERSION__", + "internal-slot": "__VERSION__", + "is-array-buffer": "__VERSION__", + "is-callable": "__VERSION__", + "is-data-view": "__VERSION__", + "is-negative-zero": "__VERSION__", + "is-regex": "__VERSION__", + "is-set": "__VERSION__", + "is-shared-array-buffer": "__VERSION__", + "is-string": "__VERSION__", + "is-typed-array": "__VERSION__", + "is-weakref": "__VERSION__", + "math-intrinsics": "__VERSION__", + "object-inspect": "__VERSION__", + "object-keys": "__VERSION__", + "object.assign": "__VERSION__", + "own-keys": "__VERSION__", + "regexp.prototype.flags": "__VERSION__", + "safe-array-concat": "__VERSION__", + "safe-push-apply": "__VERSION__", + "safe-regex-test": "__VERSION__", + "set-proto": "__VERSION__", + "stop-iteration-iterator": "__VERSION__", + "string.prototype.trim": "__VERSION__", + "string.prototype.trimend": "__VERSION__", + "string.prototype.trimstart": "__VERSION__", + "typed-array-buffer": "__VERSION__", + "typed-array-byte-length": "__VERSION__", + "typed-array-byte-offset": "__VERSION__", + "typed-array-length": "__VERSION__", + "unbox-primitive": "__VERSION__", + "which-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-abstract-get": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "is-callable": "__VERSION__", + "object-inspect": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "has-tostringtag": "__VERSION__", + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-abstract-get": "__VERSION__", + "es-errors": "__VERSION__", + "is-callable": "__VERSION__", + "is-date-object": "__VERSION__", + "is-symbol": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/escape-string-regexp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "__VERSION__", + "@eslint-community/regexpp": "__VERSION__", + "@eslint/config-array": "__VERSION__", + "@eslint/config-helpers": "__VERSION__", + "@eslint/core": "__VERSION__", + "@eslint/eslintrc": "__VERSION__", + "@eslint/js": "__VERSION__", + "@eslint/plugin-kit": "__VERSION__", + "@humanfs/node": "__VERSION__", + "@humanwhocodes/module-importer": "__VERSION__", + "@humanwhocodes/retry": "__VERSION__", + "@types/estree": "__VERSION__", + "ajv": "__VERSION__", + "chalk": "__VERSION__", + "cross-spawn": "__VERSION__", + "debug": "__VERSION__", + "escape-string-regexp": "__VERSION__", + "eslint-scope": "__VERSION__", + "eslint-visitor-keys": "__VERSION__", + "espree": "__VERSION__", + "esquery": "__VERSION__", + "esutils": "__VERSION__", + "fast-deep-equal": "__VERSION__", + "file-entry-cache": "__VERSION__", + "find-up": "__VERSION__", + "glob-parent": "__VERSION__", + "ignore": "__VERSION__", + "imurmurhash": "__VERSION__", + "is-glob": "__VERSION__", + "json-stable-stringify-without-jsonify": "__VERSION__", + "lodash.merge": "__VERSION__", + "minimatch": "__VERSION__", + "natural-compare": "__VERSION__", + "optionator": "__VERSION__" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-compat-utils": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "eslint": "__VERSION__" + } + }, + "node_modules/eslint-compat-utils/node_modules/semver": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/eslint-config-prettier": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": "__VERSION__" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "__VERSION__", + "is-core-module": "__VERSION__", + "resolve": "__VERSION__" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + } + }, + "node_modules/eslint-module-utils": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + } + }, + "node_modules/eslint-plugin-import": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "__VERSION__", + "array-includes": "__VERSION__", + "array.prototype.findlastindex": "__VERSION__", + "array.prototype.flat": "__VERSION__", + "array.prototype.flatmap": "__VERSION__", + "debug": "__VERSION__", + "doctrine": "__VERSION__", + "eslint-import-resolver-node": "__VERSION__", + "eslint-module-utils": "__VERSION__", + "hasown": "__VERSION__", + "is-core-module": "__VERSION__", + "is-glob": "__VERSION__", + "minimatch": "__VERSION__", + "object.fromentries": "__VERSION__", + "object.groupby": "__VERSION__", + "object.values": "__VERSION__", + "semver": "__VERSION__", + "string.prototype.trimend": "__VERSION__", + "tsconfig-paths": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || __VERSION__ || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + } + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@es-joy/jsdoccomment": "__VERSION__", + "@es-joy/resolve.exports": "__VERSION__", + "are-docs-informative": "__VERSION__", + "comment-parser": "__VERSION__", + "debug": "__VERSION__", + "escape-string-regexp": "__VERSION__", + "espree": "__VERSION__", + "esquery": "__VERSION__", + "html-entities": "__VERSION__", + "object-deep-merge": "__VERSION__", + "parse-imports-exports": "__VERSION__", + "semver": "__VERSION__", + "spdx-expression-parse": "__VERSION__", + "to-valid-identifier": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=24" + }, + "peerDependencies": { + "eslint": "__VERSION__ || __VERSION__ || __VERSION__ || __VERSION__" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/espree": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "__VERSION__", + "acorn-jsx": "__VERSION__", + "eslint-visitor-keys": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/semver": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/eslint-plugin-no-jquery": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": "__VERSION__", + "oxlint": "__VERSION__" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "oxlint": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "__VERSION__", + "synckit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": "__VERSION__", + "eslint": "__VERSION__", + "eslint-config-prettier": ">= __VERSION__ <__VERSION__ || >=__VERSION__", + "prettier": "__VERSION__" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-yml": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "__VERSION__", + "diff-sequences": "__VERSION__", + "escape-string-regexp": "__VERSION__", + "eslint-compat-utils": "__VERSION__", + "natural-compare": "__VERSION__", + "yaml-eslint-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": "__VERSION__" + } + }, + "node_modules/eslint-scope": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "__VERSION__", + "estraverse": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/espree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/espree/-/espree-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "__VERSION__", + "acorn-jsx": "__VERSION__", + "eslint-visitor-keys": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/esrecurse": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/estraverse": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/esutils": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fast-deep-equal": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "__VERSION__", + "@nodelib/fs.walk": "__VERSION__", + "glob-parent": "__VERSION__", + "merge2": "__VERSION__", + "micromatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastest-levenshtein": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/fastq": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "__VERSION__" + } + }, + "node_modules/file-entry-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fill-range": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/find-up": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "__VERSION__", + "path-exists": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-yarn-workspace-root": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "micromatch": "__VERSION__" + } + }, + "node_modules/flat-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "__VERSION__", + "keyv": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/flatted": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fraction.js": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs-extra": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "__VERSION__", + "jsonfile": "__VERSION__", + "universalify": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fsevents": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/function-bind": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "functions-have-names": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "hasown": "__VERSION__", + "is-callable": "__VERSION__", + "is-document.all": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-caller-file": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "function-bind": "__VERSION__", + "get-proto": "__VERSION__", + "gopd": "__VERSION__", + "has-symbols": "__VERSION__", + "hasown": "__VERSION__", + "math-intrinsics": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "__VERSION__" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-modules": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/global-prefix": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "__VERSION__", + "kind-of": "__VERSION__", + "which": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/globals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "__VERSION__", + "gopd": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globby/-/globby-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "__VERSION__", + "dir-glob": "__VERSION__", + "fast-glob": "__VERSION__", + "ignore": "__VERSION__", + "merge2": "__VERSION__", + "slash": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/slash/-/slash-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/globjoin": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/gopd": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/has-bigints": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/has-property-descriptors": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hashery": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/hasown": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hookified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/html-entities": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/html-tags": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ignore": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "__VERSION__", + "resolve-from": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/imurmurhash": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/ini": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "hasown": "__VERSION__", + "side-channel": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "__VERSION__", + "call-bound": "__VERSION__", + "get-proto": "__VERSION__", + "has-tostringtag": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-boolean-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__", + "is-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-document.all": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-finalizationregistry": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-generator-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "generator-function": "__VERSION__", + "get-proto": "__VERSION__", + "has-tostringtag": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-number-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "gopd": "__VERSION__", + "has-tostringtag": "__VERSION__", + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-symbols": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/isarray": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/js-tokens": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "__VERSION__" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/json-buffer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "isarray": "__VERSION__", + "jsonify": "__VERSION__", + "object-keys": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "__VERSION__" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "__VERSION__" + }, + "optionalDependencies": { + "graceful-fs": "__VERSION__" + } + }, + "node_modules/jsonify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Public Domain", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "__VERSION__" + } + }, + "node_modules/kind-of": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/klaw-sync": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "__VERSION__" + } + }, + "node_modules/known-css-properties": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/levn": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "__VERSION__", + "type-check": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/lilconfig": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.debounce": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.throttle": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mathml-tag-names": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdn-data": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/meow": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/meow/-/meow-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/minimatch": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "__VERSION__" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=__VERSION__" + } + }, + "node_modules/natural-compare": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/node-addon-api": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-exports-info": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.flatmap": "__VERSION__", + "es-errors": "__VERSION__", + "object.entries": "__VERSION__", + "semver": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/node-releases": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/normalize-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/object-deep-merge": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/object-inspect": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__", + "has-symbols": "__VERSION__", + "object-keys": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/open": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "__VERSION__", + "is-wsl": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "__VERSION__", + "fast-levenshtein": "__VERSION__", + "levn": "__VERSION__", + "prelude-ls": "__VERSION__", + "type-check": "__VERSION__", + "word-wrap": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/own-keys": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "__VERSION__", + "object-keys": "__VERSION__", + "safe-push-apply": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/parent-module": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/parse-imports-exports": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-statements": "__VERSION__" + } + }, + "node_modules/parse-json": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "__VERSION__", + "error-ex": "__VERSION__", + "json-parse-even-better-errors": "__VERSION__", + "lines-and-columns": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-statements": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/patch-package": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@yarnpkg/lockfile": "__VERSION__", + "chalk": "__VERSION__", + "ci-info": "__VERSION__", + "cross-spawn": "__VERSION__", + "find-yarn-workspace-root": "__VERSION__", + "fs-extra": "__VERSION__", + "json-stable-stringify": "__VERSION__", + "klaw-sync": "__VERSION__", + "minimist": "__VERSION__", + "open": "__VERSION__", + "semver": "__VERSION__", + "slash": "__VERSION__", + "tmp": "__VERSION__", + "yaml": "__VERSION__" + }, + "bin": { + "patch-package": "index.js" + }, + "engines": { + "node": "__VERSION__", + "npm": ">5" + } + }, + "node_modules/patch-package/node_modules/fs-extra": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "__VERSION__", + "jsonfile": "__VERSION__", + "universalify": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/patch-package/node_modules/semver": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/path-exists": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/path-key": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/path-parse": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/picocolors": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/possible-typed-array-names": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__", + "picocolors": "__VERSION__", + "source-map-js": "__VERSION__" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-cli": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "__VERSION__", + "dependency-graph": "__VERSION__", + "fs-extra": "__VERSION__", + "picocolors": "__VERSION__", + "postcss-load-config": "__VERSION__", + "postcss-reporter": "__VERSION__", + "pretty-hrtime": "__VERSION__", + "read-cache": "__VERSION__", + "slash": "__VERSION__", + "tinyglobby": "__VERSION__", + "yargs": "__VERSION__" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-cli/node_modules/cliui": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__", + "wrap-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-cli/node_modules/slash": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss-cli/node_modules/wrap-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/postcss-cli/node_modules/y18n": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-cli/node_modules/yargs": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "__VERSION__", + "escalade": "__VERSION__", + "get-caller-file": "__VERSION__", + "require-directory": "__VERSION__", + "string-width": "__VERSION__", + "y18n": "__VERSION__", + "yargs-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-cli/node_modules/yargs-parser": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-load-config": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "__VERSION__", + "yaml": "__VERSION__" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": "__VERSION__", + "postcss": "__VERSION__", + "tsx": "__VERSION__" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + } + } + }, + "node_modules/postcss-media-query-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-reporter": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "picocolors": "__VERSION__", + "thenby": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-safe-parser": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-scss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-selector-parser": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "__VERSION__", + "util-deprecate": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-sorting": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-value-parser": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/prettier": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/pretty-hrtime": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/punycode": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/qified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/qified/-/qified-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/qified/node_modules/hookified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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/ramda": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ramda" + } + }, + "node_modules/read-cache": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "__VERSION__" + } + }, + "node_modules/readdirp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "get-intrinsic": "__VERSION__", + "get-proto": "__VERSION__", + "which-builtin-type": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-errors": "__VERSION__", + "get-proto": "__VERSION__", + "gopd": "__VERSION__", + "set-function-name": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/require-from-string": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/require-main-filename": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/reserved-identifiers": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/resolve": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "is-core-module": "__VERSION__", + "node-exports-info": "__VERSION__", + "object-keys": "__VERSION__", + "path-parse": "__VERSION__", + "supports-preserve-symlinks-flag": "__VERSION__" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/reusify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "iojs": "__VERSION__", + "node": "__VERSION__" + } + }, + "node_modules/run-parallel": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__" + } + }, + "node_modules/safe-array-concat": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__", + "has-symbols": "__VERSION__", + "isarray": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "isarray": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-regex": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sass": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/sass/-/sass-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "__VERSION__", + "immutable": "__VERSION__", + "source-map-js": ">=__VERSION__ <__VERSION__" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": "__VERSION__" + }, + "optionalDependencies": { + "@parcel/watcher": "__VERSION__" + } + }, + "node_modules/sass/node_modules/chokidar": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/semver": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-blocking": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/set-function-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "__VERSION__", + "es-errors": "__VERSION__", + "function-bind": "__VERSION__", + "get-intrinsic": "__VERSION__", + "gopd": "__VERSION__", + "has-property-descriptors": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "__VERSION__", + "es-errors": "__VERSION__", + "functions-have-names": "__VERSION__", + "has-property-descriptors": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/shebang-regex": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/side-channel": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "object-inspect": "__VERSION__", + "side-channel-list": "__VERSION__", + "side-channel-map": "__VERSION__", + "side-channel-weakmap": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "object-inspect": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "object-inspect": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "object-inspect": "__VERSION__", + "side-channel-map": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/slice-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "astral-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/source-map": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/source-map-js": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/source-map-support": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "__VERSION__", + "source-map": "__VERSION__" + } + }, + "node_modules/spdx-exceptions": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "__VERSION__", + "spdx-license-ids": "__VERSION__" + } + }, + "node_modules/spdx-license-ids": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/stop-iteration-iterator": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "internal-slot": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string-width": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/string.prototype.trim": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-data-property": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-object-atoms": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/strip-bom": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/strip-json-comments": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/css-parser-algorithms": "__VERSION__", + "@csstools/css-syntax-patches-for-csstree": "__VERSION__", + "@csstools/css-tokenizer": "__VERSION__", + "@csstools/media-query-list-parser": "__VERSION__", + "@csstools/selector-specificity": "__VERSION__", + "@dual-bundle/import-meta-resolve": "__VERSION__", + "balanced-match": "__VERSION__", + "colord": "__VERSION__", + "cosmiconfig": "__VERSION__", + "css-functions-list": "__VERSION__", + "css-tree": "__VERSION__", + "debug": "__VERSION__", + "fast-glob": "__VERSION__", + "fastest-levenshtein": "__VERSION__", + "file-entry-cache": "__VERSION__", + "global-modules": "__VERSION__", + "globby": "__VERSION__", + "globjoin": "__VERSION__", + "html-tags": "__VERSION__", + "ignore": "__VERSION__", + "imurmurhash": "__VERSION__", + "is-plain-object": "__VERSION__", + "known-css-properties": "__VERSION__", + "mathml-tag-names": "__VERSION__", + "meow": "__VERSION__", + "micromatch": "__VERSION__", + "normalize-path": "__VERSION__", + "picocolors": "__VERSION__", + "postcss": "__VERSION__", + "postcss-resolve-nested-selector": "__VERSION__", + "postcss-safe-parser": "__VERSION__", + "postcss-selector-parser": "__VERSION__", + "postcss-value-parser": "__VERSION__", + "resolve-from": "__VERSION__", + "string-width": "__VERSION__", + "supports-hyperlinks": "__VERSION__", + "svg-tags": "__VERSION__", + "table": "__VERSION__", + "write-file-atomic": "__VERSION__" + }, + "bin": { + "stylelint": "bin/stylelint.mjs" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__" + } + }, + "node_modules/stylelint-config-recommended-scss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-scss": "__VERSION__", + "stylelint-config-recommended": "__VERSION__", + "stylelint-scss": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__", + "stylelint": "__VERSION__" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/stylelint-config-standard": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "stylelint-config-recommended": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__" + } + }, + "node_modules/stylelint-config-standard-scss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "stylelint-config-recommended-scss": "__VERSION__", + "stylelint-config-standard": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__", + "stylelint": "__VERSION__" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/stylelint-order": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss": "__VERSION__", + "postcss-sorting": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__ || __VERSION__" + } + }, + "node_modules/stylelint-scss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "__VERSION__", + "is-plain-object": "__VERSION__", + "known-css-properties": "__VERSION__", + "mdn-data": "__VERSION__", + "postcss-media-query-parser": "__VERSION__", + "postcss-resolve-nested-selector": "__VERSION__", + "postcss-selector-parser": "__VERSION__", + "postcss-value-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__" + } + }, + "node_modules/stylelint/node_modules/file-entry-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "__VERSION__" + } + }, + "node_modules/stylelint/node_modules/flat-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "cacheable": "__VERSION__", + "flatted": "__VERSION__", + "hookified": "__VERSION__" + } + }, + "node_modules/stylelint/node_modules/ignore": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/supports-color": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/supports-hyperlinks": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "__VERSION__", + "supports-color": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-tags": { + "version": "__VERSION__", + "dev": true + }, + "node_modules/synckit": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/table": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "__VERSION__", + "lodash.truncate": "__VERSION__", + "slice-ansi": "__VERSION__", + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "__VERSION__", + "fast-uri": "__VERSION__", + "json-schema-traverse": "__VERSION__", + "require-from-string": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/terser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/terser/-/terser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "__VERSION__", + "acorn": "__VERSION__", + "commander": "__VERSION__", + "source-map-support": "__VERSION__" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/thenby": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tinyglobby": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tmp": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/to-regex-range": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/to-valid-identifier": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/base62": "__VERSION__", + "reserved-identifiers": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tsconfig-paths": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "__VERSION__", + "json5": "__VERSION__", + "minimist": "__VERSION__", + "strip-bom": "__VERSION__" + } + }, + "node_modules/type-check": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/typed-array-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "for-each": "__VERSION__", + "gopd": "__VERSION__", + "has-proto": "__VERSION__", + "is-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "__VERSION__", + "call-bind": "__VERSION__", + "for-each": "__VERSION__", + "gopd": "__VERSION__", + "has-proto": "__VERSION__", + "is-typed-array": "__VERSION__", + "reflect.getprototypeof": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "for-each": "__VERSION__", + "gopd": "__VERSION__", + "is-typed-array": "__VERSION__", + "possible-typed-array-names": "__VERSION__", + "reflect.getprototypeof": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-bigints": "__VERSION__", + "has-symbols": "__VERSION__", + "which-boxed-primitive": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/universalify": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/update-browserslist-db": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__", + "picocolors": "__VERSION__" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= __VERSION__" + } + }, + "node_modules/uri-js": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "__VERSION__" + } + }, + "node_modules/util-deprecate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "__VERSION__" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "__VERSION__", + "is-boolean-object": "__VERSION__", + "is-number-object": "__VERSION__", + "is-string": "__VERSION__", + "is-symbol": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "function.prototype.name": "__VERSION__", + "has-tostringtag": "__VERSION__", + "is-async-function": "__VERSION__", + "is-date-object": "__VERSION__", + "is-finalizationregistry": "__VERSION__", + "is-generator-function": "__VERSION__", + "is-regex": "__VERSION__", + "is-weakref": "__VERSION__", + "isarray": "__VERSION__", + "which-boxed-primitive": "__VERSION__", + "which-collection": "__VERSION__", + "which-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "__VERSION__", + "is-set": "__VERSION__", + "is-weakmap": "__VERSION__", + "is-weakset": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/which-typed-array": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "__VERSION__", + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "for-each": "__VERSION__", + "get-proto": "__VERSION__", + "gopd": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/write-file-atomic": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "__VERSION__", + "signal-exit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/y18n": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yaml-eslint-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "__VERSION__", + "yaml": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, + "node_modules/yargs": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "__VERSION__", + "find-up": "__VERSION__", + "get-caller-file": "__VERSION__", + "require-directory": "__VERSION__", + "require-main-filename": "__VERSION__", + "set-blocking": "__VERSION__", + "string-width": "__VERSION__", + "which-module": "__VERSION__", + "y18n": "__VERSION__", + "yargs-parser": "__VERSION__" + } + }, + "node_modules/yargs-parser": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "__VERSION__", + "decamelize": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/find-up": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "__VERSION__", + "path-exists": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/path-exists": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yocto-queue": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/package.json b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/package.json index c5919a9ad6..8b92630322 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/package.json +++ b/.vortex/cli/tests/Fixtures/handler_process/_baseline/web/themes/custom/star_wars/package.json @@ -4,17 +4,19 @@ "private": true, "description": "NodeJS dependencies for star wars project", "devDependencies": { + "@eslint/compat": "__VERSION__", + "@eslint/js": "__VERSION__", "@homer0/prettier-plugin-jsdoc": "__VERSION__", "autoprefixer": "__VERSION__", "chokidar-cli": "__VERSION__", "eslint": "__VERSION__", - "eslint-config-airbnb-base": "__VERSION__", "eslint-config-prettier": "__VERSION__", "eslint-plugin-import": "__VERSION__", "eslint-plugin-jsdoc": "__VERSION__", "eslint-plugin-no-jquery": "__VERSION__", "eslint-plugin-prettier": "__VERSION__", "eslint-plugin-yml": "__VERSION__", + "globals": "__VERSION__", "patch-package": "__VERSION__", "postcss": "__VERSION__", "postcss-cli": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/ai_instructions_disabled/.gitignore b/.vortex/cli/tests/Fixtures/handler_process/ai_instructions_disabled/.gitignore index 0e67cbf8e8..86f2eabdb7 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/ai_instructions_disabled/.gitignore +++ b/.vortex/cli/tests/Fixtures/handler_process/ai_instructions_disabled/.gitignore @@ -1,10 +1,12 @@ -@@ -34,10 +34,6 @@ +@@ -34,12 +34,6 @@ recipes/* !recipes/page --# Ignore all Claude files by default. Custom files should be added explicitly. +-# Claude writes machine-local state into '.claude/', so it stays an allow +-# list: un-ignore only the files shared with the team. -.claude/* -!.claude/settings.json +-!.claude/skills/ - # Dependencies. /vendor diff --git a/.vortex/cli/tests/Fixtures/handler_process/ciprovider_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/ciprovider_circleci/.circleci/config.yml index 127c379866..4acc6eb0fc 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/ciprovider_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/ciprovider_circleci/.circleci/config.yml @@ -139,7 +139,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -167,13 +167,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -184,14 +184,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -206,6 +207,28 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -258,10 +281,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -303,7 +326,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -312,7 +335,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -320,27 +343,29 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -349,14 +374,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -365,7 +390,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -377,10 +402,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -389,9 +415,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/code_coverage_provider_codecov/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/code_coverage_provider_codecov/.github/workflows/build-test-deploy.yml index ce146a5f55..b292290b64 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/code_coverage_provider_codecov/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/code_coverage_provider_codecov/.github/workflows/build-test-deploy.yml @@ -1,10 +1,10 @@ -@@ -359,6 +359,17 @@ +@@ -385,6 +385,17 @@ hide_and_recreate: true + - name: Upload coverage report to Codecov + uses: codecov/codecov-action@__HASH__ # __VERSION__ -+ if: ${{ (matrix.instance == 0 || strategy.job-total == 1) && env.CODECOV_TOKEN != '' }} ++ if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' && env.CODECOV_TOKEN != '' }} + continue-on-error: true + with: + directory: .logs/coverage @@ -14,5 +14,5 @@ + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + - name: Check code coverage threshold - if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} run: | diff --git a/.vortex/cli/tests/Fixtures/handler_process/code_coverage_provider_codecov_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/code_coverage_provider_codecov_circleci/.circleci/config.yml index 14ab3ee758..af9c83ac15 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/code_coverage_provider_codecov_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/code_coverage_provider_codecov_circleci/.circleci/config.yml @@ -139,7 +139,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -167,13 +167,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -184,14 +184,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -206,6 +207,28 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -258,10 +281,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -303,7 +326,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -312,7 +335,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -320,27 +343,29 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -349,14 +374,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Upload code coverage reports to Codecov command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ -n "${CODECOV_TOKEN}" ] && [ -d /tmp/artifacts/coverage ] && ! echo "${CIRCLE_BRANCH}" | grep -q '^deps/'; then curl -fOs https://uploader.codecov.io/__VERSION__/linux/codecov chmod +x codecov @@ -366,7 +391,7 @@ jobs: - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -375,7 +400,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -387,10 +412,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -399,9 +425,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/custom_modules_no_demo/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php b/.vortex/cli/tests/Fixtures/handler_process/custom_modules_no_demo/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php index d21e4b07ab..ee6b9756b4 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/custom_modules_no_demo/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php +++ b/.vortex/cli/tests/Fixtures/handler_process/custom_modules_no_demo/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php @@ -1,8 +1,9 @@ -@@ -106,7 +106,6 @@ +@@ -106,8 +106,6 @@ $this->moduleInstaller->install(['sw_search']); - $this->moduleInstaller->install(['sw_demo']); - } - - } +- + // The module creates its content while it installs, and only when + // GENERATED_CONTENT_CREATE is set, so it installs after the modules that + // supply the generated content plugins. diff --git a/.vortex/cli/tests/Fixtures/handler_process/custom_modules_no_search/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php b/.vortex/cli/tests/Fixtures/handler_process/custom_modules_no_search/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php index 5c17f794bf..304a45e083 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/custom_modules_no_search/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php +++ b/.vortex/cli/tests/Fixtures/handler_process/custom_modules_no_search/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php @@ -5,5 +5,5 @@ - $this->moduleInstaller->install(['sw_search']); - $this->moduleInstaller->install(['sw_demo']); - } + // The module creates its content while it installs, and only when diff --git a/.vortex/cli/tests/Fixtures/handler_process/custom_modules_none/.gitignore b/.vortex/cli/tests/Fixtures/handler_process/custom_modules_none/.gitignore index 4c478b1b22..13ede53d1f 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/custom_modules_none/.gitignore +++ b/.vortex/cli/tests/Fixtures/handler_process/custom_modules_none/.gitignore @@ -4,5 +4,5 @@ recipes/* -!recipes/page - # Ignore all Claude files by default. Custom files should be added explicitly. - .claude/* + # Claude writes machine-local state into '.claude/', so it stays an allow + # list: un-ignore only the files shared with the team. diff --git a/.vortex/cli/tests/Fixtures/handler_process/custom_modules_search_without_solr/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/custom_modules_search_without_solr/docker-compose.yml index 72010ca8c3..b698489a59 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/custom_modules_search_without_solr/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/custom_modules_search_without_solr/docker-compose.yml @@ -1,4 +1,4 @@ -@@ -156,17 +156,6 @@ +@@ -157,17 +157,6 @@ cache: image: uselagoon/valkey-8:__VERSION__ @@ -16,7 +16,7 @@ antivirus: build: context: . -@@ -197,13 +186,10 @@ +@@ -198,13 +187,10 @@ - antivirus - database - cache @@ -30,7 +30,7 @@ networks: ### Use external networks locally. Automatically removed in CI. amazeeio-network: ### Automatically removed in CI. -@@ -212,7 +198,6 @@ +@@ -213,7 +199,6 @@ volumes: app: {} files: {} diff --git a/.vortex/cli/tests/Fixtures/handler_process/custom_modules_search_without_solr/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/cli/tests/Fixtures/handler_process/custom_modules_search_without_solr/tests/phpunit/Drupal/EnvironmentSettingsTest.php index 4950acab44..f1c691cba5 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/custom_modules_search_without_solr/tests/phpunit/Drupal/EnvironmentSettingsTest.php +++ b/.vortex/cli/tests/Fixtures/handler_process/custom_modules_search_without_solr/tests/phpunit/Drupal/EnvironmentSettingsTest.php @@ -34,7 +34,7 @@ $this->assertConfig($config); $settings['auto_create_htaccess'] = FALSE; -@@ -359,8 +351,6 @@ +@@ -360,8 +352,6 @@ $config['reroute_email.settings']['allowed'] = '*@star-wars.com'; $config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE; $config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE; diff --git a/.vortex/cli/tests/Fixtures/handler_process/custom_modules_search_without_solr/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php b/.vortex/cli/tests/Fixtures/handler_process/custom_modules_search_without_solr/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php index 134ff27697..a212e6cfa7 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/custom_modules_search_without_solr/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php +++ b/.vortex/cli/tests/Fixtures/handler_process/custom_modules_search_without_solr/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php @@ -11,4 +11,4 @@ - $this->moduleInstaller->install(['sw_search']); $this->moduleInstaller->install(['sw_demo']); - } + diff --git a/.vortex/cli/tests/Fixtures/handler_process/db_fetch_source_acquia/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/db_fetch_source_acquia/.github/workflows/build-test-deploy.yml index b1eee42a92..9d6c37946e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/db_fetch_source_acquia/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/db_fetch_source_acquia/.github/workflows/build-test-deploy.yml @@ -1,4 +1,4 @@ -@@ -256,6 +256,9 @@ +@@ -282,6 +282,9 @@ VORTEX_FETCH_DB_SEMAPHORE=/tmp/fetch-db-success ./vendor/bin/vortex-fetch-db echo "db_hash=${{ hashFiles('.data') }}" >> "$GITHUB_ENV" timeout-minutes: 30 diff --git a/.vortex/cli/tests/Fixtures/handler_process/db_fetch_source_container_registry/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/db_fetch_source_container_registry/.github/workflows/build-test-deploy.yml index 0bf90526f2..e2d47d50cf 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/db_fetch_source_container_registry/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/db_fetch_source_container_registry/.github/workflows/build-test-deploy.yml @@ -1,14 +1,14 @@ -@@ -270,11 +270,17 @@ +@@ -296,11 +296,17 @@ - name: Export DB after fetch run: | if [ ! -f /tmp/fetch-db-success ]; then echo "==> Database fetch semaphore file is missing. DB export will not proceed."; exit 0; fi + if [ "${STRATEGY_JOB_TOTAL}" -gt 1 ] && [ "${STRATEGY_JOB_INDEX}" -ne 0 ]; then export VORTEX_EXPORT_DB_CONTAINER_REGISTRY_PUSH_PROCEED=0; fi - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" + grep -q ^VORTEX_DB_IMAGE .env && rm .data/db.sql || true ./vendor/bin/vortex-export-db db.sql + if [ -n "${VORTEX_DB_IMAGE:-}" ]; then ./vendor/bin/vortex-push-db-image; fi - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true timeout-minutes: 30 + env: + STRATEGY_JOB_TOTAL: ${{ strategy.job-total }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/db_fetch_source_lagoon/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/db_fetch_source_lagoon/.github/workflows/build-test-deploy.yml index 4f966495aa..491ee02a4e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/db_fetch_source_lagoon/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/db_fetch_source_lagoon/.github/workflows/build-test-deploy.yml @@ -1,4 +1,4 @@ -@@ -248,6 +248,15 @@ +@@ -274,6 +274,15 @@ - name: Login to container registry run: ./vendor/bin/vortex-login-container-registry diff --git a/.vortex/cli/tests/Fixtures/handler_process/deploy_types_all_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/deploy_types_all_circleci/.circleci/config.yml index 5cb767288c..3a2396f99c 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/deploy_types_all_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/deploy_types_all_circleci/.circleci/config.yml @@ -145,7 +145,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -173,13 +173,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -190,14 +190,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -212,6 +213,28 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -264,10 +287,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -309,7 +332,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -318,7 +341,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -326,27 +349,29 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -355,14 +380,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -371,7 +396,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -383,10 +408,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -395,9 +421,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always @@ -439,7 +465,7 @@ jobs: command: | echo "${VORTEX_DEPLOY_TYPES:-}" | grep -vq "artifact" && exit 0 || true mkdir -p "/tmp/workspace/code" - docker compose cp -L cli:"/app/." "/tmp/workspace/code" + docker compose --progress quiet cp -L cli:"/app/." "/tmp/workspace/code" du -sh "/tmp/workspace/code" - persist_to_workspace: diff --git a/.vortex/cli/tests/Fixtures/handler_process/deploy_types_all_circleci/.gitignore.artifact b/.vortex/cli/tests/Fixtures/handler_process/deploy_types_all_circleci/.gitignore.artifact index 47693faea9..0e7562a2d4 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/deploy_types_all_circleci/.gitignore.artifact +++ b/.vortex/cli/tests/Fixtures/handler_process/deploy_types_all_circleci/.gitignore.artifact @@ -31,8 +31,6 @@ web/sites/simpletest /.docker /.dockerignore /.editorconfig -/.eslintignore -/.eslintrc.json /.gitattributes /.github /.gitignore.artifact @@ -45,6 +43,7 @@ web/sites/simpletest /AGENTS.md /CLAUDE.md /docker-compose.yml +/eslint.config.mjs /renovate.json # Documentation. @@ -73,18 +72,17 @@ web/sites/simpletest /package-lock.json /patches /patches.lock.json -/yarn.lock web/themes/**/node_modules # Custom theme asset sources - only compiled assets in 'build' are deployed. -web/themes/custom/star_wars/.eslintrc.json +web/themes/custom/star_wars/eslint.config.mjs web/themes/custom/star_wars/fonts web/themes/custom/star_wars/images web/themes/custom/star_wars/js web/themes/custom/star_wars/package.json +web/themes/custom/star_wars/package-lock.json web/themes/custom/star_wars/postcss.config.js web/themes/custom/star_wars/scss -web/themes/custom/star_wars/yarn.lock # Caches, data, logs and temporary artifacts. .artifacts diff --git a/.vortex/cli/tests/Fixtures/handler_process/deploy_types_all_gha/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/deploy_types_all_gha/.github/workflows/build-test-deploy.yml index b6761835eb..1393b2d37e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/deploy_types_all_gha/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/deploy_types_all_gha/.github/workflows/build-test-deploy.yml @@ -1,4 +1,4 @@ -@@ -479,6 +479,24 @@ +@@ -515,6 +515,24 @@ - name: Build stack run: docker compose up --detach && docker builder prune --all --force && docker image prune --force @@ -6,7 +6,7 @@ + if: ${{ contains(env.VORTEX_DEPLOY_TYPES, 'artifact') }} + run: | + mkdir -p "/tmp/workspace/code" "/tmp/artifacts" -+ docker compose cp -L cli:"/app/." "/tmp/workspace/code" ++ docker compose --progress quiet cp -L cli:"/app/." "/tmp/workspace/code" + tar -C /tmp/workspace -cpf /tmp/artifacts/code.tar code + du -sh "/tmp/artifacts" + @@ -23,7 +23,7 @@ deploy: runs-on: ubuntu-latest needs: [test, lint, build] -@@ -533,6 +551,20 @@ +@@ -569,6 +587,20 @@ - name: Load environment variables from .env run: t=$(mktemp) && export -p >"${t}" && set -a && . ./.env && set +a && . "${t}" && env >> "$GITHUB_ENV" @@ -44,7 +44,7 @@ - name: Add SSH private key to the runner if: ${{ env.VORTEX_DEPLOY_SSH_PRIVATE_KEY != '' }} uses: shimataro/ssh-key-action@__HASH__ # __VERSION__ -@@ -553,6 +585,11 @@ +@@ -589,6 +621,11 @@ VORTEX_DEPLOY_PR: ${{ env.DEPLOY_PR_NUMBER || github.event.number }} VORTEX_DEPLOY_PR_HEAD: ${{ env.DEPLOY_PR_HEAD_SHA || github.event.pull_request.head.sha }} VORTEX_DEPLOY_PR_LABELS: ${{ join(github.event.pull_request.labels.*.name, ',') }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/deploy_types_all_gha/.gitignore.artifact b/.vortex/cli/tests/Fixtures/handler_process/deploy_types_all_gha/.gitignore.artifact index f3a4ce6f23..7b9ff994b1 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/deploy_types_all_gha/.gitignore.artifact +++ b/.vortex/cli/tests/Fixtures/handler_process/deploy_types_all_gha/.gitignore.artifact @@ -31,8 +31,6 @@ web/sites/simpletest /.docker /.dockerignore /.editorconfig -/.eslintignore -/.eslintrc.json /.gitattributes /.github /.gitignore.artifact @@ -45,6 +43,7 @@ web/sites/simpletest /AGENTS.md /CLAUDE.md /docker-compose.yml +/eslint.config.mjs /renovate.json # Database cache key files written into the workspace by the CI workflow. @@ -76,18 +75,17 @@ web/sites/simpletest /package-lock.json /patches /patches.lock.json -/yarn.lock web/themes/**/node_modules # Custom theme asset sources - only compiled assets in 'build' are deployed. -web/themes/custom/star_wars/.eslintrc.json +web/themes/custom/star_wars/eslint.config.mjs web/themes/custom/star_wars/fonts web/themes/custom/star_wars/images web/themes/custom/star_wars/js web/themes/custom/star_wars/package.json +web/themes/custom/star_wars/package-lock.json web/themes/custom/star_wars/postcss.config.js web/themes/custom/star_wars/scss -web/themes/custom/star_wars/yarn.lock # Caches, data, logs and temporary artifacts. .artifacts diff --git a/.vortex/cli/tests/Fixtures/handler_process/deploy_types_artifact/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/deploy_types_artifact/.github/workflows/build-test-deploy.yml index 6c74b8ca14..ef3c4c4fd0 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/deploy_types_artifact/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/deploy_types_artifact/.github/workflows/build-test-deploy.yml @@ -1,4 +1,4 @@ -@@ -479,6 +479,24 @@ +@@ -515,6 +515,24 @@ - name: Build stack run: docker compose up --detach && docker builder prune --all --force && docker image prune --force @@ -6,7 +6,7 @@ + if: ${{ contains(env.VORTEX_DEPLOY_TYPES, 'artifact') }} + run: | + mkdir -p "/tmp/workspace/code" "/tmp/artifacts" -+ docker compose cp -L cli:"/app/." "/tmp/workspace/code" ++ docker compose --progress quiet cp -L cli:"/app/." "/tmp/workspace/code" + tar -C /tmp/workspace -cpf /tmp/artifacts/code.tar code + du -sh "/tmp/artifacts" + @@ -23,7 +23,7 @@ deploy: runs-on: ubuntu-latest needs: [test, lint, build] -@@ -533,6 +551,20 @@ +@@ -569,6 +587,20 @@ - name: Load environment variables from .env run: t=$(mktemp) && export -p >"${t}" && set -a && . ./.env && set +a && . "${t}" && env >> "$GITHUB_ENV" @@ -44,7 +44,7 @@ - name: Add SSH private key to the runner if: ${{ env.VORTEX_DEPLOY_SSH_PRIVATE_KEY != '' }} uses: shimataro/ssh-key-action@__HASH__ # __VERSION__ -@@ -553,7 +585,11 @@ +@@ -589,7 +621,11 @@ VORTEX_DEPLOY_PR: ${{ env.DEPLOY_PR_NUMBER || github.event.number }} VORTEX_DEPLOY_PR_HEAD: ${{ env.DEPLOY_PR_HEAD_SHA || github.event.pull_request.head.sha }} VORTEX_DEPLOY_PR_LABELS: ${{ join(github.event.pull_request.labels.*.name, ',') }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/deploy_types_artifact/.gitignore.artifact b/.vortex/cli/tests/Fixtures/handler_process/deploy_types_artifact/.gitignore.artifact index f3a4ce6f23..7b9ff994b1 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/deploy_types_artifact/.gitignore.artifact +++ b/.vortex/cli/tests/Fixtures/handler_process/deploy_types_artifact/.gitignore.artifact @@ -31,8 +31,6 @@ web/sites/simpletest /.docker /.dockerignore /.editorconfig -/.eslintignore -/.eslintrc.json /.gitattributes /.github /.gitignore.artifact @@ -45,6 +43,7 @@ web/sites/simpletest /AGENTS.md /CLAUDE.md /docker-compose.yml +/eslint.config.mjs /renovate.json # Database cache key files written into the workspace by the CI workflow. @@ -76,18 +75,17 @@ web/sites/simpletest /package-lock.json /patches /patches.lock.json -/yarn.lock web/themes/**/node_modules # Custom theme asset sources - only compiled assets in 'build' are deployed. -web/themes/custom/star_wars/.eslintrc.json +web/themes/custom/star_wars/eslint.config.mjs web/themes/custom/star_wars/fonts web/themes/custom/star_wars/images web/themes/custom/star_wars/js web/themes/custom/star_wars/package.json +web/themes/custom/star_wars/package-lock.json web/themes/custom/star_wars/postcss.config.js web/themes/custom/star_wars/scss -web/themes/custom/star_wars/yarn.lock # Caches, data, logs and temporary artifacts. .artifacts diff --git a/.vortex/cli/tests/Fixtures/handler_process/deploy_types_lagoon/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/deploy_types_lagoon/.github/workflows/build-test-deploy.yml index 7e0e2b3e87..f462fc681b 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/deploy_types_lagoon/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/deploy_types_lagoon/.github/workflows/build-test-deploy.yml @@ -1,4 +1,4 @@ -@@ -553,7 +553,6 @@ +@@ -589,7 +589,6 @@ VORTEX_DEPLOY_PR: ${{ env.DEPLOY_PR_NUMBER || github.event.number }} VORTEX_DEPLOY_PR_HEAD: ${{ env.DEPLOY_PR_HEAD_SHA || github.event.pull_request.head.sha }} VORTEX_DEPLOY_PR_LABELS: ${{ join(github.event.pull_request.labels.*.name, ',') }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/deploy_types_none_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/deploy_types_none_circleci/.circleci/config.yml index 34516e1f21..59dbe55e4a 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/deploy_types_none_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/deploy_types_none_circleci/.circleci/config.yml @@ -134,7 +134,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -162,13 +162,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -179,14 +179,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -201,6 +202,28 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -253,10 +276,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -298,7 +321,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -307,7 +330,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -315,27 +338,29 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -344,14 +369,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -360,7 +385,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -372,10 +397,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -384,9 +410,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/deploy_types_none_gha/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/deploy_types_none_gha/.github/workflows/build-test-deploy.yml index 5a559fb846..a957f35071 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/deploy_types_none_gha/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/deploy_types_none_gha/.github/workflows/build-test-deploy.yml @@ -1,4 +1,4 @@ -@@ -428,136 +428,3 @@ +@@ -453,147 +453,3 @@ timeout-minutes: 120 # Cancel the action after 120 minutes, regardless of whether a connection has been established. with: detached: true @@ -23,6 +23,17 @@ - VORTEX_DEBUG: ${{ vars.VORTEX_DEBUG }} - - steps: +- # Frees disk space by removing preinstalled toolchains unused by this project. +- - name: Free up disk space on the runner +- if: ${{ vars.VORTEX_CI_FREE_DISK_SPACE == '1' }} +- run: | +- set -- /usr/local/.ghcup /usr/share/swift /usr/local/share/powershell /usr/share/dotnet /opt/hostedtoolcache/CodeQL +- # set -- "$@" /usr/local/lib/android # Removes about 10GB more, but takes about 50s. Uncomment to enable. +- sudo rm -rf "$@" || true +- +- - name: Report disk usage +- run: df -h +- - - name: Check out code - uses: actions/checkout@__HASH__ # __VERSION__ - with: diff --git a/.vortex/cli/tests/Fixtures/handler_process/deps_updates_provider_ci_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/deps_updates_provider_ci_circleci/.circleci/config.yml index 127c379866..4acc6eb0fc 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/deps_updates_provider_ci_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/deps_updates_provider_ci_circleci/.circleci/config.yml @@ -139,7 +139,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -167,13 +167,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -184,14 +184,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -206,6 +207,28 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -258,10 +281,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -303,7 +326,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -312,7 +335,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -320,27 +343,29 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -349,14 +374,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -365,7 +390,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -377,10 +402,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -389,9 +415,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/gitleaks_disabled/.github/workflows/audit.yml b/.vortex/cli/tests/Fixtures/handler_process/gitleaks_disabled/.github/workflows/audit.yml index 92eb1a9686..2dc598c217 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/gitleaks_disabled/.github/workflows/audit.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/gitleaks_disabled/.github/workflows/audit.yml @@ -1,11 +1,9 @@ -@@ -73,10 +73,6 @@ - - name: Load environment variables from .env - run: t=$(mktemp) && export -p >"${t}" && set -a && . ./.env && set +a && . "${t}" && env >> "$GITHUB_ENV" - +@@ -77,8 +77,3 @@ + if: ${{ !cancelled() }} + run: composer audit --locked + continue-on-error: ${{ vars.VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE == '1' }} +- - - name: Scan for committed secrets with Gitleaks +- if: ${{ !cancelled() }} - run: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner - continue-on-error: ${{ vars.VORTEX_CI_GITLEAKS_IGNORE_FAILURE == '1' }} -- - - name: Audit Composer packages - run: composer audit --locked - continue-on-error: ${{ vars.VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE == '1' }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/.eslintignore b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/.eslintignore deleted file mode 100644 index 551adc1511..0000000000 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/.eslintignore +++ /dev/null @@ -1,17 +0,0 @@ -@@ -1,10 +1,10 @@ - node_modules/ - vendor/ --web/core/ --web/libraries/ --web/modules/contrib/ --web/profiles/contrib/ --web/themes/contrib/ --web/sites/*/files/ -+docroot/core/ -+docroot/libraries/ -+docroot/modules/contrib/ -+docroot/profiles/contrib/ -+docroot/themes/contrib/ -+docroot/sites/*/files/ - *.min.js - *.min.css diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/.github/workflows/build-test-deploy.yml index 4a1f7edb31..8936035f4d 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/.github/workflows/build-test-deploy.yml @@ -1,4 +1,4 @@ -@@ -256,6 +256,9 @@ +@@ -282,6 +282,9 @@ VORTEX_FETCH_DB_SEMAPHORE=/tmp/fetch-db-success ./vendor/bin/vortex-fetch-db echo "db_hash=${{ hashFiles('.data') }}" >> "$GITHUB_ENV" timeout-minutes: 30 @@ -8,7 +8,7 @@ - name: Build stack run: docker compose up --detach && docker builder prune --all --force && docker image prune --force -@@ -479,6 +482,24 @@ +@@ -515,6 +518,24 @@ - name: Build stack run: docker compose up --detach && docker builder prune --all --force && docker image prune --force @@ -16,7 +16,7 @@ + if: ${{ contains(env.VORTEX_DEPLOY_TYPES, 'artifact') }} + run: | + mkdir -p "/tmp/workspace/code" "/tmp/artifacts" -+ docker compose cp -L cli:"/app/." "/tmp/workspace/code" ++ docker compose --progress quiet cp -L cli:"/app/." "/tmp/workspace/code" + tar -C /tmp/workspace -cpf /tmp/artifacts/code.tar code + du -sh "/tmp/artifacts" + @@ -33,7 +33,7 @@ deploy: runs-on: ubuntu-latest needs: [test, lint, build] -@@ -533,6 +554,20 @@ +@@ -569,6 +590,20 @@ - name: Load environment variables from .env run: t=$(mktemp) && export -p >"${t}" && set -a && . ./.env && set +a && . "${t}" && env >> "$GITHUB_ENV" @@ -54,7 +54,7 @@ - name: Add SSH private key to the runner if: ${{ env.VORTEX_DEPLOY_SSH_PRIVATE_KEY != '' }} uses: shimataro/ssh-key-action@__HASH__ # __VERSION__ -@@ -553,7 +588,11 @@ +@@ -589,7 +624,11 @@ VORTEX_DEPLOY_PR: ${{ env.DEPLOY_PR_NUMBER || github.event.number }} VORTEX_DEPLOY_PR_HEAD: ${{ env.DEPLOY_PR_HEAD_SHA || github.event.pull_request.head.sha }} VORTEX_DEPLOY_PR_LABELS: ${{ join(github.event.pull_request.labels.*.name, ',') }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/.gitignore b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/.gitignore index 219d7b539a..686ba22fb8 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/.gitignore +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/.gitignore @@ -42,7 +42,7 @@ # Composer installs contrib recipes into 'recipes/', next to custom recipes, # so recipes stay an allow list: un-ignore custom recipes explicitly. -@@ -41,10 +41,10 @@ +@@ -43,10 +43,10 @@ # Dependencies. /vendor /node_modules diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/.gitignore.artifact b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/.gitignore.artifact index 240f4553b0..3d76998da6 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/.gitignore.artifact +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/.gitignore.artifact @@ -31,8 +31,6 @@ docroot/sites/simpletest /.docker /.dockerignore /.editorconfig -/.eslintignore -/.eslintrc.json /.gitattributes /.github /.gitignore.artifact @@ -45,6 +43,7 @@ docroot/sites/simpletest /AGENTS.md /CLAUDE.md /docker-compose.yml +/eslint.config.mjs /renovate.json # Database cache key files written into the workspace by the CI workflow. @@ -76,18 +75,17 @@ docroot/sites/simpletest /package-lock.json /patches /patches.lock.json -/yarn.lock docroot/themes/**/node_modules # Custom theme asset sources - only compiled assets in 'build' are deployed. -docroot/themes/custom/star_wars/.eslintrc.json +docroot/themes/custom/star_wars/eslint.config.mjs docroot/themes/custom/star_wars/fonts docroot/themes/custom/star_wars/images docroot/themes/custom/star_wars/js docroot/themes/custom/star_wars/package.json +docroot/themes/custom/star_wars/package-lock.json docroot/themes/custom/star_wars/postcss.config.js docroot/themes/custom/star_wars/scss -docroot/themes/custom/star_wars/yarn.lock # Caches, data, logs and temporary artifacts. .artifacts diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/composer.json b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/composer.json index 80ae364d91..be9c53acca 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/composer.json +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/composer.json @@ -1,4 +1,4 @@ -@@ -126,38 +126,38 @@ +@@ -127,38 +127,38 @@ "[web-root]/update.php": false }, "locations": { diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docker-compose.yml index c5d1d602dc..0801770da0 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docker-compose.yml @@ -1,4 +1,4 @@ -@@ -69,10 +69,10 @@ +@@ -70,10 +70,10 @@ # All application files mounted into container. - .:/app:${VOLUME_FLAGS:-delegated} ### Local overrides to mount host filesystem. Automatically removed in CI and PROD. # Override mount for files to allow different type of syncing for optimised performance. diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php index a21b36e7e0..03c3132eb0 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php @@ -107,6 +107,16 @@ public function run(): void { $this->moduleInstaller->install(['sw_search']); $this->moduleInstaller->install(['sw_demo']); + + // The module creates its content while it installs, and only when + // GENERATED_CONTENT_CREATE is set, so it installs after the modules that + // supply the generated content plugins. + if (getenv('DRUPAL_GENERATED_CONTENT_SKIP') !== '1') { + putenv('GENERATED_CONTENT_CREATE=1'); + } + + $this->moduleInstaller->install(['generated_content']); + putenv('GENERATED_CONTENT_CREATE'); } } diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/modules/custom/sw_base/sw_base.module b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/modules/custom/sw_base/sw_base.module deleted file mode 100644 index 36cf4aae82..0000000000 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/modules/custom/sw_base/sw_base.module +++ /dev/null @@ -1,22 +0,0 @@ -getProperty($property); - return $property->getValue($class); + return $property->getValue($object); } } diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/modules/custom/sw_demo/js/tests/sw_demo.test.js b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/modules/custom/sw_demo/js/tests/sw_demo.test.js index 6998b8d571..70aa5fc9e1 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/modules/custom/sw_demo/js/tests/sw_demo.test.js +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/modules/custom/sw_demo/js/tests/sw_demo.test.js @@ -10,7 +10,6 @@ describe('Drupal.behaviors.ysDemo', () => { jest.spyOn(console, 'log').mockImplementation(() => {}); jest.resetModules(); - // eslint-disable-next-line global-require require('../sw_demo.js'); }); @@ -152,9 +151,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.initCounterBlock(document); - const incrementBtn = document.querySelector( - '[data-counter-action="increment"]', - ); + const incrementBtn = document.querySelector('[data-counter-action="increment"]'); incrementBtn.click(); const value = document.querySelector('[data-counter-value]'); @@ -165,9 +162,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.initCounterBlock(document); - const decrementBtn = document.querySelector( - '[data-counter-action="decrement"]', - ); + const decrementBtn = document.querySelector('[data-counter-action="decrement"]'); decrementBtn.click(); const value = document.querySelector('[data-counter-value]'); @@ -178,9 +173,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.initCounterBlock(document); - const incrementBtn = document.querySelector( - '[data-counter-action="increment"]', - ); + const incrementBtn = document.querySelector('[data-counter-action="increment"]'); incrementBtn.click(); incrementBtn.click(); incrementBtn.click(); @@ -196,9 +189,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.initCounterBlock(document); - const incrementBtn = document.querySelector( - '[data-counter-action="increment"]', - ); + const incrementBtn = document.querySelector('[data-counter-action="increment"]'); incrementBtn.click(); incrementBtn.click(); @@ -210,9 +201,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.initCounterBlock(document); - const incrementBtn = document.querySelector( - '[data-counter-action="increment"]', - ); + const incrementBtn = document.querySelector('[data-counter-action="increment"]'); incrementBtn.click(); const value = document.querySelector('[data-counter-value]'); @@ -237,12 +226,8 @@ describe('Drupal.behaviors.ysDemo', () => { Drupal.behaviors.ysDemo.initCounterBlock(document); const blocks = document.querySelectorAll('[data-sw-demo-counter]'); - expect(blocks[0].classList.contains('sw-demo-counter-processed')).toBe( - true, - ); - expect(blocks[1].classList.contains('sw-demo-counter-processed')).toBe( - true, - ); + expect(blocks[0].classList.contains('sw-demo-counter-processed')).toBe(true); + expect(blocks[1].classList.contains('sw-demo-counter-processed')).toBe(true); }); }); @@ -261,9 +246,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.attach(document); - const incrementBtn = document.querySelector( - '[data-counter-action="increment"]', - ); + const incrementBtn = document.querySelector('[data-counter-action="increment"]'); incrementBtn.click(); const value = document.querySelector('[data-counter-value]'); diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/modules/custom/sw_demo/src/Plugin/GeneratedContent/Node/Page.php b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/modules/custom/sw_demo/src/Plugin/GeneratedContent/Node/Page.php index 38453e6f9a..40835f853c 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/modules/custom/sw_demo/src/Plugin/GeneratedContent/Node/Page.php +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/modules/custom/sw_demo/src/Plugin/GeneratedContent/Node/Page.php @@ -37,10 +37,14 @@ public function generate(): array { 'status' => 1, ]); - $node->set('body', [ - 'value' => $this->helper::staticRichText(3), - 'format' => 'full_html', - ]); + // The content model differs between install profiles, so a field the + // demo populates is only set when the bundle actually carries it. + if ($node->hasField('body')) { + $node->set('body', [ + 'value' => $this->helper::staticRichText(3), + 'format' => 'full_html', + ]); + } // When Content Moderation is attached to the bundle, 'status' alone // leaves the node as an unpublished draft, so the state must be set diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/modules/custom/sw_demo/sw_demo.info.yml b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/modules/custom/sw_demo/sw_demo.info.yml index 45cfab2804..c2f3e3a559 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/modules/custom/sw_demo/sw_demo.info.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/modules/custom/sw_demo/sw_demo.info.yml @@ -8,5 +8,4 @@ dependencies: - drupal:node - drupal:views - drupal_helpers:drupal_helpers - - generated_content:generated_content - testmode:testmode diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/sites/default/includes/modules/settings.reroute_email.php b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/sites/default/includes/modules/settings.reroute_email.php index 9b33203c65..d9701f1ddf 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/sites/default/includes/modules/settings.reroute_email.php +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/sites/default/includes/modules/settings.reroute_email.php @@ -21,13 +21,17 @@ Environment::STAGE, Environment::PRODUCTION, ])) { + // Send every outgoing message to the address above instead of to its + // intended recipient, unless that recipient matches the allowed list. $config['reroute_email.settings']['enable'] = TRUE; } else { + // Deliver every message to its intended recipient. $config['reroute_email.settings']['enable'] = FALSE; } -// Allow to disable reroute email completely in the environment. +// Allow an environment to opt out of the rerouting set above. if (!empty(getenv('DRUPAL_REROUTE_EMAIL_DISABLED'))) { + // Deliver every message to its intended recipient. $config['reroute_email.settings']['enable'] = FALSE; } diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/sites/default/includes/modules/settings.sw_base.php b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/sites/default/includes/modules/settings.sw_base.php deleted file mode 100644 index 884ec2f5ca..0000000000 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/sites/default/includes/modules/settings.sw_base.php +++ /dev/null @@ -1,15 +0,0 @@ - @@ -48,7 +48,7 @@ //////////////////////////////////////////////////////////////////////////////// /// GENERAL /// //////////////////////////////////////////////////////////////////////////////// -// @see https://www.vortextemplate.com/docs/drupal/settings#general +// @see https://www.vortextemplate.com/docs/development/settings#general $app_root ??= DRUPAL_ROOT; $site_path ??= 'sites/default'; @@ -100,7 +100,7 @@ //////////////////////////////////////////////////////////////////////////////// /// ENVIRONMENT TYPE DETECTION /// //////////////////////////////////////////////////////////////////////////////// -// @see https://www.vortextemplate.com/docs/drupal/settings#environment-type-detection +// @see https://www.vortextemplate.com/docs/development/settings#environment-type-detection // Detect the environment type from the hosting platform and apply the // platform-related settings. @@ -109,7 +109,7 @@ //////////////////////////////////////////////////////////////////////////////// /// PER-MODULE OVERRIDES /// //////////////////////////////////////////////////////////////////////////////// -// @see https://www.vortextemplate.com/docs/drupal/settings#per-module-overrides +// @see https://www.vortextemplate.com/docs/development/settings#per-module-overrides if (file_exists($app_root . '/' . $site_path . '/includes/modules')) { $files = glob($app_root . '/' . $site_path . '/includes/modules/settings.*.php'); @@ -123,7 +123,7 @@ //////////////////////////////////////////////////////////////////////////////// /// LOCAL OVERRIDE /// //////////////////////////////////////////////////////////////////////////////// -// @see https://www.vortextemplate.com/docs/drupal/settings#local-overrides +// @see https://www.vortextemplate.com/docs/development/settings#local-overrides // Load local override configuration, if available. // diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/.eslintrc.json deleted file mode 100644 index ef68a6a933..0000000000 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/.eslintrc.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "extends": [ - "airbnb-base", - "plugin:prettier/recommended", - "plugin:yml/recommended" - ], - "root": true, - "env": { - "browser": true, - "es6": true, - "node": true - }, - "parserOptions": { - "ecmaVersion": 2020 - }, - "plugins": [ - "jsdoc" - ], - "globals": { - "Drupal": true, - "drupalSettings": true, - "drupalTranslations": true, - "jQuery": true, - "_": true, - "Cookies": true, - "Backbone": true, - "htmx": true, - "loadjs": true, - "Shepherd": true, - "Sortable": true, - "once": true, - "CKEditor5": true, - "tabbable": true, - "transliterate": true, - "bodyScrollLock" : true, - "FloatingUIDOM": true - }, - "rules": { - "prettier/prettier": "error", - "consistent-return": ["off"], - "no-underscore-dangle": ["off"], - "max-nested-callbacks": ["warn", 3], - "import/no-mutable-exports": ["warn"], - "no-plusplus": ["warn", { - "allowForLoopAfterthoughts": true - }], - "no-param-reassign": ["off"], - "no-prototype-builtins": ["off"], - "jsdoc/require-returns": ["off"], - "jsdoc/require-returns-type": ["warn"], - "jsdoc/require-returns-description": ["warn"], - "jsdoc/require-returns-check": ["warn"], - "jsdoc/require-param": ["warn"], - "jsdoc/require-param-type": ["warn"], - "jsdoc/require-param-description": ["warn"], - "jsdoc/check-param-names": ["warn"], - "jsdoc/valid-types": ["warn"], - "jsdoc/require-param-name": ["warn"], - "jsdoc/check-tag-names": ["warn"], - "no-unused-vars": ["warn"], - "operator-linebreak": ["error", "after", { "overrides": { "?": "ignore", ":": "ignore" } }], - "yml/indent": ["error", 2] - }, - "settings": { - "jsdoc": { - "tagNamePreference": { - "returns": "return", - "property": "prop" - } - } - } -} diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/.prettierrc.json b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/.prettierrc.json index b5ed527867..8ef17490e8 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/.prettierrc.json +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/.prettierrc.json @@ -1,10 +1,12 @@ { - "printWidth": 80, + "printWidth": 160, "semi": true, "singleQuote": true, "trailingComma": "all", "plugins": ["@homer0/prettier-plugin-jsdoc"], + "jsdocPrintWidth": 80, "jsdocReplaceTagsSynonyms": false, + "jsdocUseTypeScriptTypesCasing": false, "overrides": [ { "files": ["*.css"], diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/README.md b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/README.md index bfc90db553..63e5700e12 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/README.md +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/README.md @@ -5,20 +5,20 @@ Custom Drupal theme for the project. ## Requirements - Node.js (LTS version recommended) -- Yarn +- npm ## Installation ```bash -yarn install +npm ci ``` ## Commands -| Command | Description | -|----------------------|------------------------------------------------| -| `yarn run build` | Production build (minified, no source maps) | -| `yarn run build-dev` | Development build (expanded, with source maps) | -| `yarn run watch` | Watch for changes and rebuild automatically | -| `yarn run lint` | Check code style (JS and SCSS) | -| `yarn run lint-fix` | Fix code style issues automatically | +| Command | Description | +|---------------------|------------------------------------------------| +| `npm run build` | Production build (minified, no source maps) | +| `npm run build-dev` | Development build (expanded, with source maps) | +| `npm run watch` | Watch for changes and rebuild automatically | +| `npm run lint` | Check code style (JS and SCSS) | +| `npm run lint-fix` | Fix code style issues automatically | diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/eslint.config.mjs b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/eslint.config.mjs new file mode 100644 index 0000000000..5e6af862fb --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/eslint.config.mjs @@ -0,0 +1,100 @@ +// Mirrors the Drupal core configuration from +// https://www.drupal.org/project/drupal/issues/3440225, adapted to lint the +// theme's own sources. The theme carries its own front-end tooling because it +// can be moved into a separate repository. +import { defineConfig } from 'eslint/config'; +import { fixupPluginRules } from '@eslint/compat'; +import importPlugin from 'eslint-plugin-import'; +import noJQuery from 'eslint-plugin-no-jquery'; +import prettierConfig from 'eslint-plugin-prettier/recommended'; +import ymlConfig from 'eslint-plugin-yml'; +import jsdoc from 'eslint-plugin-jsdoc'; +import js from '@eslint/js'; +import globals from 'globals'; + +export default defineConfig( + { + ignores: ['node_modules/**/*', 'build/**/*', '**/*.min.js'], + }, + js.configs.recommended, + importPlugin.flatConfigs.recommended, + jsdoc.configs['flat/recommended'], + prettierConfig, + ymlConfig.configs['flat/recommended'], + { + plugins: { + 'no-jquery': fixupPluginRules(noJQuery), + }, + languageOptions: { + ecmaVersion: 2020, + globals: { + ...globals.browser, + ...globals.node, + + Drupal: 'readonly', + drupalSettings: 'readonly', + drupalTranslations: 'readonly', + jQuery: 'readonly', + _: 'readonly', + Cookies: 'readonly', + Backbone: 'readonly', + htmx: 'readonly', + loadjs: 'readonly', + Shepherd: 'readonly', + Sortable: 'readonly', + once: 'readonly', + CKEditor5: 'readonly', + CKEDITOR: 'readonly', + tabbable: 'readonly', + transliterate: 'readonly', + bodyScrollLock: 'readonly', + FloatingUIDOM: 'readonly', + }, + }, + rules: { + 'prettier/prettier': 'error', + 'no-unexpected-multiline': ['off'], + 'consistent-return': ['off'], + 'no-underscore-dangle': ['off'], + 'max-nested-callbacks': ['warn', 3], + 'import/no-mutable-exports': ['warn'], + 'no-plusplus': [ + 'warn', + { + allowForLoopAfterthoughts: true, + }, + ], + 'no-param-reassign': ['off'], + 'no-prototype-builtins': ['off'], + 'no-unused-vars': ['warn'], + // Kept from the previous ruleset: console calls left in shipped code + // print to every visitor's browser. + 'no-console': 'error', + 'operator-linebreak': [ + 'error', + 'after', + { + overrides: { + '?': 'ignore', + ':': 'ignore', + }, + }, + ], + 'yml/indent': ['error', 2], + // The Drupal docblock style separates the description from the first tag + // with a blank line, which the preset forbids by default. + 'jsdoc/tag-lines': ['warn', 'any', { startLines: 1 }], + // Drupal front-end code documents contracts, not every function. + 'jsdoc/require-jsdoc': ['off'], + ...noJQuery.configs.all.rules, + }, + settings: { + jsdoc: { + tagNamePreference: { + returns: 'return', + property: 'prop', + }, + }, + }, + }, +); diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/js/star_wars.js b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/js/star_wars.js index d81db5a8e2..ff56f0e716 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/js/star_wars.js +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/js/star_wars.js @@ -1,27 +1,25 @@ /** * @file Global theme behaviors. - * @param $ - * @param Drupal - * @global Drupal, JQuery. */ /** - * Global theme behaviors. + * Wraps the behaviors so that anything declared here stays out of the global + * scope. * - * @param {jQuery} $ The jQuery object. - * @param {Drupal} Drupal The Drupal object. + * @param {object} Drupal The Drupal object. */ -(function StarWarsBehaviors($, Drupal) { - Drupal.behaviors.star_wars = { +(function yourSiteThemeBehaviors(Drupal) { + Drupal.behaviors.yourSiteTheme = { attach(context) { - // give me example code here that would be using context with body - $(context) - .find('body') - .once('star-wars-theme') - .each(function iterateBody() { - // Example: Add a class to the body element. - $(this).addClass('star-wars-theme-processed'); - }); + // The context is the document on load and an element on AJAX, and that + // element may be the body itself, so resolve through the owning document. + const body = context.ownerDocument ? context.ownerDocument.body : document.body; + + if (body.classList.contains('star-wars-theme-processed')) { + return; + } + + body.classList.add('star-wars-theme-processed'); }, }; -})(jQuery, Drupal); +})(Drupal); diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/package-lock.json new file mode 100644 index 0000000000..c6c150b2fe --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/package-lock.json @@ -0,0 +1,6231 @@ +{ + "name": "star_wars", + "version": "__VERSION__", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "star_wars", + "version": "__VERSION__", + "hasInstallScript": true, + "devDependencies": { + "@eslint/compat": "__VERSION__", + "@eslint/js": "__VERSION__", + "@homer0/prettier-plugin-jsdoc": "__VERSION__", + "autoprefixer": "__VERSION__", + "chokidar-cli": "__VERSION__", + "eslint": "__VERSION__", + "eslint-config-prettier": "__VERSION__", + "eslint-plugin-import": "__VERSION__", + "eslint-plugin-jsdoc": "__VERSION__", + "eslint-plugin-no-jquery": "__VERSION__", + "eslint-plugin-prettier": "__VERSION__", + "eslint-plugin-yml": "__VERSION__", + "globals": "__VERSION__", + "patch-package": "__VERSION__", + "postcss": "__VERSION__", + "postcss-cli": "__VERSION__", + "prettier": "__VERSION__", + "sass": "__VERSION__", + "stylelint": "__VERSION__", + "stylelint-config-standard": "__VERSION__", + "stylelint-config-standard-scss": "__VERSION__", + "stylelint-order": "__VERSION__", + "stylelint-scss": "__VERSION__", + "terser": "__VERSION__" + } + }, + "node_modules/@babel/code-frame": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "__VERSION__", + "js-tokens": "__VERSION__", + "picocolors": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@cacheable/memory": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/utils": "__VERSION__", + "@keyv/bigmap": "__VERSION__", + "hookified": "__VERSION__", + "keyv": "__VERSION__" + } + }, + "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "__VERSION__", + "hookified": "__VERSION__" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "keyv": "__VERSION__" + } + }, + "node_modules/@cacheable/memory/node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "__VERSION__" + } + }, + "node_modules/@cacheable/utils": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "__VERSION__", + "keyv": "__VERSION__" + } + }, + "node_modules/@cacheable/utils/node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "__VERSION__" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "__VERSION__" + } + }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "peerDependencies": { + "css-tree": "__VERSION__" + }, + "peerDependenciesMeta": { + "css-tree": { + "optional": true + } + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "__VERSION__", + "@csstools/css-tokenizer": "__VERSION__" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss-selector-parser": "__VERSION__" + } + }, + "node_modules/@dual-bundle/import-meta-resolve": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/JounQin" + } + }, + "node_modules/@es-joy/jsdoccomment": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "__VERSION__", + "@typescript-eslint/types": "__VERSION__", + "comment-parser": "__VERSION__", + "esquery": "__VERSION__", + "jsdoc-type-pratt-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + } + }, + "node_modules/@es-joy/resolve.exports": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/compat": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + }, + "peerDependencies": { + "eslint": "^8.40 || 9 || 10" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/@eslint/compat/node_modules/@eslint/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + } + }, + "node_modules/@eslint/config-array": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "__VERSION__", + "debug": "__VERSION__", + "minimatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "__VERSION__", + "debug": "__VERSION__", + "espree": "__VERSION__", + "globals": "__VERSION__", + "ignore": "__VERSION__", + "import-fresh": "__VERSION__", + "js-yaml": "__VERSION__", + "minimatch": "__VERSION__", + "strip-json-comments": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "__VERSION__", + "levn": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@homer0/prettier-plugin-jsdoc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@homer0/prettier-plugin-jsdoc/-/prettier-plugin-jsdoc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "comment-parser": "__VERSION__", + "ramda": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "prettier": "__VERSION__" + } + }, + "node_modules/@humanfs/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/types": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@humanfs/node": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "__VERSION__", + "@humanfs/types": "__VERSION__", + "@humanwhocodes/retry": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@humanfs/types": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "__VERSION__", + "@jridgewell/trace-mapping": "__VERSION__" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "__VERSION__", + "@jridgewell/trace-mapping": "__VERSION__" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "__VERSION__", + "@jridgewell/sourcemap-codec": "__VERSION__" + } + }, + "node_modules/@keyv/serialize": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "__VERSION__", + "run-parallel": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "__VERSION__", + "fastq": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@parcel/watcher": { + "version": "__VERSION__", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "__VERSION__", + "is-glob": "__VERSION__", + "node-addon-api": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "__VERSION__", + "@parcel/watcher-darwin-arm64": "__VERSION__", + "@parcel/watcher-darwin-x64": "__VERSION__", + "@parcel/watcher-freebsd-x64": "__VERSION__", + "@parcel/watcher-linux-arm-glibc": "__VERSION__", + "@parcel/watcher-linux-arm-musl": "__VERSION__", + "@parcel/watcher-linux-arm64-glibc": "__VERSION__", + "@parcel/watcher-linux-arm64-musl": "__VERSION__", + "@parcel/watcher-linux-x64-glibc": "__VERSION__", + "@parcel/watcher-linux-x64-musl": "__VERSION__", + "@parcel/watcher-win32-arm64": "__VERSION__", + "@parcel/watcher-win32-ia32": "__VERSION__", + "@parcel/watcher-win32-x64": "__VERSION__" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "__VERSION__", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher/node_modules/picomatch": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@pkgr/core": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@rtsao/scc": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@sindresorhus/base62": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@types/estree": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/types": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@yarnpkg/lockfile": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/acorn": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/acorn-jsx": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "__VERSION__ || __VERSION__ || __VERSION__" + } + }, + "node_modules/ajv": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "__VERSION__", + "fast-json-stable-stringify": "__VERSION__", + "json-schema-traverse": "__VERSION__", + "uri-js": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/ansi-styles": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/are-docs-informative": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/argparse": { + "version": "__VERSION__", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "is-array-buffer": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-object-atoms": "__VERSION__", + "get-intrinsic": "__VERSION__", + "is-string": "__VERSION__", + "math-intrinsics": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "es-shim-unscopables": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-shim-unscopables": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-shim-unscopables": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "__VERSION__", + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "is-array-buffer": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/astral-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/async-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/autoprefixer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__", + "caniuse-lite": "__VERSION__", + "fraction.js": "__VERSION__", + "picocolors": "__VERSION__", + "postcss-value-parser": "__VERSION__" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/available-typed-arrays": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/binary-extensions": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "__VERSION__", + "concat-map": "__VERSION__" + } + }, + "node_modules/brace-expansion/node_modules/balanced-match": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/braces": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/browserslist": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": { + "baseline-browser-mapping": "__VERSION__", + "caniuse-lite": "__VERSION__", + "electron-to-chromium": "__VERSION__", + "node-releases": "__VERSION__", + "update-browserslist-db": "__VERSION__" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/memory": "__VERSION__", + "@cacheable/utils": "__VERSION__", + "hookified": "__VERSION__", + "keyv": "__VERSION__", + "qified": "__VERSION__" + } + }, + "node_modules/cacheable/node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "__VERSION__" + } + }, + "node_modules/call-bind": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "es-define-property": "__VERSION__", + "get-intrinsic": "__VERSION__", + "set-function-length": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "function-bind": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/camelcase": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/caniuse-lite": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "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": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "supports-color": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "__VERSION__", + "braces": "__VERSION__", + "glob-parent": "__VERSION__", + "is-binary-path": "__VERSION__", + "is-glob": "__VERSION__", + "normalize-path": "__VERSION__", + "readdirp": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "__VERSION__" + } + }, + "node_modules/chokidar-cli": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "__VERSION__", + "lodash.debounce": "__VERSION__", + "lodash.throttle": "__VERSION__", + "yargs": "__VERSION__" + }, + "bin": { + "chokidar": "index.js" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/ci-info": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cliui": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__", + "wrap-ansi": "__VERSION__" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/color-convert": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/color-name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/colord": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/comment-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/concat-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "__VERSION__", + "import-fresh": "__VERSION__", + "js-yaml": "__VERSION__", + "parse-json": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": "__VERSION__" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cross-spawn": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "__VERSION__", + "shebang-command": "__VERSION__", + "which": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/which/-/which-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "__VERSION__" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-functions-list": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/css-tree": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "__VERSION__", + "source-map-js": "__VERSION__" + }, + "engines": { + "node": "^10 || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/css-tree/node_modules/mdn-data": { + "version": "__VERSION__", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/cssesc": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/data-view-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-data-view": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-data-view": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-data-view": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/deep-is": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "gopd": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "object-keys": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dependency-graph": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/detect-libc": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/diff-sequences": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/dir-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/doctrine": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/dunder-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "es-errors": "__VERSION__", + "gopd": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/env-paths": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/error-ex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "__VERSION__" + } + }, + "node_modules/es-abstract": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "__VERSION__", + "arraybuffer.prototype.slice": "__VERSION__", + "available-typed-arrays": "__VERSION__", + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "data-view-buffer": "__VERSION__", + "data-view-byte-length": "__VERSION__", + "data-view-byte-offset": "__VERSION__", + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "es-set-tostringtag": "__VERSION__", + "es-to-primitive": "__VERSION__", + "function.prototype.name": "__VERSION__", + "get-intrinsic": "__VERSION__", + "get-proto": "__VERSION__", + "get-symbol-description": "__VERSION__", + "globalthis": "__VERSION__", + "gopd": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "has-proto": "__VERSION__", + "has-symbols": "__VERSION__", + "hasown": "__VERSION__", + "internal-slot": "__VERSION__", + "is-array-buffer": "__VERSION__", + "is-callable": "__VERSION__", + "is-data-view": "__VERSION__", + "is-negative-zero": "__VERSION__", + "is-regex": "__VERSION__", + "is-set": "__VERSION__", + "is-shared-array-buffer": "__VERSION__", + "is-string": "__VERSION__", + "is-typed-array": "__VERSION__", + "is-weakref": "__VERSION__", + "math-intrinsics": "__VERSION__", + "object-inspect": "__VERSION__", + "object-keys": "__VERSION__", + "object.assign": "__VERSION__", + "own-keys": "__VERSION__", + "regexp.prototype.flags": "__VERSION__", + "safe-array-concat": "__VERSION__", + "safe-push-apply": "__VERSION__", + "safe-regex-test": "__VERSION__", + "set-proto": "__VERSION__", + "stop-iteration-iterator": "__VERSION__", + "string.prototype.trim": "__VERSION__", + "string.prototype.trimend": "__VERSION__", + "string.prototype.trimstart": "__VERSION__", + "typed-array-buffer": "__VERSION__", + "typed-array-byte-length": "__VERSION__", + "typed-array-byte-offset": "__VERSION__", + "typed-array-length": "__VERSION__", + "unbox-primitive": "__VERSION__", + "which-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-abstract-get": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "is-callable": "__VERSION__", + "object-inspect": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "has-tostringtag": "__VERSION__", + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-abstract-get": "__VERSION__", + "es-errors": "__VERSION__", + "is-callable": "__VERSION__", + "is-date-object": "__VERSION__", + "is-symbol": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/escape-string-regexp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "__VERSION__", + "@eslint-community/regexpp": "__VERSION__", + "@eslint/config-array": "__VERSION__", + "@eslint/config-helpers": "__VERSION__", + "@eslint/core": "__VERSION__", + "@eslint/eslintrc": "__VERSION__", + "@eslint/js": "__VERSION__", + "@eslint/plugin-kit": "__VERSION__", + "@humanfs/node": "__VERSION__", + "@humanwhocodes/module-importer": "__VERSION__", + "@humanwhocodes/retry": "__VERSION__", + "@types/estree": "__VERSION__", + "ajv": "__VERSION__", + "chalk": "__VERSION__", + "cross-spawn": "__VERSION__", + "debug": "__VERSION__", + "escape-string-regexp": "__VERSION__", + "eslint-scope": "__VERSION__", + "eslint-visitor-keys": "__VERSION__", + "espree": "__VERSION__", + "esquery": "__VERSION__", + "esutils": "__VERSION__", + "fast-deep-equal": "__VERSION__", + "file-entry-cache": "__VERSION__", + "find-up": "__VERSION__", + "glob-parent": "__VERSION__", + "ignore": "__VERSION__", + "imurmurhash": "__VERSION__", + "is-glob": "__VERSION__", + "json-stable-stringify-without-jsonify": "__VERSION__", + "lodash.merge": "__VERSION__", + "minimatch": "__VERSION__", + "natural-compare": "__VERSION__", + "optionator": "__VERSION__" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-compat-utils": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "eslint": "__VERSION__" + } + }, + "node_modules/eslint-compat-utils/node_modules/semver": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/eslint-config-prettier": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": "__VERSION__" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "__VERSION__", + "is-core-module": "__VERSION__", + "resolve": "__VERSION__" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + } + }, + "node_modules/eslint-module-utils": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + } + }, + "node_modules/eslint-plugin-import": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "__VERSION__", + "array-includes": "__VERSION__", + "array.prototype.findlastindex": "__VERSION__", + "array.prototype.flat": "__VERSION__", + "array.prototype.flatmap": "__VERSION__", + "debug": "__VERSION__", + "doctrine": "__VERSION__", + "eslint-import-resolver-node": "__VERSION__", + "eslint-module-utils": "__VERSION__", + "hasown": "__VERSION__", + "is-core-module": "__VERSION__", + "is-glob": "__VERSION__", + "minimatch": "__VERSION__", + "object.fromentries": "__VERSION__", + "object.groupby": "__VERSION__", + "object.values": "__VERSION__", + "semver": "__VERSION__", + "string.prototype.trimend": "__VERSION__", + "tsconfig-paths": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || __VERSION__ || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + } + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@es-joy/jsdoccomment": "__VERSION__", + "@es-joy/resolve.exports": "__VERSION__", + "are-docs-informative": "__VERSION__", + "comment-parser": "__VERSION__", + "debug": "__VERSION__", + "escape-string-regexp": "__VERSION__", + "espree": "__VERSION__", + "esquery": "__VERSION__", + "html-entities": "__VERSION__", + "object-deep-merge": "__VERSION__", + "parse-imports-exports": "__VERSION__", + "semver": "__VERSION__", + "spdx-expression-parse": "__VERSION__", + "to-valid-identifier": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=24" + }, + "peerDependencies": { + "eslint": "__VERSION__ || __VERSION__ || __VERSION__ || __VERSION__" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/espree": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "__VERSION__", + "acorn-jsx": "__VERSION__", + "eslint-visitor-keys": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/semver": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/eslint-plugin-no-jquery": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": "__VERSION__", + "oxlint": "__VERSION__" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "oxlint": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "__VERSION__", + "synckit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": "__VERSION__", + "eslint": "__VERSION__", + "eslint-config-prettier": ">= __VERSION__ <__VERSION__ || >=__VERSION__", + "prettier": "__VERSION__" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-yml": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "__VERSION__", + "diff-sequences": "__VERSION__", + "escape-string-regexp": "__VERSION__", + "eslint-compat-utils": "__VERSION__", + "natural-compare": "__VERSION__", + "yaml-eslint-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": "__VERSION__" + } + }, + "node_modules/eslint-scope": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "__VERSION__", + "estraverse": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/espree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/espree/-/espree-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "__VERSION__", + "acorn-jsx": "__VERSION__", + "eslint-visitor-keys": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/esrecurse": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/estraverse": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/esutils": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fast-deep-equal": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "__VERSION__", + "@nodelib/fs.walk": "__VERSION__", + "glob-parent": "__VERSION__", + "merge2": "__VERSION__", + "micromatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastest-levenshtein": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/fastq": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "__VERSION__" + } + }, + "node_modules/file-entry-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fill-range": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/find-up": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "__VERSION__", + "path-exists": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-yarn-workspace-root": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "micromatch": "__VERSION__" + } + }, + "node_modules/flat-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "__VERSION__", + "keyv": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/flatted": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fraction.js": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs-extra": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "__VERSION__", + "jsonfile": "__VERSION__", + "universalify": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fsevents": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/function-bind": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "functions-have-names": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "hasown": "__VERSION__", + "is-callable": "__VERSION__", + "is-document.all": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-caller-file": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "function-bind": "__VERSION__", + "get-proto": "__VERSION__", + "gopd": "__VERSION__", + "has-symbols": "__VERSION__", + "hasown": "__VERSION__", + "math-intrinsics": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "__VERSION__" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-modules": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/global-prefix": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "__VERSION__", + "kind-of": "__VERSION__", + "which": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/globals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "__VERSION__", + "gopd": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globby/-/globby-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "__VERSION__", + "dir-glob": "__VERSION__", + "fast-glob": "__VERSION__", + "ignore": "__VERSION__", + "merge2": "__VERSION__", + "slash": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/slash/-/slash-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/globjoin": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/gopd": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/has-bigints": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/has-property-descriptors": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hashery": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/hasown": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hookified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/html-entities": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/html-tags": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ignore": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "__VERSION__", + "resolve-from": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/imurmurhash": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/ini": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "hasown": "__VERSION__", + "side-channel": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "__VERSION__", + "call-bound": "__VERSION__", + "get-proto": "__VERSION__", + "has-tostringtag": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-boolean-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__", + "is-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-document.all": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-finalizationregistry": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-generator-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "generator-function": "__VERSION__", + "get-proto": "__VERSION__", + "has-tostringtag": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-number-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "gopd": "__VERSION__", + "has-tostringtag": "__VERSION__", + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-symbols": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/isarray": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/js-tokens": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "__VERSION__" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/json-buffer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "isarray": "__VERSION__", + "jsonify": "__VERSION__", + "object-keys": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "__VERSION__" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "__VERSION__" + }, + "optionalDependencies": { + "graceful-fs": "__VERSION__" + } + }, + "node_modules/jsonify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Public Domain", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "__VERSION__" + } + }, + "node_modules/kind-of": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/klaw-sync": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "__VERSION__" + } + }, + "node_modules/known-css-properties": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/levn": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "__VERSION__", + "type-check": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/lilconfig": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.debounce": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.throttle": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mathml-tag-names": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdn-data": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/meow": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/meow/-/meow-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/minimatch": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "__VERSION__" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=__VERSION__" + } + }, + "node_modules/natural-compare": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/node-addon-api": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-exports-info": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.flatmap": "__VERSION__", + "es-errors": "__VERSION__", + "object.entries": "__VERSION__", + "semver": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/node-releases": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/normalize-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/object-deep-merge": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/object-inspect": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__", + "has-symbols": "__VERSION__", + "object-keys": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/open": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "__VERSION__", + "is-wsl": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "__VERSION__", + "fast-levenshtein": "__VERSION__", + "levn": "__VERSION__", + "prelude-ls": "__VERSION__", + "type-check": "__VERSION__", + "word-wrap": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/own-keys": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "__VERSION__", + "object-keys": "__VERSION__", + "safe-push-apply": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/parent-module": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/parse-imports-exports": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-statements": "__VERSION__" + } + }, + "node_modules/parse-json": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "__VERSION__", + "error-ex": "__VERSION__", + "json-parse-even-better-errors": "__VERSION__", + "lines-and-columns": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-statements": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/patch-package": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@yarnpkg/lockfile": "__VERSION__", + "chalk": "__VERSION__", + "ci-info": "__VERSION__", + "cross-spawn": "__VERSION__", + "find-yarn-workspace-root": "__VERSION__", + "fs-extra": "__VERSION__", + "json-stable-stringify": "__VERSION__", + "klaw-sync": "__VERSION__", + "minimist": "__VERSION__", + "open": "__VERSION__", + "semver": "__VERSION__", + "slash": "__VERSION__", + "tmp": "__VERSION__", + "yaml": "__VERSION__" + }, + "bin": { + "patch-package": "index.js" + }, + "engines": { + "node": "__VERSION__", + "npm": ">5" + } + }, + "node_modules/patch-package/node_modules/fs-extra": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "__VERSION__", + "jsonfile": "__VERSION__", + "universalify": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/patch-package/node_modules/semver": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/path-exists": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/path-key": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/path-parse": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/picocolors": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/possible-typed-array-names": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__", + "picocolors": "__VERSION__", + "source-map-js": "__VERSION__" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-cli": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "__VERSION__", + "dependency-graph": "__VERSION__", + "fs-extra": "__VERSION__", + "picocolors": "__VERSION__", + "postcss-load-config": "__VERSION__", + "postcss-reporter": "__VERSION__", + "pretty-hrtime": "__VERSION__", + "read-cache": "__VERSION__", + "slash": "__VERSION__", + "tinyglobby": "__VERSION__", + "yargs": "__VERSION__" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-cli/node_modules/cliui": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__", + "wrap-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-cli/node_modules/slash": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss-cli/node_modules/wrap-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/postcss-cli/node_modules/y18n": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-cli/node_modules/yargs": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "__VERSION__", + "escalade": "__VERSION__", + "get-caller-file": "__VERSION__", + "require-directory": "__VERSION__", + "string-width": "__VERSION__", + "y18n": "__VERSION__", + "yargs-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-cli/node_modules/yargs-parser": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-load-config": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "__VERSION__", + "yaml": "__VERSION__" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": "__VERSION__", + "postcss": "__VERSION__", + "tsx": "__VERSION__" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + } + } + }, + "node_modules/postcss-media-query-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-reporter": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "picocolors": "__VERSION__", + "thenby": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-safe-parser": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-scss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-selector-parser": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "__VERSION__", + "util-deprecate": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-sorting": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-value-parser": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/prettier": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/pretty-hrtime": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/punycode": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/qified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/qified/-/qified-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/qified/node_modules/hookified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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/ramda": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ramda" + } + }, + "node_modules/read-cache": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "__VERSION__" + } + }, + "node_modules/readdirp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "get-intrinsic": "__VERSION__", + "get-proto": "__VERSION__", + "which-builtin-type": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-errors": "__VERSION__", + "get-proto": "__VERSION__", + "gopd": "__VERSION__", + "set-function-name": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/require-from-string": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/require-main-filename": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/reserved-identifiers": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/resolve": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "is-core-module": "__VERSION__", + "node-exports-info": "__VERSION__", + "object-keys": "__VERSION__", + "path-parse": "__VERSION__", + "supports-preserve-symlinks-flag": "__VERSION__" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/reusify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "iojs": "__VERSION__", + "node": "__VERSION__" + } + }, + "node_modules/run-parallel": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__" + } + }, + "node_modules/safe-array-concat": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__", + "has-symbols": "__VERSION__", + "isarray": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "isarray": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-regex": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sass": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/sass/-/sass-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "__VERSION__", + "immutable": "__VERSION__", + "source-map-js": ">=__VERSION__ <__VERSION__" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": "__VERSION__" + }, + "optionalDependencies": { + "@parcel/watcher": "__VERSION__" + } + }, + "node_modules/sass/node_modules/chokidar": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/semver": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-blocking": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/set-function-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "__VERSION__", + "es-errors": "__VERSION__", + "function-bind": "__VERSION__", + "get-intrinsic": "__VERSION__", + "gopd": "__VERSION__", + "has-property-descriptors": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "__VERSION__", + "es-errors": "__VERSION__", + "functions-have-names": "__VERSION__", + "has-property-descriptors": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/shebang-regex": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/side-channel": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "object-inspect": "__VERSION__", + "side-channel-list": "__VERSION__", + "side-channel-map": "__VERSION__", + "side-channel-weakmap": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "object-inspect": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "object-inspect": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "object-inspect": "__VERSION__", + "side-channel-map": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/slice-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "astral-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/source-map": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/source-map-js": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/source-map-support": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "__VERSION__", + "source-map": "__VERSION__" + } + }, + "node_modules/spdx-exceptions": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "__VERSION__", + "spdx-license-ids": "__VERSION__" + } + }, + "node_modules/spdx-license-ids": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/stop-iteration-iterator": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "internal-slot": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string-width": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/string.prototype.trim": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-data-property": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-object-atoms": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/strip-bom": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/strip-json-comments": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/css-parser-algorithms": "__VERSION__", + "@csstools/css-syntax-patches-for-csstree": "__VERSION__", + "@csstools/css-tokenizer": "__VERSION__", + "@csstools/media-query-list-parser": "__VERSION__", + "@csstools/selector-specificity": "__VERSION__", + "@dual-bundle/import-meta-resolve": "__VERSION__", + "balanced-match": "__VERSION__", + "colord": "__VERSION__", + "cosmiconfig": "__VERSION__", + "css-functions-list": "__VERSION__", + "css-tree": "__VERSION__", + "debug": "__VERSION__", + "fast-glob": "__VERSION__", + "fastest-levenshtein": "__VERSION__", + "file-entry-cache": "__VERSION__", + "global-modules": "__VERSION__", + "globby": "__VERSION__", + "globjoin": "__VERSION__", + "html-tags": "__VERSION__", + "ignore": "__VERSION__", + "imurmurhash": "__VERSION__", + "is-plain-object": "__VERSION__", + "known-css-properties": "__VERSION__", + "mathml-tag-names": "__VERSION__", + "meow": "__VERSION__", + "micromatch": "__VERSION__", + "normalize-path": "__VERSION__", + "picocolors": "__VERSION__", + "postcss": "__VERSION__", + "postcss-resolve-nested-selector": "__VERSION__", + "postcss-safe-parser": "__VERSION__", + "postcss-selector-parser": "__VERSION__", + "postcss-value-parser": "__VERSION__", + "resolve-from": "__VERSION__", + "string-width": "__VERSION__", + "supports-hyperlinks": "__VERSION__", + "svg-tags": "__VERSION__", + "table": "__VERSION__", + "write-file-atomic": "__VERSION__" + }, + "bin": { + "stylelint": "bin/stylelint.mjs" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__" + } + }, + "node_modules/stylelint-config-recommended-scss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-scss": "__VERSION__", + "stylelint-config-recommended": "__VERSION__", + "stylelint-scss": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__", + "stylelint": "__VERSION__" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/stylelint-config-standard": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "stylelint-config-recommended": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__" + } + }, + "node_modules/stylelint-config-standard-scss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "stylelint-config-recommended-scss": "__VERSION__", + "stylelint-config-standard": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__", + "stylelint": "__VERSION__" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/stylelint-order": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss": "__VERSION__", + "postcss-sorting": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__ || __VERSION__" + } + }, + "node_modules/stylelint-scss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "__VERSION__", + "is-plain-object": "__VERSION__", + "known-css-properties": "__VERSION__", + "mdn-data": "__VERSION__", + "postcss-media-query-parser": "__VERSION__", + "postcss-resolve-nested-selector": "__VERSION__", + "postcss-selector-parser": "__VERSION__", + "postcss-value-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__" + } + }, + "node_modules/stylelint/node_modules/file-entry-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "__VERSION__" + } + }, + "node_modules/stylelint/node_modules/flat-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "cacheable": "__VERSION__", + "flatted": "__VERSION__", + "hookified": "__VERSION__" + } + }, + "node_modules/stylelint/node_modules/ignore": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/supports-color": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/supports-hyperlinks": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "__VERSION__", + "supports-color": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-tags": { + "version": "__VERSION__", + "dev": true + }, + "node_modules/synckit": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/table": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "__VERSION__", + "lodash.truncate": "__VERSION__", + "slice-ansi": "__VERSION__", + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "__VERSION__", + "fast-uri": "__VERSION__", + "json-schema-traverse": "__VERSION__", + "require-from-string": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/terser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/terser/-/terser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "__VERSION__", + "acorn": "__VERSION__", + "commander": "__VERSION__", + "source-map-support": "__VERSION__" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/thenby": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tinyglobby": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tmp": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/to-regex-range": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/to-valid-identifier": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/base62": "__VERSION__", + "reserved-identifiers": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tsconfig-paths": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "__VERSION__", + "json5": "__VERSION__", + "minimist": "__VERSION__", + "strip-bom": "__VERSION__" + } + }, + "node_modules/type-check": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/typed-array-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "for-each": "__VERSION__", + "gopd": "__VERSION__", + "has-proto": "__VERSION__", + "is-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "__VERSION__", + "call-bind": "__VERSION__", + "for-each": "__VERSION__", + "gopd": "__VERSION__", + "has-proto": "__VERSION__", + "is-typed-array": "__VERSION__", + "reflect.getprototypeof": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "for-each": "__VERSION__", + "gopd": "__VERSION__", + "is-typed-array": "__VERSION__", + "possible-typed-array-names": "__VERSION__", + "reflect.getprototypeof": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-bigints": "__VERSION__", + "has-symbols": "__VERSION__", + "which-boxed-primitive": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/universalify": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/update-browserslist-db": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__", + "picocolors": "__VERSION__" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= __VERSION__" + } + }, + "node_modules/uri-js": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "__VERSION__" + } + }, + "node_modules/util-deprecate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "__VERSION__" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "__VERSION__", + "is-boolean-object": "__VERSION__", + "is-number-object": "__VERSION__", + "is-string": "__VERSION__", + "is-symbol": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "function.prototype.name": "__VERSION__", + "has-tostringtag": "__VERSION__", + "is-async-function": "__VERSION__", + "is-date-object": "__VERSION__", + "is-finalizationregistry": "__VERSION__", + "is-generator-function": "__VERSION__", + "is-regex": "__VERSION__", + "is-weakref": "__VERSION__", + "isarray": "__VERSION__", + "which-boxed-primitive": "__VERSION__", + "which-collection": "__VERSION__", + "which-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "__VERSION__", + "is-set": "__VERSION__", + "is-weakmap": "__VERSION__", + "is-weakset": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/which-typed-array": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "__VERSION__", + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "for-each": "__VERSION__", + "get-proto": "__VERSION__", + "gopd": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/write-file-atomic": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "__VERSION__", + "signal-exit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/y18n": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yaml-eslint-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "__VERSION__", + "yaml": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, + "node_modules/yargs": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "__VERSION__", + "find-up": "__VERSION__", + "get-caller-file": "__VERSION__", + "require-directory": "__VERSION__", + "require-main-filename": "__VERSION__", + "set-blocking": "__VERSION__", + "string-width": "__VERSION__", + "which-module": "__VERSION__", + "y18n": "__VERSION__", + "yargs-parser": "__VERSION__" + } + }, + "node_modules/yargs-parser": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "__VERSION__", + "decamelize": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/find-up": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "__VERSION__", + "path-exists": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/path-exists": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yocto-queue": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/package.json b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/package.json index c5919a9ad6..8b92630322 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/package.json +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/docroot/themes/custom/star_wars/package.json @@ -4,17 +4,19 @@ "private": true, "description": "NodeJS dependencies for star wars project", "devDependencies": { + "@eslint/compat": "__VERSION__", + "@eslint/js": "__VERSION__", "@homer0/prettier-plugin-jsdoc": "__VERSION__", "autoprefixer": "__VERSION__", "chokidar-cli": "__VERSION__", "eslint": "__VERSION__", - "eslint-config-airbnb-base": "__VERSION__", "eslint-config-prettier": "__VERSION__", "eslint-plugin-import": "__VERSION__", "eslint-plugin-jsdoc": "__VERSION__", "eslint-plugin-no-jquery": "__VERSION__", "eslint-plugin-prettier": "__VERSION__", "eslint-plugin-yml": "__VERSION__", + "globals": "__VERSION__", "patch-package": "__VERSION__", "postcss": "__VERSION__", "postcss-cli": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/eslint.config.mjs b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/eslint.config.mjs new file mode 100644 index 0000000000..93be696e40 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/eslint.config.mjs @@ -0,0 +1,19 @@ +@@ -16,12 +16,12 @@ + ignores: [ + 'node_modules/**/*', + 'vendor/**/*', +- 'web/core/**/*', +- 'web/libraries/**/*', +- 'web/modules/contrib/**/*', +- 'web/profiles/contrib/**/*', +- 'web/themes/contrib/**/*', +- 'web/sites/*/files/**/*', ++ 'docroot/core/**/*', ++ 'docroot/libraries/**/*', ++ 'docroot/modules/contrib/**/*', ++ 'docroot/profiles/contrib/**/*', ++ 'docroot/themes/contrib/**/*', ++ 'docroot/sites/*/files/**/*', + '**/build/**/*', + '**/*.min.js', + ], diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/package.json b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/package.json index 3023cd9a8d..c471131aa6 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/package.json +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/package.json @@ -2,15 +2,15 @@ "node": ">= __VERSION__" }, "scripts": { -- "lint-js": "eslint web/modules/custom --ext .js --max-warnings=0 --no-error-on-unmatched-pattern", +- "lint-js": "eslint web/modules/custom --max-warnings=0 --no-error-on-unmatched-pattern", - "lint-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\"", -+ "lint-js": "eslint docroot/modules/custom --ext .js --max-warnings=0 --no-error-on-unmatched-pattern", ++ "lint-js": "eslint docroot/modules/custom --max-warnings=0 --no-error-on-unmatched-pattern", + "lint-css": "stylelint --allow-empty-input \"docroot/modules/custom/**/*.css\"", - "lint": "yarn run lint-js && yarn run lint-css", -- "lint-fix-js": "eslint web/modules/custom --ext .js --no-error-on-unmatched-pattern --fix", + "lint": "npm run lint-js && npm run lint-css", +- "lint-fix-js": "eslint web/modules/custom --no-error-on-unmatched-pattern --fix", - "lint-fix-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\" --fix", -+ "lint-fix-js": "eslint docroot/modules/custom --ext .js --no-error-on-unmatched-pattern --fix", ++ "lint-fix-js": "eslint docroot/modules/custom --no-error-on-unmatched-pattern --fix", + "lint-fix-css": "stylelint --allow-empty-input \"docroot/modules/custom/**/*.css\" --fix", - "lint-fix": "yarn run lint-fix-js && yarn run lint-fix-css", + "lint-fix": "npm run lint-fix-js && npm run lint-fix-css", "test": "jest --coverage --passWithNoTests" }, diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/rector.php b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/rector.php index 29fec454e9..c1f2ff0845 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/rector.php +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/rector.php @@ -17,8 +17,8 @@ RenameVariableToMatchNewTypeRector::class, SimplifyEmptyCheckOnEmptyArrayRector::class, StringClassNameToClassConstantRector::class => [ -- __DIR__ . '/web/sites/default/includes/**/*', -+ __DIR__ . '/docroot/sites/default/includes/**/*', +- __DIR__ . '/web/sites/default/includes/*', ++ __DIR__ . '/docroot/sites/default/includes/*', ], // Directories to skip. '*/vendor/*', diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/tests/phpunit/Drupal/EnvironmentSettingsTest.php index 105f4ce73d..6a29e7fef9 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/tests/phpunit/Drupal/EnvironmentSettingsTest.php +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/tests/phpunit/Drupal/EnvironmentSettingsTest.php @@ -50,9 +50,9 @@ /** @@ -384,6 +428,349 @@ + $settings['maintenance_theme'] = 'claro'; $settings['skip_permissions_hardening'] = TRUE; $settings['config_sync_directory'] = '../config/default'; - $settings['suspend_mail_send'] = TRUE; + $settings['trusted_host_patterns'] = [ + '^localhost$', + '^127\.0\.0\.1$', diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/tests/phpunit/Drupal/SettingsTestCase.php b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/tests/phpunit/Drupal/SettingsTestCase.php index 5401f46011..051064cd21 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/tests/phpunit/Drupal/SettingsTestCase.php +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/tests/phpunit/Drupal/SettingsTestCase.php @@ -1,4 +1,4 @@ -@@ -214,7 +214,7 @@ +@@ -204,7 +204,7 @@ * Require settings file. */ protected function requireSettingsFile(array $pre_settings = [], array $pre_config = []): void { diff --git a/.vortex/cli/tests/Fixtures/handler_process/custom_modules_none/web/modules/custom/sw_base/-sw_base.module b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/web/themes/custom/star_wars/-eslint.config.mjs similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/custom_modules_none/web/modules/custom/sw_base/-sw_base.module rename to .vortex/cli/tests/Fixtures/handler_process/hosting_acquia/web/themes/custom/star_wars/-eslint.config.mjs diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/web/modules/custom/sw_base/-sw_base.module b/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/web/themes/custom/star_wars/-package-lock.json similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/hosting_acquia/web/modules/custom/sw_base/-sw_base.module rename to .vortex/cli/tests/Fixtures/handler_process/hosting_acquia/web/themes/custom/star_wars/-package-lock.json diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_lagoon/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/hosting_lagoon/.github/workflows/build-test-deploy.yml index 5d1a7f2bc9..3569e59c68 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_lagoon/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_lagoon/.github/workflows/build-test-deploy.yml @@ -1,4 +1,4 @@ -@@ -248,6 +248,15 @@ +@@ -274,6 +274,15 @@ - name: Login to container registry run: ./vendor/bin/vortex-login-container-registry @@ -14,7 +14,7 @@ # On the first build of the day (cache miss), fetch a fresh DB dump. # On subsequent builds, the restored cache already contains the dump and # the fetch script skips itself, leaving no semaphore file behind. -@@ -553,7 +562,6 @@ +@@ -589,7 +598,6 @@ VORTEX_DEPLOY_PR: ${{ env.DEPLOY_PR_NUMBER || github.event.number }} VORTEX_DEPLOY_PR_HEAD: ${{ env.DEPLOY_PR_HEAD_SHA || github.event.pull_request.head.sha }} VORTEX_DEPLOY_PR_LABELS: ${{ join(github.event.pull_request.labels.*.name, ',') }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_lagoon/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/hosting_lagoon/docker-compose.yml index 7464d839bc..274b83248e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_lagoon/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_lagoon/docker-compose.yml @@ -6,7 +6,7 @@ x-environment: &default-environment TZ: ${TZ:-UTC} # Pass-through 'CI' variable used to identify the CI environment. -@@ -105,6 +106,10 @@ +@@ -106,6 +107,10 @@ wait-for-dependencies: condition: service_completed_successfully user: root @@ -17,7 +17,7 @@ webserver: build: -@@ -125,6 +130,11 @@ +@@ -126,6 +131,11 @@ networks: - default # This is a standard network and is used for all other environments, where requests routing is not required and/or not supported. - amazeeio-network ### This network is supported by Pygmy and used to route all requests to host machine locally. Removed in CI. @@ -29,7 +29,7 @@ # PHP FPM container. All web requests are going through this container. appserver: -@@ -140,6 +150,11 @@ +@@ -141,6 +151,11 @@ <<: [ *default-volumes, *default-user ] depends_on: - cli @@ -41,7 +41,7 @@ database: build: -@@ -152,9 +167,13 @@ +@@ -153,9 +168,13 @@ <<: *default-user ports: - '3306' # Database port in a container. Find port on host with `ahoy info` or `docker compose port database 3306`. @@ -55,7 +55,7 @@ search: build: -@@ -166,6 +185,8 @@ +@@ -167,6 +186,8 @@ - search:/var/solr ports: - '8983' # Solr port in a container. Find port on host with `ahoy info` or `docker compose port search 8983`. @@ -64,7 +64,7 @@ antivirus: build: -@@ -177,6 +198,10 @@ +@@ -178,6 +199,10 @@ - '3310' # Find port on host with `docker compose port antivirus 3310`. networks: - default @@ -75,7 +75,7 @@ # Browser container, used for browser testing. browser: -@@ -189,6 +214,8 @@ +@@ -190,6 +215,8 @@ ports: - '7900' # Find port on host with `docker compose port browser 7900`. shm_size: '1gb' # Increase '/dev/shm' partition size to avoid browser crashing. @@ -84,7 +84,7 @@ # Helper container to wait for services to become available. wait-for-dependencies: -@@ -204,6 +231,8 @@ +@@ -205,6 +232,8 @@ - cache:6379 - search:8983 - curl -s "http://search:8983/solr/drupal/select?q=*:*&rows=0&wt=json" | grep response diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/.eslintignore b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/.eslintignore deleted file mode 100644 index 551adc1511..0000000000 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/.eslintignore +++ /dev/null @@ -1,17 +0,0 @@ -@@ -1,10 +1,10 @@ - node_modules/ - vendor/ --web/core/ --web/libraries/ --web/modules/contrib/ --web/profiles/contrib/ --web/themes/contrib/ --web/sites/*/files/ -+docroot/core/ -+docroot/libraries/ -+docroot/modules/contrib/ -+docroot/profiles/contrib/ -+docroot/themes/contrib/ -+docroot/sites/*/files/ - *.min.js - *.min.css diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/.github/workflows/build-test-deploy.yml index 4a1f7edb31..8936035f4d 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/.github/workflows/build-test-deploy.yml @@ -1,4 +1,4 @@ -@@ -256,6 +256,9 @@ +@@ -282,6 +282,9 @@ VORTEX_FETCH_DB_SEMAPHORE=/tmp/fetch-db-success ./vendor/bin/vortex-fetch-db echo "db_hash=${{ hashFiles('.data') }}" >> "$GITHUB_ENV" timeout-minutes: 30 @@ -8,7 +8,7 @@ - name: Build stack run: docker compose up --detach && docker builder prune --all --force && docker image prune --force -@@ -479,6 +482,24 @@ +@@ -515,6 +518,24 @@ - name: Build stack run: docker compose up --detach && docker builder prune --all --force && docker image prune --force @@ -16,7 +16,7 @@ + if: ${{ contains(env.VORTEX_DEPLOY_TYPES, 'artifact') }} + run: | + mkdir -p "/tmp/workspace/code" "/tmp/artifacts" -+ docker compose cp -L cli:"/app/." "/tmp/workspace/code" ++ docker compose --progress quiet cp -L cli:"/app/." "/tmp/workspace/code" + tar -C /tmp/workspace -cpf /tmp/artifacts/code.tar code + du -sh "/tmp/artifacts" + @@ -33,7 +33,7 @@ deploy: runs-on: ubuntu-latest needs: [test, lint, build] -@@ -533,6 +554,20 @@ +@@ -569,6 +590,20 @@ - name: Load environment variables from .env run: t=$(mktemp) && export -p >"${t}" && set -a && . ./.env && set +a && . "${t}" && env >> "$GITHUB_ENV" @@ -54,7 +54,7 @@ - name: Add SSH private key to the runner if: ${{ env.VORTEX_DEPLOY_SSH_PRIVATE_KEY != '' }} uses: shimataro/ssh-key-action@__HASH__ # __VERSION__ -@@ -553,7 +588,11 @@ +@@ -589,7 +624,11 @@ VORTEX_DEPLOY_PR: ${{ env.DEPLOY_PR_NUMBER || github.event.number }} VORTEX_DEPLOY_PR_HEAD: ${{ env.DEPLOY_PR_HEAD_SHA || github.event.pull_request.head.sha }} VORTEX_DEPLOY_PR_LABELS: ${{ join(github.event.pull_request.labels.*.name, ',') }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/.gitignore b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/.gitignore index 219d7b539a..686ba22fb8 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/.gitignore +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/.gitignore @@ -42,7 +42,7 @@ # Composer installs contrib recipes into 'recipes/', next to custom recipes, # so recipes stay an allow list: un-ignore custom recipes explicitly. -@@ -41,10 +41,10 @@ +@@ -43,10 +43,10 @@ # Dependencies. /vendor /node_modules diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/.gitignore.artifact b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/.gitignore.artifact index 240f4553b0..3d76998da6 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/.gitignore.artifact +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/.gitignore.artifact @@ -31,8 +31,6 @@ docroot/sites/simpletest /.docker /.dockerignore /.editorconfig -/.eslintignore -/.eslintrc.json /.gitattributes /.github /.gitignore.artifact @@ -45,6 +43,7 @@ docroot/sites/simpletest /AGENTS.md /CLAUDE.md /docker-compose.yml +/eslint.config.mjs /renovate.json # Database cache key files written into the workspace by the CI workflow. @@ -76,18 +75,17 @@ docroot/sites/simpletest /package-lock.json /patches /patches.lock.json -/yarn.lock docroot/themes/**/node_modules # Custom theme asset sources - only compiled assets in 'build' are deployed. -docroot/themes/custom/star_wars/.eslintrc.json +docroot/themes/custom/star_wars/eslint.config.mjs docroot/themes/custom/star_wars/fonts docroot/themes/custom/star_wars/images docroot/themes/custom/star_wars/js docroot/themes/custom/star_wars/package.json +docroot/themes/custom/star_wars/package-lock.json docroot/themes/custom/star_wars/postcss.config.js docroot/themes/custom/star_wars/scss -docroot/themes/custom/star_wars/yarn.lock # Caches, data, logs and temporary artifacts. .artifacts diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/composer.json b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/composer.json index 80ae364d91..be9c53acca 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/composer.json +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/composer.json @@ -1,4 +1,4 @@ -@@ -126,38 +126,38 @@ +@@ -127,38 +127,38 @@ "[web-root]/update.php": false }, "locations": { diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docker-compose.yml index c5d1d602dc..0801770da0 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docker-compose.yml @@ -1,4 +1,4 @@ -@@ -69,10 +69,10 @@ +@@ -70,10 +70,10 @@ # All application files mounted into container. - .:/app:${VOLUME_FLAGS:-delegated} ### Local overrides to mount host filesystem. Automatically removed in CI and PROD. # Override mount for files to allow different type of syncing for optimised performance. diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php index a21b36e7e0..03c3132eb0 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php @@ -107,6 +107,16 @@ public function run(): void { $this->moduleInstaller->install(['sw_search']); $this->moduleInstaller->install(['sw_demo']); + + // The module creates its content while it installs, and only when + // GENERATED_CONTENT_CREATE is set, so it installs after the modules that + // supply the generated content plugins. + if (getenv('DRUPAL_GENERATED_CONTENT_SKIP') !== '1') { + putenv('GENERATED_CONTENT_CREATE=1'); + } + + $this->moduleInstaller->install(['generated_content']); + putenv('GENERATED_CONTENT_CREATE'); } } diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/modules/custom/sw_base/sw_base.module b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/modules/custom/sw_base/sw_base.module deleted file mode 100644 index 36cf4aae82..0000000000 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/modules/custom/sw_base/sw_base.module +++ /dev/null @@ -1,22 +0,0 @@ -getProperty($property); - return $property->getValue($class); + return $property->getValue($object); } } diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/modules/custom/sw_demo/js/tests/sw_demo.test.js b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/modules/custom/sw_demo/js/tests/sw_demo.test.js index 6998b8d571..70aa5fc9e1 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/modules/custom/sw_demo/js/tests/sw_demo.test.js +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/modules/custom/sw_demo/js/tests/sw_demo.test.js @@ -10,7 +10,6 @@ describe('Drupal.behaviors.ysDemo', () => { jest.spyOn(console, 'log').mockImplementation(() => {}); jest.resetModules(); - // eslint-disable-next-line global-require require('../sw_demo.js'); }); @@ -152,9 +151,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.initCounterBlock(document); - const incrementBtn = document.querySelector( - '[data-counter-action="increment"]', - ); + const incrementBtn = document.querySelector('[data-counter-action="increment"]'); incrementBtn.click(); const value = document.querySelector('[data-counter-value]'); @@ -165,9 +162,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.initCounterBlock(document); - const decrementBtn = document.querySelector( - '[data-counter-action="decrement"]', - ); + const decrementBtn = document.querySelector('[data-counter-action="decrement"]'); decrementBtn.click(); const value = document.querySelector('[data-counter-value]'); @@ -178,9 +173,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.initCounterBlock(document); - const incrementBtn = document.querySelector( - '[data-counter-action="increment"]', - ); + const incrementBtn = document.querySelector('[data-counter-action="increment"]'); incrementBtn.click(); incrementBtn.click(); incrementBtn.click(); @@ -196,9 +189,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.initCounterBlock(document); - const incrementBtn = document.querySelector( - '[data-counter-action="increment"]', - ); + const incrementBtn = document.querySelector('[data-counter-action="increment"]'); incrementBtn.click(); incrementBtn.click(); @@ -210,9 +201,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.initCounterBlock(document); - const incrementBtn = document.querySelector( - '[data-counter-action="increment"]', - ); + const incrementBtn = document.querySelector('[data-counter-action="increment"]'); incrementBtn.click(); const value = document.querySelector('[data-counter-value]'); @@ -237,12 +226,8 @@ describe('Drupal.behaviors.ysDemo', () => { Drupal.behaviors.ysDemo.initCounterBlock(document); const blocks = document.querySelectorAll('[data-sw-demo-counter]'); - expect(blocks[0].classList.contains('sw-demo-counter-processed')).toBe( - true, - ); - expect(blocks[1].classList.contains('sw-demo-counter-processed')).toBe( - true, - ); + expect(blocks[0].classList.contains('sw-demo-counter-processed')).toBe(true); + expect(blocks[1].classList.contains('sw-demo-counter-processed')).toBe(true); }); }); @@ -261,9 +246,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.attach(document); - const incrementBtn = document.querySelector( - '[data-counter-action="increment"]', - ); + const incrementBtn = document.querySelector('[data-counter-action="increment"]'); incrementBtn.click(); const value = document.querySelector('[data-counter-value]'); diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/modules/custom/sw_demo/src/Plugin/GeneratedContent/Node/Page.php b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/modules/custom/sw_demo/src/Plugin/GeneratedContent/Node/Page.php index 38453e6f9a..40835f853c 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/modules/custom/sw_demo/src/Plugin/GeneratedContent/Node/Page.php +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/modules/custom/sw_demo/src/Plugin/GeneratedContent/Node/Page.php @@ -37,10 +37,14 @@ public function generate(): array { 'status' => 1, ]); - $node->set('body', [ - 'value' => $this->helper::staticRichText(3), - 'format' => 'full_html', - ]); + // The content model differs between install profiles, so a field the + // demo populates is only set when the bundle actually carries it. + if ($node->hasField('body')) { + $node->set('body', [ + 'value' => $this->helper::staticRichText(3), + 'format' => 'full_html', + ]); + } // When Content Moderation is attached to the bundle, 'status' alone // leaves the node as an unpublished draft, so the state must be set diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/modules/custom/sw_demo/sw_demo.info.yml b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/modules/custom/sw_demo/sw_demo.info.yml index 45cfab2804..c2f3e3a559 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/modules/custom/sw_demo/sw_demo.info.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/modules/custom/sw_demo/sw_demo.info.yml @@ -8,5 +8,4 @@ dependencies: - drupal:node - drupal:views - drupal_helpers:drupal_helpers - - generated_content:generated_content - testmode:testmode diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/sites/default/includes/modules/settings.reroute_email.php b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/sites/default/includes/modules/settings.reroute_email.php index 9b33203c65..d9701f1ddf 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/sites/default/includes/modules/settings.reroute_email.php +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/sites/default/includes/modules/settings.reroute_email.php @@ -21,13 +21,17 @@ Environment::STAGE, Environment::PRODUCTION, ])) { + // Send every outgoing message to the address above instead of to its + // intended recipient, unless that recipient matches the allowed list. $config['reroute_email.settings']['enable'] = TRUE; } else { + // Deliver every message to its intended recipient. $config['reroute_email.settings']['enable'] = FALSE; } -// Allow to disable reroute email completely in the environment. +// Allow an environment to opt out of the rerouting set above. if (!empty(getenv('DRUPAL_REROUTE_EMAIL_DISABLED'))) { + // Deliver every message to its intended recipient. $config['reroute_email.settings']['enable'] = FALSE; } diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/sites/default/includes/modules/settings.sw_base.php b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/sites/default/includes/modules/settings.sw_base.php deleted file mode 100644 index 884ec2f5ca..0000000000 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/sites/default/includes/modules/settings.sw_base.php +++ /dev/null @@ -1,15 +0,0 @@ - @@ -48,7 +48,7 @@ //////////////////////////////////////////////////////////////////////////////// /// GENERAL /// //////////////////////////////////////////////////////////////////////////////// -// @see https://www.vortextemplate.com/docs/drupal/settings#general +// @see https://www.vortextemplate.com/docs/development/settings#general $app_root ??= DRUPAL_ROOT; $site_path ??= 'sites/default'; @@ -100,7 +100,7 @@ //////////////////////////////////////////////////////////////////////////////// /// ENVIRONMENT TYPE DETECTION /// //////////////////////////////////////////////////////////////////////////////// -// @see https://www.vortextemplate.com/docs/drupal/settings#environment-type-detection +// @see https://www.vortextemplate.com/docs/development/settings#environment-type-detection // Detect the environment type from the hosting platform and apply the // platform-related settings. @@ -109,7 +109,7 @@ //////////////////////////////////////////////////////////////////////////////// /// PER-MODULE OVERRIDES /// //////////////////////////////////////////////////////////////////////////////// -// @see https://www.vortextemplate.com/docs/drupal/settings#per-module-overrides +// @see https://www.vortextemplate.com/docs/development/settings#per-module-overrides if (file_exists($app_root . '/' . $site_path . '/includes/modules')) { $files = glob($app_root . '/' . $site_path . '/includes/modules/settings.*.php'); @@ -123,7 +123,7 @@ //////////////////////////////////////////////////////////////////////////////// /// LOCAL OVERRIDE /// //////////////////////////////////////////////////////////////////////////////// -// @see https://www.vortextemplate.com/docs/drupal/settings#local-overrides +// @see https://www.vortextemplate.com/docs/development/settings#local-overrides // Load local override configuration, if available. // diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/.eslintrc.json deleted file mode 100644 index ef68a6a933..0000000000 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/.eslintrc.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "extends": [ - "airbnb-base", - "plugin:prettier/recommended", - "plugin:yml/recommended" - ], - "root": true, - "env": { - "browser": true, - "es6": true, - "node": true - }, - "parserOptions": { - "ecmaVersion": 2020 - }, - "plugins": [ - "jsdoc" - ], - "globals": { - "Drupal": true, - "drupalSettings": true, - "drupalTranslations": true, - "jQuery": true, - "_": true, - "Cookies": true, - "Backbone": true, - "htmx": true, - "loadjs": true, - "Shepherd": true, - "Sortable": true, - "once": true, - "CKEditor5": true, - "tabbable": true, - "transliterate": true, - "bodyScrollLock" : true, - "FloatingUIDOM": true - }, - "rules": { - "prettier/prettier": "error", - "consistent-return": ["off"], - "no-underscore-dangle": ["off"], - "max-nested-callbacks": ["warn", 3], - "import/no-mutable-exports": ["warn"], - "no-plusplus": ["warn", { - "allowForLoopAfterthoughts": true - }], - "no-param-reassign": ["off"], - "no-prototype-builtins": ["off"], - "jsdoc/require-returns": ["off"], - "jsdoc/require-returns-type": ["warn"], - "jsdoc/require-returns-description": ["warn"], - "jsdoc/require-returns-check": ["warn"], - "jsdoc/require-param": ["warn"], - "jsdoc/require-param-type": ["warn"], - "jsdoc/require-param-description": ["warn"], - "jsdoc/check-param-names": ["warn"], - "jsdoc/valid-types": ["warn"], - "jsdoc/require-param-name": ["warn"], - "jsdoc/check-tag-names": ["warn"], - "no-unused-vars": ["warn"], - "operator-linebreak": ["error", "after", { "overrides": { "?": "ignore", ":": "ignore" } }], - "yml/indent": ["error", 2] - }, - "settings": { - "jsdoc": { - "tagNamePreference": { - "returns": "return", - "property": "prop" - } - } - } -} diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/.prettierrc.json b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/.prettierrc.json index b5ed527867..8ef17490e8 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/.prettierrc.json +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/.prettierrc.json @@ -1,10 +1,12 @@ { - "printWidth": 80, + "printWidth": 160, "semi": true, "singleQuote": true, "trailingComma": "all", "plugins": ["@homer0/prettier-plugin-jsdoc"], + "jsdocPrintWidth": 80, "jsdocReplaceTagsSynonyms": false, + "jsdocUseTypeScriptTypesCasing": false, "overrides": [ { "files": ["*.css"], diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/README.md b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/README.md index bfc90db553..63e5700e12 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/README.md +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/README.md @@ -5,20 +5,20 @@ Custom Drupal theme for the project. ## Requirements - Node.js (LTS version recommended) -- Yarn +- npm ## Installation ```bash -yarn install +npm ci ``` ## Commands -| Command | Description | -|----------------------|------------------------------------------------| -| `yarn run build` | Production build (minified, no source maps) | -| `yarn run build-dev` | Development build (expanded, with source maps) | -| `yarn run watch` | Watch for changes and rebuild automatically | -| `yarn run lint` | Check code style (JS and SCSS) | -| `yarn run lint-fix` | Fix code style issues automatically | +| Command | Description | +|---------------------|------------------------------------------------| +| `npm run build` | Production build (minified, no source maps) | +| `npm run build-dev` | Development build (expanded, with source maps) | +| `npm run watch` | Watch for changes and rebuild automatically | +| `npm run lint` | Check code style (JS and SCSS) | +| `npm run lint-fix` | Fix code style issues automatically | diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/eslint.config.mjs b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/eslint.config.mjs new file mode 100644 index 0000000000..5e6af862fb --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/eslint.config.mjs @@ -0,0 +1,100 @@ +// Mirrors the Drupal core configuration from +// https://www.drupal.org/project/drupal/issues/3440225, adapted to lint the +// theme's own sources. The theme carries its own front-end tooling because it +// can be moved into a separate repository. +import { defineConfig } from 'eslint/config'; +import { fixupPluginRules } from '@eslint/compat'; +import importPlugin from 'eslint-plugin-import'; +import noJQuery from 'eslint-plugin-no-jquery'; +import prettierConfig from 'eslint-plugin-prettier/recommended'; +import ymlConfig from 'eslint-plugin-yml'; +import jsdoc from 'eslint-plugin-jsdoc'; +import js from '@eslint/js'; +import globals from 'globals'; + +export default defineConfig( + { + ignores: ['node_modules/**/*', 'build/**/*', '**/*.min.js'], + }, + js.configs.recommended, + importPlugin.flatConfigs.recommended, + jsdoc.configs['flat/recommended'], + prettierConfig, + ymlConfig.configs['flat/recommended'], + { + plugins: { + 'no-jquery': fixupPluginRules(noJQuery), + }, + languageOptions: { + ecmaVersion: 2020, + globals: { + ...globals.browser, + ...globals.node, + + Drupal: 'readonly', + drupalSettings: 'readonly', + drupalTranslations: 'readonly', + jQuery: 'readonly', + _: 'readonly', + Cookies: 'readonly', + Backbone: 'readonly', + htmx: 'readonly', + loadjs: 'readonly', + Shepherd: 'readonly', + Sortable: 'readonly', + once: 'readonly', + CKEditor5: 'readonly', + CKEDITOR: 'readonly', + tabbable: 'readonly', + transliterate: 'readonly', + bodyScrollLock: 'readonly', + FloatingUIDOM: 'readonly', + }, + }, + rules: { + 'prettier/prettier': 'error', + 'no-unexpected-multiline': ['off'], + 'consistent-return': ['off'], + 'no-underscore-dangle': ['off'], + 'max-nested-callbacks': ['warn', 3], + 'import/no-mutable-exports': ['warn'], + 'no-plusplus': [ + 'warn', + { + allowForLoopAfterthoughts: true, + }, + ], + 'no-param-reassign': ['off'], + 'no-prototype-builtins': ['off'], + 'no-unused-vars': ['warn'], + // Kept from the previous ruleset: console calls left in shipped code + // print to every visitor's browser. + 'no-console': 'error', + 'operator-linebreak': [ + 'error', + 'after', + { + overrides: { + '?': 'ignore', + ':': 'ignore', + }, + }, + ], + 'yml/indent': ['error', 2], + // The Drupal docblock style separates the description from the first tag + // with a blank line, which the preset forbids by default. + 'jsdoc/tag-lines': ['warn', 'any', { startLines: 1 }], + // Drupal front-end code documents contracts, not every function. + 'jsdoc/require-jsdoc': ['off'], + ...noJQuery.configs.all.rules, + }, + settings: { + jsdoc: { + tagNamePreference: { + returns: 'return', + property: 'prop', + }, + }, + }, + }, +); diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/js/star_wars.js b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/js/star_wars.js index d81db5a8e2..ff56f0e716 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/js/star_wars.js +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/js/star_wars.js @@ -1,27 +1,25 @@ /** * @file Global theme behaviors. - * @param $ - * @param Drupal - * @global Drupal, JQuery. */ /** - * Global theme behaviors. + * Wraps the behaviors so that anything declared here stays out of the global + * scope. * - * @param {jQuery} $ The jQuery object. - * @param {Drupal} Drupal The Drupal object. + * @param {object} Drupal The Drupal object. */ -(function StarWarsBehaviors($, Drupal) { - Drupal.behaviors.star_wars = { +(function yourSiteThemeBehaviors(Drupal) { + Drupal.behaviors.yourSiteTheme = { attach(context) { - // give me example code here that would be using context with body - $(context) - .find('body') - .once('star-wars-theme') - .each(function iterateBody() { - // Example: Add a class to the body element. - $(this).addClass('star-wars-theme-processed'); - }); + // The context is the document on load and an element on AJAX, and that + // element may be the body itself, so resolve through the owning document. + const body = context.ownerDocument ? context.ownerDocument.body : document.body; + + if (body.classList.contains('star-wars-theme-processed')) { + return; + } + + body.classList.add('star-wars-theme-processed'); }, }; -})(jQuery, Drupal); +})(Drupal); diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/package-lock.json new file mode 100644 index 0000000000..c6c150b2fe --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/package-lock.json @@ -0,0 +1,6231 @@ +{ + "name": "star_wars", + "version": "__VERSION__", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "star_wars", + "version": "__VERSION__", + "hasInstallScript": true, + "devDependencies": { + "@eslint/compat": "__VERSION__", + "@eslint/js": "__VERSION__", + "@homer0/prettier-plugin-jsdoc": "__VERSION__", + "autoprefixer": "__VERSION__", + "chokidar-cli": "__VERSION__", + "eslint": "__VERSION__", + "eslint-config-prettier": "__VERSION__", + "eslint-plugin-import": "__VERSION__", + "eslint-plugin-jsdoc": "__VERSION__", + "eslint-plugin-no-jquery": "__VERSION__", + "eslint-plugin-prettier": "__VERSION__", + "eslint-plugin-yml": "__VERSION__", + "globals": "__VERSION__", + "patch-package": "__VERSION__", + "postcss": "__VERSION__", + "postcss-cli": "__VERSION__", + "prettier": "__VERSION__", + "sass": "__VERSION__", + "stylelint": "__VERSION__", + "stylelint-config-standard": "__VERSION__", + "stylelint-config-standard-scss": "__VERSION__", + "stylelint-order": "__VERSION__", + "stylelint-scss": "__VERSION__", + "terser": "__VERSION__" + } + }, + "node_modules/@babel/code-frame": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "__VERSION__", + "js-tokens": "__VERSION__", + "picocolors": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@cacheable/memory": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/utils": "__VERSION__", + "@keyv/bigmap": "__VERSION__", + "hookified": "__VERSION__", + "keyv": "__VERSION__" + } + }, + "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "__VERSION__", + "hookified": "__VERSION__" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "keyv": "__VERSION__" + } + }, + "node_modules/@cacheable/memory/node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "__VERSION__" + } + }, + "node_modules/@cacheable/utils": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "__VERSION__", + "keyv": "__VERSION__" + } + }, + "node_modules/@cacheable/utils/node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "__VERSION__" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "__VERSION__" + } + }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "peerDependencies": { + "css-tree": "__VERSION__" + }, + "peerDependenciesMeta": { + "css-tree": { + "optional": true + } + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "__VERSION__", + "@csstools/css-tokenizer": "__VERSION__" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss-selector-parser": "__VERSION__" + } + }, + "node_modules/@dual-bundle/import-meta-resolve": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/JounQin" + } + }, + "node_modules/@es-joy/jsdoccomment": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "__VERSION__", + "@typescript-eslint/types": "__VERSION__", + "comment-parser": "__VERSION__", + "esquery": "__VERSION__", + "jsdoc-type-pratt-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + } + }, + "node_modules/@es-joy/resolve.exports": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/compat": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + }, + "peerDependencies": { + "eslint": "^8.40 || 9 || 10" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/@eslint/compat/node_modules/@eslint/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + } + }, + "node_modules/@eslint/config-array": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "__VERSION__", + "debug": "__VERSION__", + "minimatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "__VERSION__", + "debug": "__VERSION__", + "espree": "__VERSION__", + "globals": "__VERSION__", + "ignore": "__VERSION__", + "import-fresh": "__VERSION__", + "js-yaml": "__VERSION__", + "minimatch": "__VERSION__", + "strip-json-comments": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "__VERSION__", + "levn": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@homer0/prettier-plugin-jsdoc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@homer0/prettier-plugin-jsdoc/-/prettier-plugin-jsdoc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "comment-parser": "__VERSION__", + "ramda": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "prettier": "__VERSION__" + } + }, + "node_modules/@humanfs/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/types": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@humanfs/node": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "__VERSION__", + "@humanfs/types": "__VERSION__", + "@humanwhocodes/retry": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@humanfs/types": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "__VERSION__", + "@jridgewell/trace-mapping": "__VERSION__" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "__VERSION__", + "@jridgewell/trace-mapping": "__VERSION__" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "__VERSION__", + "@jridgewell/sourcemap-codec": "__VERSION__" + } + }, + "node_modules/@keyv/serialize": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "__VERSION__", + "run-parallel": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "__VERSION__", + "fastq": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@parcel/watcher": { + "version": "__VERSION__", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "__VERSION__", + "is-glob": "__VERSION__", + "node-addon-api": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "__VERSION__", + "@parcel/watcher-darwin-arm64": "__VERSION__", + "@parcel/watcher-darwin-x64": "__VERSION__", + "@parcel/watcher-freebsd-x64": "__VERSION__", + "@parcel/watcher-linux-arm-glibc": "__VERSION__", + "@parcel/watcher-linux-arm-musl": "__VERSION__", + "@parcel/watcher-linux-arm64-glibc": "__VERSION__", + "@parcel/watcher-linux-arm64-musl": "__VERSION__", + "@parcel/watcher-linux-x64-glibc": "__VERSION__", + "@parcel/watcher-linux-x64-musl": "__VERSION__", + "@parcel/watcher-win32-arm64": "__VERSION__", + "@parcel/watcher-win32-ia32": "__VERSION__", + "@parcel/watcher-win32-x64": "__VERSION__" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "__VERSION__", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher/node_modules/picomatch": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@pkgr/core": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@rtsao/scc": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@sindresorhus/base62": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@types/estree": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/types": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@yarnpkg/lockfile": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/acorn": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/acorn-jsx": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "__VERSION__ || __VERSION__ || __VERSION__" + } + }, + "node_modules/ajv": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "__VERSION__", + "fast-json-stable-stringify": "__VERSION__", + "json-schema-traverse": "__VERSION__", + "uri-js": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/ansi-styles": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/are-docs-informative": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/argparse": { + "version": "__VERSION__", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "is-array-buffer": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-object-atoms": "__VERSION__", + "get-intrinsic": "__VERSION__", + "is-string": "__VERSION__", + "math-intrinsics": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "es-shim-unscopables": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-shim-unscopables": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-shim-unscopables": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "__VERSION__", + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "is-array-buffer": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/astral-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/async-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/autoprefixer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__", + "caniuse-lite": "__VERSION__", + "fraction.js": "__VERSION__", + "picocolors": "__VERSION__", + "postcss-value-parser": "__VERSION__" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/available-typed-arrays": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/binary-extensions": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "__VERSION__", + "concat-map": "__VERSION__" + } + }, + "node_modules/brace-expansion/node_modules/balanced-match": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/braces": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/browserslist": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": { + "baseline-browser-mapping": "__VERSION__", + "caniuse-lite": "__VERSION__", + "electron-to-chromium": "__VERSION__", + "node-releases": "__VERSION__", + "update-browserslist-db": "__VERSION__" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/memory": "__VERSION__", + "@cacheable/utils": "__VERSION__", + "hookified": "__VERSION__", + "keyv": "__VERSION__", + "qified": "__VERSION__" + } + }, + "node_modules/cacheable/node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "__VERSION__" + } + }, + "node_modules/call-bind": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "es-define-property": "__VERSION__", + "get-intrinsic": "__VERSION__", + "set-function-length": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "function-bind": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/camelcase": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/caniuse-lite": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "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": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "supports-color": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "__VERSION__", + "braces": "__VERSION__", + "glob-parent": "__VERSION__", + "is-binary-path": "__VERSION__", + "is-glob": "__VERSION__", + "normalize-path": "__VERSION__", + "readdirp": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "__VERSION__" + } + }, + "node_modules/chokidar-cli": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "__VERSION__", + "lodash.debounce": "__VERSION__", + "lodash.throttle": "__VERSION__", + "yargs": "__VERSION__" + }, + "bin": { + "chokidar": "index.js" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/ci-info": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cliui": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__", + "wrap-ansi": "__VERSION__" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/color-convert": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/color-name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/colord": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/comment-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/concat-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "__VERSION__", + "import-fresh": "__VERSION__", + "js-yaml": "__VERSION__", + "parse-json": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": "__VERSION__" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cross-spawn": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "__VERSION__", + "shebang-command": "__VERSION__", + "which": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/which/-/which-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "__VERSION__" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-functions-list": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/css-tree": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "__VERSION__", + "source-map-js": "__VERSION__" + }, + "engines": { + "node": "^10 || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/css-tree/node_modules/mdn-data": { + "version": "__VERSION__", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/cssesc": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/data-view-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-data-view": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-data-view": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-data-view": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/deep-is": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "gopd": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "object-keys": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dependency-graph": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/detect-libc": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/diff-sequences": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/dir-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/doctrine": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/dunder-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "es-errors": "__VERSION__", + "gopd": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/env-paths": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/error-ex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "__VERSION__" + } + }, + "node_modules/es-abstract": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "__VERSION__", + "arraybuffer.prototype.slice": "__VERSION__", + "available-typed-arrays": "__VERSION__", + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "data-view-buffer": "__VERSION__", + "data-view-byte-length": "__VERSION__", + "data-view-byte-offset": "__VERSION__", + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "es-set-tostringtag": "__VERSION__", + "es-to-primitive": "__VERSION__", + "function.prototype.name": "__VERSION__", + "get-intrinsic": "__VERSION__", + "get-proto": "__VERSION__", + "get-symbol-description": "__VERSION__", + "globalthis": "__VERSION__", + "gopd": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "has-proto": "__VERSION__", + "has-symbols": "__VERSION__", + "hasown": "__VERSION__", + "internal-slot": "__VERSION__", + "is-array-buffer": "__VERSION__", + "is-callable": "__VERSION__", + "is-data-view": "__VERSION__", + "is-negative-zero": "__VERSION__", + "is-regex": "__VERSION__", + "is-set": "__VERSION__", + "is-shared-array-buffer": "__VERSION__", + "is-string": "__VERSION__", + "is-typed-array": "__VERSION__", + "is-weakref": "__VERSION__", + "math-intrinsics": "__VERSION__", + "object-inspect": "__VERSION__", + "object-keys": "__VERSION__", + "object.assign": "__VERSION__", + "own-keys": "__VERSION__", + "regexp.prototype.flags": "__VERSION__", + "safe-array-concat": "__VERSION__", + "safe-push-apply": "__VERSION__", + "safe-regex-test": "__VERSION__", + "set-proto": "__VERSION__", + "stop-iteration-iterator": "__VERSION__", + "string.prototype.trim": "__VERSION__", + "string.prototype.trimend": "__VERSION__", + "string.prototype.trimstart": "__VERSION__", + "typed-array-buffer": "__VERSION__", + "typed-array-byte-length": "__VERSION__", + "typed-array-byte-offset": "__VERSION__", + "typed-array-length": "__VERSION__", + "unbox-primitive": "__VERSION__", + "which-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-abstract-get": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "is-callable": "__VERSION__", + "object-inspect": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "has-tostringtag": "__VERSION__", + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-abstract-get": "__VERSION__", + "es-errors": "__VERSION__", + "is-callable": "__VERSION__", + "is-date-object": "__VERSION__", + "is-symbol": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/escape-string-regexp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "__VERSION__", + "@eslint-community/regexpp": "__VERSION__", + "@eslint/config-array": "__VERSION__", + "@eslint/config-helpers": "__VERSION__", + "@eslint/core": "__VERSION__", + "@eslint/eslintrc": "__VERSION__", + "@eslint/js": "__VERSION__", + "@eslint/plugin-kit": "__VERSION__", + "@humanfs/node": "__VERSION__", + "@humanwhocodes/module-importer": "__VERSION__", + "@humanwhocodes/retry": "__VERSION__", + "@types/estree": "__VERSION__", + "ajv": "__VERSION__", + "chalk": "__VERSION__", + "cross-spawn": "__VERSION__", + "debug": "__VERSION__", + "escape-string-regexp": "__VERSION__", + "eslint-scope": "__VERSION__", + "eslint-visitor-keys": "__VERSION__", + "espree": "__VERSION__", + "esquery": "__VERSION__", + "esutils": "__VERSION__", + "fast-deep-equal": "__VERSION__", + "file-entry-cache": "__VERSION__", + "find-up": "__VERSION__", + "glob-parent": "__VERSION__", + "ignore": "__VERSION__", + "imurmurhash": "__VERSION__", + "is-glob": "__VERSION__", + "json-stable-stringify-without-jsonify": "__VERSION__", + "lodash.merge": "__VERSION__", + "minimatch": "__VERSION__", + "natural-compare": "__VERSION__", + "optionator": "__VERSION__" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-compat-utils": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "eslint": "__VERSION__" + } + }, + "node_modules/eslint-compat-utils/node_modules/semver": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/eslint-config-prettier": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": "__VERSION__" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "__VERSION__", + "is-core-module": "__VERSION__", + "resolve": "__VERSION__" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + } + }, + "node_modules/eslint-module-utils": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + } + }, + "node_modules/eslint-plugin-import": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "__VERSION__", + "array-includes": "__VERSION__", + "array.prototype.findlastindex": "__VERSION__", + "array.prototype.flat": "__VERSION__", + "array.prototype.flatmap": "__VERSION__", + "debug": "__VERSION__", + "doctrine": "__VERSION__", + "eslint-import-resolver-node": "__VERSION__", + "eslint-module-utils": "__VERSION__", + "hasown": "__VERSION__", + "is-core-module": "__VERSION__", + "is-glob": "__VERSION__", + "minimatch": "__VERSION__", + "object.fromentries": "__VERSION__", + "object.groupby": "__VERSION__", + "object.values": "__VERSION__", + "semver": "__VERSION__", + "string.prototype.trimend": "__VERSION__", + "tsconfig-paths": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || __VERSION__ || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + } + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@es-joy/jsdoccomment": "__VERSION__", + "@es-joy/resolve.exports": "__VERSION__", + "are-docs-informative": "__VERSION__", + "comment-parser": "__VERSION__", + "debug": "__VERSION__", + "escape-string-regexp": "__VERSION__", + "espree": "__VERSION__", + "esquery": "__VERSION__", + "html-entities": "__VERSION__", + "object-deep-merge": "__VERSION__", + "parse-imports-exports": "__VERSION__", + "semver": "__VERSION__", + "spdx-expression-parse": "__VERSION__", + "to-valid-identifier": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=24" + }, + "peerDependencies": { + "eslint": "__VERSION__ || __VERSION__ || __VERSION__ || __VERSION__" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/espree": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "__VERSION__", + "acorn-jsx": "__VERSION__", + "eslint-visitor-keys": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/semver": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/eslint-plugin-no-jquery": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": "__VERSION__", + "oxlint": "__VERSION__" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "oxlint": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "__VERSION__", + "synckit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": "__VERSION__", + "eslint": "__VERSION__", + "eslint-config-prettier": ">= __VERSION__ <__VERSION__ || >=__VERSION__", + "prettier": "__VERSION__" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-yml": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "__VERSION__", + "diff-sequences": "__VERSION__", + "escape-string-regexp": "__VERSION__", + "eslint-compat-utils": "__VERSION__", + "natural-compare": "__VERSION__", + "yaml-eslint-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": "__VERSION__" + } + }, + "node_modules/eslint-scope": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "__VERSION__", + "estraverse": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/espree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/espree/-/espree-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "__VERSION__", + "acorn-jsx": "__VERSION__", + "eslint-visitor-keys": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/esrecurse": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/estraverse": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/esutils": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fast-deep-equal": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "__VERSION__", + "@nodelib/fs.walk": "__VERSION__", + "glob-parent": "__VERSION__", + "merge2": "__VERSION__", + "micromatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastest-levenshtein": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/fastq": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "__VERSION__" + } + }, + "node_modules/file-entry-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fill-range": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/find-up": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "__VERSION__", + "path-exists": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-yarn-workspace-root": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "micromatch": "__VERSION__" + } + }, + "node_modules/flat-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "__VERSION__", + "keyv": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/flatted": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fraction.js": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs-extra": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "__VERSION__", + "jsonfile": "__VERSION__", + "universalify": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fsevents": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/function-bind": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "functions-have-names": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "hasown": "__VERSION__", + "is-callable": "__VERSION__", + "is-document.all": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-caller-file": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "function-bind": "__VERSION__", + "get-proto": "__VERSION__", + "gopd": "__VERSION__", + "has-symbols": "__VERSION__", + "hasown": "__VERSION__", + "math-intrinsics": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "__VERSION__" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-modules": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/global-prefix": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "__VERSION__", + "kind-of": "__VERSION__", + "which": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/globals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "__VERSION__", + "gopd": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globby/-/globby-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "__VERSION__", + "dir-glob": "__VERSION__", + "fast-glob": "__VERSION__", + "ignore": "__VERSION__", + "merge2": "__VERSION__", + "slash": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/slash/-/slash-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/globjoin": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/gopd": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/has-bigints": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/has-property-descriptors": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hashery": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/hasown": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hookified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/html-entities": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/html-tags": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ignore": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "__VERSION__", + "resolve-from": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/imurmurhash": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/ini": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "hasown": "__VERSION__", + "side-channel": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "__VERSION__", + "call-bound": "__VERSION__", + "get-proto": "__VERSION__", + "has-tostringtag": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-boolean-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__", + "is-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-document.all": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-finalizationregistry": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-generator-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "generator-function": "__VERSION__", + "get-proto": "__VERSION__", + "has-tostringtag": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-number-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "gopd": "__VERSION__", + "has-tostringtag": "__VERSION__", + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-symbols": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/isarray": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/js-tokens": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "__VERSION__" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/json-buffer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "isarray": "__VERSION__", + "jsonify": "__VERSION__", + "object-keys": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "__VERSION__" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "__VERSION__" + }, + "optionalDependencies": { + "graceful-fs": "__VERSION__" + } + }, + "node_modules/jsonify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Public Domain", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "__VERSION__" + } + }, + "node_modules/kind-of": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/klaw-sync": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "__VERSION__" + } + }, + "node_modules/known-css-properties": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/levn": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "__VERSION__", + "type-check": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/lilconfig": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.debounce": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.throttle": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mathml-tag-names": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdn-data": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/meow": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/meow/-/meow-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/minimatch": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "__VERSION__" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=__VERSION__" + } + }, + "node_modules/natural-compare": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/node-addon-api": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-exports-info": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.flatmap": "__VERSION__", + "es-errors": "__VERSION__", + "object.entries": "__VERSION__", + "semver": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/node-releases": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/normalize-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/object-deep-merge": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/object-inspect": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__", + "has-symbols": "__VERSION__", + "object-keys": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/open": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "__VERSION__", + "is-wsl": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "__VERSION__", + "fast-levenshtein": "__VERSION__", + "levn": "__VERSION__", + "prelude-ls": "__VERSION__", + "type-check": "__VERSION__", + "word-wrap": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/own-keys": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "__VERSION__", + "object-keys": "__VERSION__", + "safe-push-apply": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/parent-module": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/parse-imports-exports": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-statements": "__VERSION__" + } + }, + "node_modules/parse-json": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "__VERSION__", + "error-ex": "__VERSION__", + "json-parse-even-better-errors": "__VERSION__", + "lines-and-columns": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-statements": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/patch-package": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@yarnpkg/lockfile": "__VERSION__", + "chalk": "__VERSION__", + "ci-info": "__VERSION__", + "cross-spawn": "__VERSION__", + "find-yarn-workspace-root": "__VERSION__", + "fs-extra": "__VERSION__", + "json-stable-stringify": "__VERSION__", + "klaw-sync": "__VERSION__", + "minimist": "__VERSION__", + "open": "__VERSION__", + "semver": "__VERSION__", + "slash": "__VERSION__", + "tmp": "__VERSION__", + "yaml": "__VERSION__" + }, + "bin": { + "patch-package": "index.js" + }, + "engines": { + "node": "__VERSION__", + "npm": ">5" + } + }, + "node_modules/patch-package/node_modules/fs-extra": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "__VERSION__", + "jsonfile": "__VERSION__", + "universalify": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/patch-package/node_modules/semver": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/path-exists": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/path-key": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/path-parse": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/picocolors": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/possible-typed-array-names": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__", + "picocolors": "__VERSION__", + "source-map-js": "__VERSION__" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-cli": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "__VERSION__", + "dependency-graph": "__VERSION__", + "fs-extra": "__VERSION__", + "picocolors": "__VERSION__", + "postcss-load-config": "__VERSION__", + "postcss-reporter": "__VERSION__", + "pretty-hrtime": "__VERSION__", + "read-cache": "__VERSION__", + "slash": "__VERSION__", + "tinyglobby": "__VERSION__", + "yargs": "__VERSION__" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-cli/node_modules/cliui": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__", + "wrap-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-cli/node_modules/slash": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss-cli/node_modules/wrap-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/postcss-cli/node_modules/y18n": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-cli/node_modules/yargs": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "__VERSION__", + "escalade": "__VERSION__", + "get-caller-file": "__VERSION__", + "require-directory": "__VERSION__", + "string-width": "__VERSION__", + "y18n": "__VERSION__", + "yargs-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-cli/node_modules/yargs-parser": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-load-config": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "__VERSION__", + "yaml": "__VERSION__" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": "__VERSION__", + "postcss": "__VERSION__", + "tsx": "__VERSION__" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + } + } + }, + "node_modules/postcss-media-query-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-reporter": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "picocolors": "__VERSION__", + "thenby": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-safe-parser": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-scss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-selector-parser": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "__VERSION__", + "util-deprecate": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-sorting": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-value-parser": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/prettier": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/pretty-hrtime": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/punycode": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/qified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/qified/-/qified-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/qified/node_modules/hookified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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/ramda": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ramda" + } + }, + "node_modules/read-cache": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "__VERSION__" + } + }, + "node_modules/readdirp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "get-intrinsic": "__VERSION__", + "get-proto": "__VERSION__", + "which-builtin-type": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-errors": "__VERSION__", + "get-proto": "__VERSION__", + "gopd": "__VERSION__", + "set-function-name": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/require-from-string": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/require-main-filename": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/reserved-identifiers": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/resolve": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "is-core-module": "__VERSION__", + "node-exports-info": "__VERSION__", + "object-keys": "__VERSION__", + "path-parse": "__VERSION__", + "supports-preserve-symlinks-flag": "__VERSION__" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/reusify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "iojs": "__VERSION__", + "node": "__VERSION__" + } + }, + "node_modules/run-parallel": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__" + } + }, + "node_modules/safe-array-concat": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__", + "has-symbols": "__VERSION__", + "isarray": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "isarray": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-regex": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sass": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/sass/-/sass-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "__VERSION__", + "immutable": "__VERSION__", + "source-map-js": ">=__VERSION__ <__VERSION__" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": "__VERSION__" + }, + "optionalDependencies": { + "@parcel/watcher": "__VERSION__" + } + }, + "node_modules/sass/node_modules/chokidar": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/semver": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-blocking": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/set-function-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "__VERSION__", + "es-errors": "__VERSION__", + "function-bind": "__VERSION__", + "get-intrinsic": "__VERSION__", + "gopd": "__VERSION__", + "has-property-descriptors": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "__VERSION__", + "es-errors": "__VERSION__", + "functions-have-names": "__VERSION__", + "has-property-descriptors": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/shebang-regex": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/side-channel": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "object-inspect": "__VERSION__", + "side-channel-list": "__VERSION__", + "side-channel-map": "__VERSION__", + "side-channel-weakmap": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "object-inspect": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "object-inspect": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "object-inspect": "__VERSION__", + "side-channel-map": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/slice-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "astral-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/source-map": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/source-map-js": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/source-map-support": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "__VERSION__", + "source-map": "__VERSION__" + } + }, + "node_modules/spdx-exceptions": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "__VERSION__", + "spdx-license-ids": "__VERSION__" + } + }, + "node_modules/spdx-license-ids": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/stop-iteration-iterator": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "internal-slot": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string-width": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/string.prototype.trim": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-data-property": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-object-atoms": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/strip-bom": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/strip-json-comments": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/css-parser-algorithms": "__VERSION__", + "@csstools/css-syntax-patches-for-csstree": "__VERSION__", + "@csstools/css-tokenizer": "__VERSION__", + "@csstools/media-query-list-parser": "__VERSION__", + "@csstools/selector-specificity": "__VERSION__", + "@dual-bundle/import-meta-resolve": "__VERSION__", + "balanced-match": "__VERSION__", + "colord": "__VERSION__", + "cosmiconfig": "__VERSION__", + "css-functions-list": "__VERSION__", + "css-tree": "__VERSION__", + "debug": "__VERSION__", + "fast-glob": "__VERSION__", + "fastest-levenshtein": "__VERSION__", + "file-entry-cache": "__VERSION__", + "global-modules": "__VERSION__", + "globby": "__VERSION__", + "globjoin": "__VERSION__", + "html-tags": "__VERSION__", + "ignore": "__VERSION__", + "imurmurhash": "__VERSION__", + "is-plain-object": "__VERSION__", + "known-css-properties": "__VERSION__", + "mathml-tag-names": "__VERSION__", + "meow": "__VERSION__", + "micromatch": "__VERSION__", + "normalize-path": "__VERSION__", + "picocolors": "__VERSION__", + "postcss": "__VERSION__", + "postcss-resolve-nested-selector": "__VERSION__", + "postcss-safe-parser": "__VERSION__", + "postcss-selector-parser": "__VERSION__", + "postcss-value-parser": "__VERSION__", + "resolve-from": "__VERSION__", + "string-width": "__VERSION__", + "supports-hyperlinks": "__VERSION__", + "svg-tags": "__VERSION__", + "table": "__VERSION__", + "write-file-atomic": "__VERSION__" + }, + "bin": { + "stylelint": "bin/stylelint.mjs" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__" + } + }, + "node_modules/stylelint-config-recommended-scss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-scss": "__VERSION__", + "stylelint-config-recommended": "__VERSION__", + "stylelint-scss": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__", + "stylelint": "__VERSION__" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/stylelint-config-standard": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "stylelint-config-recommended": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__" + } + }, + "node_modules/stylelint-config-standard-scss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "stylelint-config-recommended-scss": "__VERSION__", + "stylelint-config-standard": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__", + "stylelint": "__VERSION__" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/stylelint-order": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss": "__VERSION__", + "postcss-sorting": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__ || __VERSION__" + } + }, + "node_modules/stylelint-scss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "__VERSION__", + "is-plain-object": "__VERSION__", + "known-css-properties": "__VERSION__", + "mdn-data": "__VERSION__", + "postcss-media-query-parser": "__VERSION__", + "postcss-resolve-nested-selector": "__VERSION__", + "postcss-selector-parser": "__VERSION__", + "postcss-value-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__" + } + }, + "node_modules/stylelint/node_modules/file-entry-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "__VERSION__" + } + }, + "node_modules/stylelint/node_modules/flat-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "cacheable": "__VERSION__", + "flatted": "__VERSION__", + "hookified": "__VERSION__" + } + }, + "node_modules/stylelint/node_modules/ignore": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/supports-color": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/supports-hyperlinks": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "__VERSION__", + "supports-color": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-tags": { + "version": "__VERSION__", + "dev": true + }, + "node_modules/synckit": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/table": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "__VERSION__", + "lodash.truncate": "__VERSION__", + "slice-ansi": "__VERSION__", + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "__VERSION__", + "fast-uri": "__VERSION__", + "json-schema-traverse": "__VERSION__", + "require-from-string": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/terser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/terser/-/terser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "__VERSION__", + "acorn": "__VERSION__", + "commander": "__VERSION__", + "source-map-support": "__VERSION__" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/thenby": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tinyglobby": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tmp": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/to-regex-range": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/to-valid-identifier": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/base62": "__VERSION__", + "reserved-identifiers": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tsconfig-paths": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "__VERSION__", + "json5": "__VERSION__", + "minimist": "__VERSION__", + "strip-bom": "__VERSION__" + } + }, + "node_modules/type-check": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/typed-array-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "for-each": "__VERSION__", + "gopd": "__VERSION__", + "has-proto": "__VERSION__", + "is-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "__VERSION__", + "call-bind": "__VERSION__", + "for-each": "__VERSION__", + "gopd": "__VERSION__", + "has-proto": "__VERSION__", + "is-typed-array": "__VERSION__", + "reflect.getprototypeof": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "for-each": "__VERSION__", + "gopd": "__VERSION__", + "is-typed-array": "__VERSION__", + "possible-typed-array-names": "__VERSION__", + "reflect.getprototypeof": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-bigints": "__VERSION__", + "has-symbols": "__VERSION__", + "which-boxed-primitive": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/universalify": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/update-browserslist-db": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__", + "picocolors": "__VERSION__" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= __VERSION__" + } + }, + "node_modules/uri-js": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "__VERSION__" + } + }, + "node_modules/util-deprecate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "__VERSION__" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "__VERSION__", + "is-boolean-object": "__VERSION__", + "is-number-object": "__VERSION__", + "is-string": "__VERSION__", + "is-symbol": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "function.prototype.name": "__VERSION__", + "has-tostringtag": "__VERSION__", + "is-async-function": "__VERSION__", + "is-date-object": "__VERSION__", + "is-finalizationregistry": "__VERSION__", + "is-generator-function": "__VERSION__", + "is-regex": "__VERSION__", + "is-weakref": "__VERSION__", + "isarray": "__VERSION__", + "which-boxed-primitive": "__VERSION__", + "which-collection": "__VERSION__", + "which-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "__VERSION__", + "is-set": "__VERSION__", + "is-weakmap": "__VERSION__", + "is-weakset": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/which-typed-array": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "__VERSION__", + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "for-each": "__VERSION__", + "get-proto": "__VERSION__", + "gopd": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/write-file-atomic": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "__VERSION__", + "signal-exit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/y18n": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yaml-eslint-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "__VERSION__", + "yaml": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, + "node_modules/yargs": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "__VERSION__", + "find-up": "__VERSION__", + "get-caller-file": "__VERSION__", + "require-directory": "__VERSION__", + "require-main-filename": "__VERSION__", + "set-blocking": "__VERSION__", + "string-width": "__VERSION__", + "which-module": "__VERSION__", + "y18n": "__VERSION__", + "yargs-parser": "__VERSION__" + } + }, + "node_modules/yargs-parser": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "__VERSION__", + "decamelize": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/find-up": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "__VERSION__", + "path-exists": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/path-exists": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yocto-queue": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/package.json b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/package.json index c5919a9ad6..8b92630322 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/package.json +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/docroot/themes/custom/star_wars/package.json @@ -4,17 +4,19 @@ "private": true, "description": "NodeJS dependencies for star wars project", "devDependencies": { + "@eslint/compat": "__VERSION__", + "@eslint/js": "__VERSION__", "@homer0/prettier-plugin-jsdoc": "__VERSION__", "autoprefixer": "__VERSION__", "chokidar-cli": "__VERSION__", "eslint": "__VERSION__", - "eslint-config-airbnb-base": "__VERSION__", "eslint-config-prettier": "__VERSION__", "eslint-plugin-import": "__VERSION__", "eslint-plugin-jsdoc": "__VERSION__", "eslint-plugin-no-jquery": "__VERSION__", "eslint-plugin-prettier": "__VERSION__", "eslint-plugin-yml": "__VERSION__", + "globals": "__VERSION__", "patch-package": "__VERSION__", "postcss": "__VERSION__", "postcss-cli": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/eslint.config.mjs b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/eslint.config.mjs new file mode 100644 index 0000000000..93be696e40 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/eslint.config.mjs @@ -0,0 +1,19 @@ +@@ -16,12 +16,12 @@ + ignores: [ + 'node_modules/**/*', + 'vendor/**/*', +- 'web/core/**/*', +- 'web/libraries/**/*', +- 'web/modules/contrib/**/*', +- 'web/profiles/contrib/**/*', +- 'web/themes/contrib/**/*', +- 'web/sites/*/files/**/*', ++ 'docroot/core/**/*', ++ 'docroot/libraries/**/*', ++ 'docroot/modules/contrib/**/*', ++ 'docroot/profiles/contrib/**/*', ++ 'docroot/themes/contrib/**/*', ++ 'docroot/sites/*/files/**/*', + '**/build/**/*', + '**/*.min.js', + ], diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/package.json b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/package.json index 3023cd9a8d..c471131aa6 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/package.json +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/package.json @@ -2,15 +2,15 @@ "node": ">= __VERSION__" }, "scripts": { -- "lint-js": "eslint web/modules/custom --ext .js --max-warnings=0 --no-error-on-unmatched-pattern", +- "lint-js": "eslint web/modules/custom --max-warnings=0 --no-error-on-unmatched-pattern", - "lint-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\"", -+ "lint-js": "eslint docroot/modules/custom --ext .js --max-warnings=0 --no-error-on-unmatched-pattern", ++ "lint-js": "eslint docroot/modules/custom --max-warnings=0 --no-error-on-unmatched-pattern", + "lint-css": "stylelint --allow-empty-input \"docroot/modules/custom/**/*.css\"", - "lint": "yarn run lint-js && yarn run lint-css", -- "lint-fix-js": "eslint web/modules/custom --ext .js --no-error-on-unmatched-pattern --fix", + "lint": "npm run lint-js && npm run lint-css", +- "lint-fix-js": "eslint web/modules/custom --no-error-on-unmatched-pattern --fix", - "lint-fix-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\" --fix", -+ "lint-fix-js": "eslint docroot/modules/custom --ext .js --no-error-on-unmatched-pattern --fix", ++ "lint-fix-js": "eslint docroot/modules/custom --no-error-on-unmatched-pattern --fix", + "lint-fix-css": "stylelint --allow-empty-input \"docroot/modules/custom/**/*.css\" --fix", - "lint-fix": "yarn run lint-fix-js && yarn run lint-fix-css", + "lint-fix": "npm run lint-fix-js && npm run lint-fix-css", "test": "jest --coverage --passWithNoTests" }, diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/rector.php b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/rector.php index 29fec454e9..c1f2ff0845 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/rector.php +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/rector.php @@ -17,8 +17,8 @@ RenameVariableToMatchNewTypeRector::class, SimplifyEmptyCheckOnEmptyArrayRector::class, StringClassNameToClassConstantRector::class => [ -- __DIR__ . '/web/sites/default/includes/**/*', -+ __DIR__ . '/docroot/sites/default/includes/**/*', +- __DIR__ . '/web/sites/default/includes/*', ++ __DIR__ . '/docroot/sites/default/includes/*', ], // Directories to skip. '*/vendor/*', diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/tests/phpunit/Drupal/EnvironmentSettingsTest.php index 105f4ce73d..6a29e7fef9 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/tests/phpunit/Drupal/EnvironmentSettingsTest.php +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/tests/phpunit/Drupal/EnvironmentSettingsTest.php @@ -50,9 +50,9 @@ /** @@ -384,6 +428,349 @@ + $settings['maintenance_theme'] = 'claro'; $settings['skip_permissions_hardening'] = TRUE; $settings['config_sync_directory'] = '../config/default'; - $settings['suspend_mail_send'] = TRUE; + $settings['trusted_host_patterns'] = [ + '^localhost$', + '^127\.0\.0\.1$', diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/tests/phpunit/Drupal/SettingsTestCase.php b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/tests/phpunit/Drupal/SettingsTestCase.php index 5401f46011..051064cd21 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/tests/phpunit/Drupal/SettingsTestCase.php +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/tests/phpunit/Drupal/SettingsTestCase.php @@ -1,4 +1,4 @@ -@@ -214,7 +214,7 @@ +@@ -204,7 +204,7 @@ * Require settings file. */ protected function requireSettingsFile(array $pre_settings = [], array $pre_config = []): void { diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/web/sites/default/includes/modules/-settings.sw_base.php b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/web/themes/custom/star_wars/-eslint.config.mjs similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/hosting_acquia/web/sites/default/includes/modules/-settings.sw_base.php rename to .vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/web/themes/custom/star_wars/-eslint.config.mjs diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_acquia/web/themes/custom/star_wars/-.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/web/themes/custom/star_wars/-package-lock.json similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/hosting_acquia/web/themes/custom/star_wars/-.eslintrc.json rename to .vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/web/themes/custom/star_wars/-package-lock.json diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___lagoon/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___lagoon/.github/workflows/build-test-deploy.yml index 5d1a7f2bc9..3569e59c68 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___lagoon/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___lagoon/.github/workflows/build-test-deploy.yml @@ -1,4 +1,4 @@ -@@ -248,6 +248,15 @@ +@@ -274,6 +274,15 @@ - name: Login to container registry run: ./vendor/bin/vortex-login-container-registry @@ -14,7 +14,7 @@ # On the first build of the day (cache miss), fetch a fresh DB dump. # On subsequent builds, the restored cache already contains the dump and # the fetch script skips itself, leaving no semaphore file behind. -@@ -553,7 +562,6 @@ +@@ -589,7 +598,6 @@ VORTEX_DEPLOY_PR: ${{ env.DEPLOY_PR_NUMBER || github.event.number }} VORTEX_DEPLOY_PR_HEAD: ${{ env.DEPLOY_PR_HEAD_SHA || github.event.pull_request.head.sha }} VORTEX_DEPLOY_PR_LABELS: ${{ join(github.event.pull_request.labels.*.name, ',') }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___lagoon/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___lagoon/docker-compose.yml index 7464d839bc..274b83248e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___lagoon/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___lagoon/docker-compose.yml @@ -6,7 +6,7 @@ x-environment: &default-environment TZ: ${TZ:-UTC} # Pass-through 'CI' variable used to identify the CI environment. -@@ -105,6 +106,10 @@ +@@ -106,6 +107,10 @@ wait-for-dependencies: condition: service_completed_successfully user: root @@ -17,7 +17,7 @@ webserver: build: -@@ -125,6 +130,11 @@ +@@ -126,6 +131,11 @@ networks: - default # This is a standard network and is used for all other environments, where requests routing is not required and/or not supported. - amazeeio-network ### This network is supported by Pygmy and used to route all requests to host machine locally. Removed in CI. @@ -29,7 +29,7 @@ # PHP FPM container. All web requests are going through this container. appserver: -@@ -140,6 +150,11 @@ +@@ -141,6 +151,11 @@ <<: [ *default-volumes, *default-user ] depends_on: - cli @@ -41,7 +41,7 @@ database: build: -@@ -152,9 +167,13 @@ +@@ -153,9 +168,13 @@ <<: *default-user ports: - '3306' # Database port in a container. Find port on host with `ahoy info` or `docker compose port database 3306`. @@ -55,7 +55,7 @@ search: build: -@@ -166,6 +185,8 @@ +@@ -167,6 +186,8 @@ - search:/var/solr ports: - '8983' # Solr port in a container. Find port on host with `ahoy info` or `docker compose port search 8983`. @@ -64,7 +64,7 @@ antivirus: build: -@@ -177,6 +198,10 @@ +@@ -178,6 +199,10 @@ - '3310' # Find port on host with `docker compose port antivirus 3310`. networks: - default @@ -75,7 +75,7 @@ # Browser container, used for browser testing. browser: -@@ -189,6 +214,8 @@ +@@ -190,6 +215,8 @@ ports: - '7900' # Find port on host with `docker compose port browser 7900`. shm_size: '1gb' # Increase '/dev/shm' partition size to avoid browser crashing. @@ -84,7 +84,7 @@ # Helper container to wait for services to become available. wait-for-dependencies: -@@ -204,6 +231,8 @@ +@@ -205,6 +232,8 @@ - cache:6379 - search:8983 - curl -s "http://search:8983/solr/drupal/select?q=*:*&rows=0&wt=json" | grep response diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_disabled_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/migration_disabled_circleci/.circleci/config.yml index 127c379866..4acc6eb0fc 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_disabled_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_disabled_circleci/.circleci/config.yml @@ -139,7 +139,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -167,13 +167,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -184,14 +184,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -206,6 +207,28 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -258,10 +281,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -303,7 +326,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -312,7 +335,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -320,27 +343,29 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -349,14 +374,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -365,7 +390,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -377,10 +402,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -389,9 +415,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_disabled_lagoon/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/migration_disabled_lagoon/.github/workflows/build-test-deploy.yml index 5d1a7f2bc9..3569e59c68 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_disabled_lagoon/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_disabled_lagoon/.github/workflows/build-test-deploy.yml @@ -1,4 +1,4 @@ -@@ -248,6 +248,15 @@ +@@ -274,6 +274,15 @@ - name: Login to container registry run: ./vendor/bin/vortex-login-container-registry @@ -14,7 +14,7 @@ # On the first build of the day (cache miss), fetch a fresh DB dump. # On subsequent builds, the restored cache already contains the dump and # the fetch script skips itself, leaving no semaphore file behind. -@@ -553,7 +562,6 @@ +@@ -589,7 +598,6 @@ VORTEX_DEPLOY_PR: ${{ env.DEPLOY_PR_NUMBER || github.event.number }} VORTEX_DEPLOY_PR_HEAD: ${{ env.DEPLOY_PR_HEAD_SHA || github.event.pull_request.head.sha }} VORTEX_DEPLOY_PR_LABELS: ${{ join(github.event.pull_request.labels.*.name, ',') }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_disabled_lagoon/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/migration_disabled_lagoon/docker-compose.yml index 7464d839bc..274b83248e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_disabled_lagoon/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_disabled_lagoon/docker-compose.yml @@ -6,7 +6,7 @@ x-environment: &default-environment TZ: ${TZ:-UTC} # Pass-through 'CI' variable used to identify the CI environment. -@@ -105,6 +106,10 @@ +@@ -106,6 +107,10 @@ wait-for-dependencies: condition: service_completed_successfully user: root @@ -17,7 +17,7 @@ webserver: build: -@@ -125,6 +130,11 @@ +@@ -126,6 +131,11 @@ networks: - default # This is a standard network and is used for all other environments, where requests routing is not required and/or not supported. - amazeeio-network ### This network is supported by Pygmy and used to route all requests to host machine locally. Removed in CI. @@ -29,7 +29,7 @@ # PHP FPM container. All web requests are going through this container. appserver: -@@ -140,6 +150,11 @@ +@@ -141,6 +151,11 @@ <<: [ *default-volumes, *default-user ] depends_on: - cli @@ -41,7 +41,7 @@ database: build: -@@ -152,9 +167,13 @@ +@@ -153,9 +168,13 @@ <<: *default-user ports: - '3306' # Database port in a container. Find port on host with `ahoy info` or `docker compose port database 3306`. @@ -55,7 +55,7 @@ search: build: -@@ -166,6 +185,8 @@ +@@ -167,6 +186,8 @@ - search:/var/solr ports: - '8983' # Solr port in a container. Find port on host with `ahoy info` or `docker compose port search 8983`. @@ -64,7 +64,7 @@ antivirus: build: -@@ -177,6 +198,10 @@ +@@ -178,6 +199,10 @@ - '3310' # Find port on host with `docker compose port antivirus 3310`. networks: - default @@ -75,7 +75,7 @@ # Browser container, used for browser testing. browser: -@@ -189,6 +214,8 @@ +@@ -190,6 +215,8 @@ ports: - '7900' # Find port on host with `docker compose port browser 7900`. shm_size: '1gb' # Increase '/dev/shm' partition size to avoid browser crashing. @@ -84,7 +84,7 @@ # Helper container to wait for services to become available. wait-for-dependencies: -@@ -204,6 +231,8 @@ +@@ -205,6 +232,8 @@ - cache:6379 - search:8983 - curl -s "http://search:8983/solr/drupal/select?q=*:*&rows=0&wt=json" | grep response diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled/.github/workflows/build-test-deploy.yml index 580efba3cf..6671189d80 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled/.github/workflows/build-test-deploy.yml @@ -1,4 +1,4 @@ -@@ -257,6 +257,9 @@ +@@ -283,6 +283,9 @@ echo "db_hash=${{ hashFiles('.data') }}" >> "$GITHUB_ENV" timeout-minutes: 30 @@ -8,14 +8,14 @@ - name: Build stack run: docker compose up --detach && docker builder prune --all --force && docker image prune --force -@@ -300,6 +303,11 @@ +@@ -326,6 +329,11 @@ docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql + fi + if [ -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" ]; then + docker compose exec -T cli mkdir -p .data -+ docker compose cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" ++ docker compose --progress quiet cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" + rm -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled/docker-compose.yml index 3a0b1b0ba2..0832fd028e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled/docker-compose.yml @@ -1,4 +1,4 @@ -@@ -56,6 +56,16 @@ +@@ -57,6 +57,16 @@ DRUPAL_SHIELD_PASS: ${DRUPAL_SHIELD_PASS:-} # Redis integration flag. DRUPAL_REDIS_ENABLED: ${DRUPAL_REDIS_ENABLED:-} @@ -15,7 +15,7 @@ # The default user under which the containers should run. x-user: &default-user -@@ -153,6 +163,19 @@ +@@ -154,6 +164,19 @@ ports: - '3306' # Database port in a container. Find port on host with `ahoy info` or `docker compose port database 3306`. @@ -35,7 +35,7 @@ cache: image: uselagoon/valkey-8:__VERSION__ -@@ -196,11 +219,13 @@ +@@ -197,11 +220,13 @@ depends_on: - antivirus - database diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php index 0c430da957..d87ab591fd 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php @@ -96,7 +96,35 @@ public function run(): void { $options['update'] = TRUE; } + // Indexing each migrated entity as it is saved makes the import slower and + // leaves the index holding intermediate states, so the search server is + // disabled for the duration of the run and the index is rebuilt after it. + $disable_search = $this->searchDisabled(); + + if ($disable_search) { + $this->drush('search-api:server-disable', ['solr']); + } + $this->drush('migrate:import', [], $options); + + if ($disable_search) { + $this->drush('search-api:server-enable', ['solr']); + $this->drush('search-api:enable-all'); + } + } + + /** + * Checks whether the search server should be disabled during the import. + * + * @return bool + * TRUE when the Solr server is present and disabling it was not opted out. + */ + protected function searchDisabled(): bool { + if ($this->env('DRUPAL_MIGRATION_SEARCH_DISABLE', '1') !== '1') { + return FALSE; + } + + return $this->moduleHandler->moduleExists('search_api_solr'); } /** diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled/web/sites/default/settings.php b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled/web/sites/default/settings.php index 20cc1ff13b..5a786e6e95 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled/web/sites/default/settings.php +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled/web/sites/default/settings.php @@ -12,4 +12,4 @@ +//////////////////////////////////////////////////////////////////////////////// /// LOCAL OVERRIDE /// //////////////////////////////////////////////////////////////////////////////// - // @see https://www.vortextemplate.com/docs/drupal/settings#local-overrides + // @see https://www.vortextemplate.com/docs/development/settings#local-overrides diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_circleci/.circleci/config.yml index 3d5cd648e7..0003848156 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_circleci/.circleci/config.yml @@ -139,7 +139,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -167,13 +167,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -184,14 +184,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -206,6 +207,28 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -263,10 +286,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -308,7 +331,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -317,12 +340,12 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi if [ -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" ]; then docker compose exec -T cli mkdir -p .data - docker compose cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" + docker compose --progress quiet cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" rm -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -330,27 +353,29 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -359,14 +384,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -375,7 +400,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -387,10 +412,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -399,9 +425,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_circleci/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_circleci/docker-compose.yml index 3a0b1b0ba2..0832fd028e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_circleci/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_circleci/docker-compose.yml @@ -1,4 +1,4 @@ -@@ -56,6 +56,16 @@ +@@ -57,6 +57,16 @@ DRUPAL_SHIELD_PASS: ${DRUPAL_SHIELD_PASS:-} # Redis integration flag. DRUPAL_REDIS_ENABLED: ${DRUPAL_REDIS_ENABLED:-} @@ -15,7 +15,7 @@ # The default user under which the containers should run. x-user: &default-user -@@ -153,6 +163,19 @@ +@@ -154,6 +164,19 @@ ports: - '3306' # Database port in a container. Find port on host with `ahoy info` or `docker compose port database 3306`. @@ -35,7 +35,7 @@ cache: image: uselagoon/valkey-8:__VERSION__ -@@ -196,11 +219,13 @@ +@@ -197,11 +220,13 @@ depends_on: - antivirus - database diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_circleci/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_circleci/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php index 0c430da957..d87ab591fd 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_circleci/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_circleci/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php @@ -96,7 +96,35 @@ public function run(): void { $options['update'] = TRUE; } + // Indexing each migrated entity as it is saved makes the import slower and + // leaves the index holding intermediate states, so the search server is + // disabled for the duration of the run and the index is rebuilt after it. + $disable_search = $this->searchDisabled(); + + if ($disable_search) { + $this->drush('search-api:server-disable', ['solr']); + } + $this->drush('migrate:import', [], $options); + + if ($disable_search) { + $this->drush('search-api:server-enable', ['solr']); + $this->drush('search-api:enable-all'); + } + } + + /** + * Checks whether the search server should be disabled during the import. + * + * @return bool + * TRUE when the Solr server is present and disabling it was not opted out. + */ + protected function searchDisabled(): bool { + if ($this->env('DRUPAL_MIGRATION_SEARCH_DISABLE', '1') !== '1') { + return FALSE; + } + + return $this->moduleHandler->moduleExists('search_api_solr'); } /** diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_circleci/web/sites/default/settings.php b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_circleci/web/sites/default/settings.php index 20cc1ff13b..5a786e6e95 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_circleci/web/sites/default/settings.php +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_circleci/web/sites/default/settings.php @@ -12,4 +12,4 @@ +//////////////////////////////////////////////////////////////////////////////// /// LOCAL OVERRIDE /// //////////////////////////////////////////////////////////////////////////////// - // @see https://www.vortextemplate.com/docs/drupal/settings#local-overrides + // @see https://www.vortextemplate.com/docs/development/settings#local-overrides diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_lagoon/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_lagoon/.github/workflows/build-test-deploy.yml index 032fefbd98..e025e1ba1f 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_lagoon/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_lagoon/.github/workflows/build-test-deploy.yml @@ -1,4 +1,4 @@ -@@ -248,6 +248,15 @@ +@@ -274,6 +274,15 @@ - name: Login to container registry run: ./vendor/bin/vortex-login-container-registry @@ -14,7 +14,7 @@ # On the first build of the day (cache miss), fetch a fresh DB dump. # On subsequent builds, the restored cache already contains the dump and # the fetch script skips itself, leaving no semaphore file behind. -@@ -257,6 +266,9 @@ +@@ -283,6 +292,9 @@ echo "db_hash=${{ hashFiles('.data') }}" >> "$GITHUB_ENV" timeout-minutes: 30 @@ -24,19 +24,19 @@ - name: Build stack run: docker compose up --detach && docker builder prune --all --force && docker image prune --force -@@ -301,6 +313,11 @@ - docker compose cp -L .data/db.sql cli:/app/.data/db.sql +@@ -327,6 +339,11 @@ + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi + if [ -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" ]; then + docker compose exec -T cli mkdir -p .data -+ docker compose cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" ++ docker compose --progress quiet cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" + rm -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" + fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision timeout-minutes: 30 -@@ -553,7 +570,6 @@ +@@ -589,7 +606,6 @@ VORTEX_DEPLOY_PR: ${{ env.DEPLOY_PR_NUMBER || github.event.number }} VORTEX_DEPLOY_PR_HEAD: ${{ env.DEPLOY_PR_HEAD_SHA || github.event.pull_request.head.sha }} VORTEX_DEPLOY_PR_LABELS: ${{ join(github.event.pull_request.labels.*.name, ',') }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_lagoon/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_lagoon/docker-compose.yml index f7b45b5ce6..d97f8c8f50 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_lagoon/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_lagoon/docker-compose.yml @@ -6,7 +6,7 @@ x-environment: &default-environment TZ: ${TZ:-UTC} # Pass-through 'CI' variable used to identify the CI environment. -@@ -56,6 +57,16 @@ +@@ -57,6 +58,16 @@ DRUPAL_SHIELD_PASS: ${DRUPAL_SHIELD_PASS:-} # Redis integration flag. DRUPAL_REDIS_ENABLED: ${DRUPAL_REDIS_ENABLED:-} @@ -23,7 +23,7 @@ # The default user under which the containers should run. x-user: &default-user -@@ -105,6 +116,10 @@ +@@ -106,6 +117,10 @@ wait-for-dependencies: condition: service_completed_successfully user: root @@ -34,7 +34,7 @@ webserver: build: -@@ -125,6 +140,11 @@ +@@ -126,6 +141,11 @@ networks: - default # This is a standard network and is used for all other environments, where requests routing is not required and/or not supported. - amazeeio-network ### This network is supported by Pygmy and used to route all requests to host machine locally. Removed in CI. @@ -46,7 +46,7 @@ # PHP FPM container. All web requests are going through this container. appserver: -@@ -140,6 +160,11 @@ +@@ -141,6 +161,11 @@ <<: [ *default-volumes, *default-user ] depends_on: - cli @@ -58,7 +58,7 @@ database: build: -@@ -152,9 +177,26 @@ +@@ -153,9 +178,26 @@ <<: *default-user ports: - '3306' # Database port in a container. Find port on host with `ahoy info` or `docker compose port database 3306`. @@ -85,7 +85,7 @@ search: build: -@@ -166,6 +208,8 @@ +@@ -167,6 +209,8 @@ - search:/var/solr ports: - '8983' # Solr port in a container. Find port on host with `ahoy info` or `docker compose port search 8983`. @@ -94,7 +94,7 @@ antivirus: build: -@@ -177,6 +221,10 @@ +@@ -178,6 +222,10 @@ - '3310' # Find port on host with `docker compose port antivirus 3310`. networks: - default @@ -105,7 +105,7 @@ # Browser container, used for browser testing. browser: -@@ -189,6 +237,8 @@ +@@ -190,6 +238,8 @@ ports: - '7900' # Find port on host with `docker compose port browser 7900`. shm_size: '1gb' # Increase '/dev/shm' partition size to avoid browser crashing. @@ -114,7 +114,7 @@ # Helper container to wait for services to become available. wait-for-dependencies: -@@ -196,14 +246,18 @@ +@@ -197,14 +247,18 @@ depends_on: - antivirus - database diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_lagoon/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_lagoon/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php index 0c430da957..d87ab591fd 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_lagoon/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_lagoon/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php @@ -96,7 +96,35 @@ public function run(): void { $options['update'] = TRUE; } + // Indexing each migrated entity as it is saved makes the import slower and + // leaves the index holding intermediate states, so the search server is + // disabled for the duration of the run and the index is rebuilt after it. + $disable_search = $this->searchDisabled(); + + if ($disable_search) { + $this->drush('search-api:server-disable', ['solr']); + } + $this->drush('migrate:import', [], $options); + + if ($disable_search) { + $this->drush('search-api:server-enable', ['solr']); + $this->drush('search-api:enable-all'); + } + } + + /** + * Checks whether the search server should be disabled during the import. + * + * @return bool + * TRUE when the Solr server is present and disabling it was not opted out. + */ + protected function searchDisabled(): bool { + if ($this->env('DRUPAL_MIGRATION_SEARCH_DISABLE', '1') !== '1') { + return FALSE; + } + + return $this->moduleHandler->moduleExists('search_api_solr'); } /** diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_lagoon/web/sites/default/settings.php b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_lagoon/web/sites/default/settings.php index 20cc1ff13b..5a786e6e95 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_lagoon/web/sites/default/settings.php +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_enabled_lagoon/web/sites/default/settings.php @@ -12,4 +12,4 @@ +//////////////////////////////////////////////////////////////////////////////// /// LOCAL OVERRIDE /// //////////////////////////////////////////////////////////////////////////////// - // @see https://www.vortextemplate.com/docs/drupal/settings#local-overrides + // @see https://www.vortextemplate.com/docs/development/settings#local-overrides diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_acquia/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_acquia/.github/workflows/build-test-deploy.yml index bc54a81634..8b194d9139 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_acquia/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_acquia/.github/workflows/build-test-deploy.yml @@ -1,4 +1,4 @@ -@@ -257,6 +257,12 @@ +@@ -283,6 +283,12 @@ echo "db_hash=${{ hashFiles('.data') }}" >> "$GITHUB_ENV" timeout-minutes: 30 @@ -11,14 +11,14 @@ - name: Build stack run: docker compose up --detach && docker builder prune --all --force && docker image prune --force -@@ -300,6 +306,11 @@ +@@ -326,6 +332,11 @@ docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql + fi + if [ -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" ]; then + docker compose exec -T cli mkdir -p .data -+ docker compose cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" ++ docker compose --progress quiet cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" + rm -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_acquia/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_acquia/docker-compose.yml index 3a0b1b0ba2..0832fd028e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_acquia/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_acquia/docker-compose.yml @@ -1,4 +1,4 @@ -@@ -56,6 +56,16 @@ +@@ -57,6 +57,16 @@ DRUPAL_SHIELD_PASS: ${DRUPAL_SHIELD_PASS:-} # Redis integration flag. DRUPAL_REDIS_ENABLED: ${DRUPAL_REDIS_ENABLED:-} @@ -15,7 +15,7 @@ # The default user under which the containers should run. x-user: &default-user -@@ -153,6 +163,19 @@ +@@ -154,6 +164,19 @@ ports: - '3306' # Database port in a container. Find port on host with `ahoy info` or `docker compose port database 3306`. @@ -35,7 +35,7 @@ cache: image: uselagoon/valkey-8:__VERSION__ -@@ -196,11 +219,13 @@ +@@ -197,11 +220,13 @@ depends_on: - antivirus - database diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_acquia/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_acquia/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php index 0c430da957..d87ab591fd 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_acquia/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_acquia/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php @@ -96,7 +96,35 @@ public function run(): void { $options['update'] = TRUE; } + // Indexing each migrated entity as it is saved makes the import slower and + // leaves the index holding intermediate states, so the search server is + // disabled for the duration of the run and the index is rebuilt after it. + $disable_search = $this->searchDisabled(); + + if ($disable_search) { + $this->drush('search-api:server-disable', ['solr']); + } + $this->drush('migrate:import', [], $options); + + if ($disable_search) { + $this->drush('search-api:server-enable', ['solr']); + $this->drush('search-api:enable-all'); + } + } + + /** + * Checks whether the search server should be disabled during the import. + * + * @return bool + * TRUE when the Solr server is present and disabling it was not opted out. + */ + protected function searchDisabled(): bool { + if ($this->env('DRUPAL_MIGRATION_SEARCH_DISABLE', '1') !== '1') { + return FALSE; + } + + return $this->moduleHandler->moduleExists('search_api_solr'); } /** diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_acquia/web/sites/default/settings.php b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_acquia/web/sites/default/settings.php index 20cc1ff13b..5a786e6e95 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_acquia/web/sites/default/settings.php +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_acquia/web/sites/default/settings.php @@ -12,4 +12,4 @@ +//////////////////////////////////////////////////////////////////////////////// /// LOCAL OVERRIDE /// //////////////////////////////////////////////////////////////////////////////// - // @see https://www.vortextemplate.com/docs/drupal/settings#local-overrides + // @see https://www.vortextemplate.com/docs/development/settings#local-overrides diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_container_registry/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_container_registry/.github/workflows/build-test-deploy.yml index 580efba3cf..6671189d80 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_container_registry/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_container_registry/.github/workflows/build-test-deploy.yml @@ -1,4 +1,4 @@ -@@ -257,6 +257,9 @@ +@@ -283,6 +283,9 @@ echo "db_hash=${{ hashFiles('.data') }}" >> "$GITHUB_ENV" timeout-minutes: 30 @@ -8,14 +8,14 @@ - name: Build stack run: docker compose up --detach && docker builder prune --all --force && docker image prune --force -@@ -300,6 +303,11 @@ +@@ -326,6 +329,11 @@ docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql + fi + if [ -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" ]; then + docker compose exec -T cli mkdir -p .data -+ docker compose cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" ++ docker compose --progress quiet cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" + rm -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_container_registry/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_container_registry/docker-compose.yml index 3a0b1b0ba2..0832fd028e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_container_registry/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_container_registry/docker-compose.yml @@ -1,4 +1,4 @@ -@@ -56,6 +56,16 @@ +@@ -57,6 +57,16 @@ DRUPAL_SHIELD_PASS: ${DRUPAL_SHIELD_PASS:-} # Redis integration flag. DRUPAL_REDIS_ENABLED: ${DRUPAL_REDIS_ENABLED:-} @@ -15,7 +15,7 @@ # The default user under which the containers should run. x-user: &default-user -@@ -153,6 +163,19 @@ +@@ -154,6 +164,19 @@ ports: - '3306' # Database port in a container. Find port on host with `ahoy info` or `docker compose port database 3306`. @@ -35,7 +35,7 @@ cache: image: uselagoon/valkey-8:__VERSION__ -@@ -196,11 +219,13 @@ +@@ -197,11 +220,13 @@ depends_on: - antivirus - database diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_container_registry/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_container_registry/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php index 0c430da957..d87ab591fd 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_container_registry/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_container_registry/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php @@ -96,7 +96,35 @@ public function run(): void { $options['update'] = TRUE; } + // Indexing each migrated entity as it is saved makes the import slower and + // leaves the index holding intermediate states, so the search server is + // disabled for the duration of the run and the index is rebuilt after it. + $disable_search = $this->searchDisabled(); + + if ($disable_search) { + $this->drush('search-api:server-disable', ['solr']); + } + $this->drush('migrate:import', [], $options); + + if ($disable_search) { + $this->drush('search-api:server-enable', ['solr']); + $this->drush('search-api:enable-all'); + } + } + + /** + * Checks whether the search server should be disabled during the import. + * + * @return bool + * TRUE when the Solr server is present and disabling it was not opted out. + */ + protected function searchDisabled(): bool { + if ($this->env('DRUPAL_MIGRATION_SEARCH_DISABLE', '1') !== '1') { + return FALSE; + } + + return $this->moduleHandler->moduleExists('search_api_solr'); } /** diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_container_registry/web/sites/default/settings.php b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_container_registry/web/sites/default/settings.php index 20cc1ff13b..5a786e6e95 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_container_registry/web/sites/default/settings.php +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_container_registry/web/sites/default/settings.php @@ -12,4 +12,4 @@ +//////////////////////////////////////////////////////////////////////////////// /// LOCAL OVERRIDE /// //////////////////////////////////////////////////////////////////////////////// - // @see https://www.vortextemplate.com/docs/drupal/settings#local-overrides + // @see https://www.vortextemplate.com/docs/development/settings#local-overrides diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_ftp/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_ftp/.github/workflows/build-test-deploy.yml index 580efba3cf..6671189d80 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_ftp/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_ftp/.github/workflows/build-test-deploy.yml @@ -1,4 +1,4 @@ -@@ -257,6 +257,9 @@ +@@ -283,6 +283,9 @@ echo "db_hash=${{ hashFiles('.data') }}" >> "$GITHUB_ENV" timeout-minutes: 30 @@ -8,14 +8,14 @@ - name: Build stack run: docker compose up --detach && docker builder prune --all --force && docker image prune --force -@@ -300,6 +303,11 @@ +@@ -326,6 +329,11 @@ docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql + fi + if [ -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" ]; then + docker compose exec -T cli mkdir -p .data -+ docker compose cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" ++ docker compose --progress quiet cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" + rm -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_ftp/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_ftp/docker-compose.yml index 3a0b1b0ba2..0832fd028e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_ftp/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_ftp/docker-compose.yml @@ -1,4 +1,4 @@ -@@ -56,6 +56,16 @@ +@@ -57,6 +57,16 @@ DRUPAL_SHIELD_PASS: ${DRUPAL_SHIELD_PASS:-} # Redis integration flag. DRUPAL_REDIS_ENABLED: ${DRUPAL_REDIS_ENABLED:-} @@ -15,7 +15,7 @@ # The default user under which the containers should run. x-user: &default-user -@@ -153,6 +163,19 @@ +@@ -154,6 +164,19 @@ ports: - '3306' # Database port in a container. Find port on host with `ahoy info` or `docker compose port database 3306`. @@ -35,7 +35,7 @@ cache: image: uselagoon/valkey-8:__VERSION__ -@@ -196,11 +219,13 @@ +@@ -197,11 +220,13 @@ depends_on: - antivirus - database diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_ftp/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_ftp/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php index 0c430da957..d87ab591fd 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_ftp/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_ftp/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php @@ -96,7 +96,35 @@ public function run(): void { $options['update'] = TRUE; } + // Indexing each migrated entity as it is saved makes the import slower and + // leaves the index holding intermediate states, so the search server is + // disabled for the duration of the run and the index is rebuilt after it. + $disable_search = $this->searchDisabled(); + + if ($disable_search) { + $this->drush('search-api:server-disable', ['solr']); + } + $this->drush('migrate:import', [], $options); + + if ($disable_search) { + $this->drush('search-api:server-enable', ['solr']); + $this->drush('search-api:enable-all'); + } + } + + /** + * Checks whether the search server should be disabled during the import. + * + * @return bool + * TRUE when the Solr server is present and disabling it was not opted out. + */ + protected function searchDisabled(): bool { + if ($this->env('DRUPAL_MIGRATION_SEARCH_DISABLE', '1') !== '1') { + return FALSE; + } + + return $this->moduleHandler->moduleExists('search_api_solr'); } /** diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_ftp/web/sites/default/settings.php b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_ftp/web/sites/default/settings.php index 20cc1ff13b..5a786e6e95 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_ftp/web/sites/default/settings.php +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_ftp/web/sites/default/settings.php @@ -12,4 +12,4 @@ +//////////////////////////////////////////////////////////////////////////////// /// LOCAL OVERRIDE /// //////////////////////////////////////////////////////////////////////////////// - // @see https://www.vortextemplate.com/docs/drupal/settings#local-overrides + // @see https://www.vortextemplate.com/docs/development/settings#local-overrides diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_lagoon/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_lagoon/.github/workflows/build-test-deploy.yml index 9de3fc9971..24f69da4cb 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_lagoon/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_lagoon/.github/workflows/build-test-deploy.yml @@ -1,4 +1,4 @@ -@@ -248,6 +248,15 @@ +@@ -274,6 +274,15 @@ - name: Login to container registry run: ./vendor/bin/vortex-login-container-registry @@ -14,7 +14,7 @@ # On the first build of the day (cache miss), fetch a fresh DB dump. # On subsequent builds, the restored cache already contains the dump and # the fetch script skips itself, leaving no semaphore file behind. -@@ -257,6 +266,9 @@ +@@ -283,6 +292,9 @@ echo "db_hash=${{ hashFiles('.data') }}" >> "$GITHUB_ENV" timeout-minutes: 30 @@ -24,14 +24,14 @@ - name: Build stack run: docker compose up --detach && docker builder prune --all --force && docker image prune --force -@@ -300,6 +312,11 @@ +@@ -326,6 +338,11 @@ docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql + fi + if [ -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" ]; then + docker compose exec -T cli mkdir -p .data -+ docker compose cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" ++ docker compose --progress quiet cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" + rm -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_lagoon/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_lagoon/docker-compose.yml index 3a0b1b0ba2..0832fd028e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_lagoon/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_lagoon/docker-compose.yml @@ -1,4 +1,4 @@ -@@ -56,6 +56,16 @@ +@@ -57,6 +57,16 @@ DRUPAL_SHIELD_PASS: ${DRUPAL_SHIELD_PASS:-} # Redis integration flag. DRUPAL_REDIS_ENABLED: ${DRUPAL_REDIS_ENABLED:-} @@ -15,7 +15,7 @@ # The default user under which the containers should run. x-user: &default-user -@@ -153,6 +163,19 @@ +@@ -154,6 +164,19 @@ ports: - '3306' # Database port in a container. Find port on host with `ahoy info` or `docker compose port database 3306`. @@ -35,7 +35,7 @@ cache: image: uselagoon/valkey-8:__VERSION__ -@@ -196,11 +219,13 @@ +@@ -197,11 +220,13 @@ depends_on: - antivirus - database diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_lagoon/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_lagoon/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php index 0c430da957..d87ab591fd 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_lagoon/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_lagoon/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php @@ -96,7 +96,35 @@ public function run(): void { $options['update'] = TRUE; } + // Indexing each migrated entity as it is saved makes the import slower and + // leaves the index holding intermediate states, so the search server is + // disabled for the duration of the run and the index is rebuilt after it. + $disable_search = $this->searchDisabled(); + + if ($disable_search) { + $this->drush('search-api:server-disable', ['solr']); + } + $this->drush('migrate:import', [], $options); + + if ($disable_search) { + $this->drush('search-api:server-enable', ['solr']); + $this->drush('search-api:enable-all'); + } + } + + /** + * Checks whether the search server should be disabled during the import. + * + * @return bool + * TRUE when the Solr server is present and disabling it was not opted out. + */ + protected function searchDisabled(): bool { + if ($this->env('DRUPAL_MIGRATION_SEARCH_DISABLE', '1') !== '1') { + return FALSE; + } + + return $this->moduleHandler->moduleExists('search_api_solr'); } /** diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_lagoon/web/sites/default/settings.php b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_lagoon/web/sites/default/settings.php index 20cc1ff13b..5a786e6e95 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_lagoon/web/sites/default/settings.php +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_lagoon/web/sites/default/settings.php @@ -12,4 +12,4 @@ +//////////////////////////////////////////////////////////////////////////////// /// LOCAL OVERRIDE /// //////////////////////////////////////////////////////////////////////////////// - // @see https://www.vortextemplate.com/docs/drupal/settings#local-overrides + // @see https://www.vortextemplate.com/docs/development/settings#local-overrides diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_s3/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_s3/.github/workflows/build-test-deploy.yml index 580efba3cf..6671189d80 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_s3/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_s3/.github/workflows/build-test-deploy.yml @@ -1,4 +1,4 @@ -@@ -257,6 +257,9 @@ +@@ -283,6 +283,9 @@ echo "db_hash=${{ hashFiles('.data') }}" >> "$GITHUB_ENV" timeout-minutes: 30 @@ -8,14 +8,14 @@ - name: Build stack run: docker compose up --detach && docker builder prune --all --force && docker image prune --force -@@ -300,6 +303,11 @@ +@@ -326,6 +329,11 @@ docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql + fi + if [ -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" ]; then + docker compose exec -T cli mkdir -p .data -+ docker compose cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" ++ docker compose --progress quiet cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" + rm -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_s3/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_s3/docker-compose.yml index 3a0b1b0ba2..0832fd028e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_s3/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_s3/docker-compose.yml @@ -1,4 +1,4 @@ -@@ -56,6 +56,16 @@ +@@ -57,6 +57,16 @@ DRUPAL_SHIELD_PASS: ${DRUPAL_SHIELD_PASS:-} # Redis integration flag. DRUPAL_REDIS_ENABLED: ${DRUPAL_REDIS_ENABLED:-} @@ -15,7 +15,7 @@ # The default user under which the containers should run. x-user: &default-user -@@ -153,6 +163,19 @@ +@@ -154,6 +164,19 @@ ports: - '3306' # Database port in a container. Find port on host with `ahoy info` or `docker compose port database 3306`. @@ -35,7 +35,7 @@ cache: image: uselagoon/valkey-8:__VERSION__ -@@ -196,11 +219,13 @@ +@@ -197,11 +220,13 @@ depends_on: - antivirus - database diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_s3/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_s3/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php index 0c430da957..d87ab591fd 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_s3/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_s3/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php @@ -96,7 +96,35 @@ public function run(): void { $options['update'] = TRUE; } + // Indexing each migrated entity as it is saved makes the import slower and + // leaves the index holding intermediate states, so the search server is + // disabled for the duration of the run and the index is rebuilt after it. + $disable_search = $this->searchDisabled(); + + if ($disable_search) { + $this->drush('search-api:server-disable', ['solr']); + } + $this->drush('migrate:import', [], $options); + + if ($disable_search) { + $this->drush('search-api:server-enable', ['solr']); + $this->drush('search-api:enable-all'); + } + } + + /** + * Checks whether the search server should be disabled during the import. + * + * @return bool + * TRUE when the Solr server is present and disabling it was not opted out. + */ + protected function searchDisabled(): bool { + if ($this->env('DRUPAL_MIGRATION_SEARCH_DISABLE', '1') !== '1') { + return FALSE; + } + + return $this->moduleHandler->moduleExists('search_api_solr'); } /** diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_s3/web/sites/default/settings.php b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_s3/web/sites/default/settings.php index 20cc1ff13b..5a786e6e95 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_s3/web/sites/default/settings.php +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_s3/web/sites/default/settings.php @@ -12,4 +12,4 @@ +//////////////////////////////////////////////////////////////////////////////// /// LOCAL OVERRIDE /// //////////////////////////////////////////////////////////////////////////////// - // @see https://www.vortextemplate.com/docs/drupal/settings#local-overrides + // @see https://www.vortextemplate.com/docs/development/settings#local-overrides diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_url/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_url/.github/workflows/build-test-deploy.yml index 580efba3cf..6671189d80 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_url/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_url/.github/workflows/build-test-deploy.yml @@ -1,4 +1,4 @@ -@@ -257,6 +257,9 @@ +@@ -283,6 +283,9 @@ echo "db_hash=${{ hashFiles('.data') }}" >> "$GITHUB_ENV" timeout-minutes: 30 @@ -8,14 +8,14 @@ - name: Build stack run: docker compose up --detach && docker builder prune --all --force && docker image prune --force -@@ -300,6 +303,11 @@ +@@ -326,6 +329,11 @@ docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql + fi + if [ -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" ]; then + docker compose exec -T cli mkdir -p .data -+ docker compose cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" ++ docker compose --progress quiet cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" + rm -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_url/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_url/docker-compose.yml index 3a0b1b0ba2..0832fd028e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_url/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_url/docker-compose.yml @@ -1,4 +1,4 @@ -@@ -56,6 +56,16 @@ +@@ -57,6 +57,16 @@ DRUPAL_SHIELD_PASS: ${DRUPAL_SHIELD_PASS:-} # Redis integration flag. DRUPAL_REDIS_ENABLED: ${DRUPAL_REDIS_ENABLED:-} @@ -15,7 +15,7 @@ # The default user under which the containers should run. x-user: &default-user -@@ -153,6 +163,19 @@ +@@ -154,6 +164,19 @@ ports: - '3306' # Database port in a container. Find port on host with `ahoy info` or `docker compose port database 3306`. @@ -35,7 +35,7 @@ cache: image: uselagoon/valkey-8:__VERSION__ -@@ -196,11 +219,13 @@ +@@ -197,11 +220,13 @@ depends_on: - antivirus - database diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_url/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_url/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php index 0c430da957..d87ab591fd 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_url/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_url/web/modules/custom/ys_migrate/src/Plugin/DeployStep/MigrateContentDeployStep.php @@ -96,7 +96,35 @@ public function run(): void { $options['update'] = TRUE; } + // Indexing each migrated entity as it is saved makes the import slower and + // leaves the index holding intermediate states, so the search server is + // disabled for the duration of the run and the index is rebuilt after it. + $disable_search = $this->searchDisabled(); + + if ($disable_search) { + $this->drush('search-api:server-disable', ['solr']); + } + $this->drush('migrate:import', [], $options); + + if ($disable_search) { + $this->drush('search-api:server-enable', ['solr']); + $this->drush('search-api:enable-all'); + } + } + + /** + * Checks whether the search server should be disabled during the import. + * + * @return bool + * TRUE when the Solr server is present and disabling it was not opted out. + */ + protected function searchDisabled(): bool { + if ($this->env('DRUPAL_MIGRATION_SEARCH_DISABLE', '1') !== '1') { + return FALSE; + } + + return $this->moduleHandler->moduleExists('search_api_solr'); } /** diff --git a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_url/web/sites/default/settings.php b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_url/web/sites/default/settings.php index 20cc1ff13b..5a786e6e95 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_url/web/sites/default/settings.php +++ b/.vortex/cli/tests/Fixtures/handler_process/migration_fetch_source_url/web/sites/default/settings.php @@ -12,4 +12,4 @@ +//////////////////////////////////////////////////////////////////////////////// /// LOCAL OVERRIDE /// //////////////////////////////////////////////////////////////////////////////// - // @see https://www.vortextemplate.com/docs/drupal/settings#local-overrides + // @see https://www.vortextemplate.com/docs/development/settings#local-overrides diff --git a/.vortex/cli/tests/Fixtures/handler_process/modules_no_devel/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/cli/tests/Fixtures/handler_process/modules_no_devel/tests/phpunit/Drupal/EnvironmentSettingsTest.php index de068bf86d..50e6d32d0c 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/modules_no_devel/tests/phpunit/Drupal/EnvironmentSettingsTest.php +++ b/.vortex/cli/tests/Fixtures/handler_process/modules_no_devel/tests/phpunit/Drupal/EnvironmentSettingsTest.php @@ -30,7 +30,7 @@ 'generated_content', 'testmode', ]; -@@ -365,7 +361,6 @@ +@@ -366,7 +362,6 @@ $settings['auto_create_htaccess'] = FALSE; $settings['config_exclude_modules'] = [ diff --git a/.vortex/cli/tests/Fixtures/handler_process/modules_no_generated_content/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/cli/tests/Fixtures/handler_process/modules_no_generated_content/tests/phpunit/Drupal/EnvironmentSettingsTest.php index af17fa7813..a5738b526f 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/modules_no_generated_content/tests/phpunit/Drupal/EnvironmentSettingsTest.php +++ b/.vortex/cli/tests/Fixtures/handler_process/modules_no_generated_content/tests/phpunit/Drupal/EnvironmentSettingsTest.php @@ -30,7 +30,7 @@ 'testmode', ]; $settings['container_yamls'][0] = $this->app_root . '/' . $this->site_path . '/services.yml'; -@@ -366,7 +362,6 @@ +@@ -367,7 +363,6 @@ $settings['auto_create_htaccess'] = FALSE; $settings['config_exclude_modules'] = [ 'devel', diff --git a/.vortex/cli/tests/Fixtures/handler_process/modules_no_generated_content/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php b/.vortex/cli/tests/Fixtures/handler_process/modules_no_generated_content/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php new file mode 100644 index 0000000000..c415227578 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/modules_no_generated_content/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php @@ -0,0 +1,16 @@ +@@ -108,15 +108,6 @@ + + $this->moduleInstaller->install(['sw_demo']); + +- // The module creates its content while it installs, and only when +- // GENERATED_CONTENT_CREATE is set, so it installs after the modules that +- // supply the generated content plugins. +- if (getenv('DRUPAL_GENERATED_CONTENT_SKIP') !== '1') { +- putenv('GENERATED_CONTENT_CREATE=1'); +- } +- +- $this->moduleInstaller->install(['generated_content']); +- putenv('GENERATED_CONTENT_CREATE'); + } + + } diff --git a/.vortex/cli/tests/Fixtures/handler_process/modules_no_redirect/tests/behat/bootstrap/FeatureContext.php b/.vortex/cli/tests/Fixtures/handler_process/modules_no_redirect/tests/behat/bootstrap/FeatureContext.php new file mode 100644 index 0000000000..104ccd8843 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/modules_no_redirect/tests/behat/bootstrap/FeatureContext.php @@ -0,0 +1,16 @@ +@@ -29,7 +29,6 @@ + use DrevOps\BehatSteps\Drupal\OverrideTrait; + use DrevOps\BehatSteps\Drupal\ParagraphsTrait; + use DrevOps\BehatSteps\Drupal\QueueTrait; +-use DrevOps\BehatSteps\Drupal\RedirectTrait; + use DrevOps\BehatSteps\Drupal\SearchApiTrait; + use DrevOps\BehatSteps\Drupal\StateTrait; + use DrevOps\BehatSteps\Drupal\TaxonomyTrait; +@@ -91,7 +90,6 @@ + use ParagraphsTrait; + use PathTrait; + use QueueTrait; +- use RedirectTrait; + use ResponseTrait; + use ResponsiveTrait; + use RestTrait; diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/web/modules/custom/sw_base/-sw_base.module b/.vortex/cli/tests/Fixtures/handler_process/modules_no_redirect/tests/behat/features/-redirect.feature similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/web/modules/custom/sw_base/-sw_base.module rename to .vortex/cli/tests/Fixtures/handler_process/modules_no_redirect/tests/behat/features/-redirect.feature diff --git a/.vortex/cli/tests/Fixtures/handler_process/modules_no_reroute_email/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/cli/tests/Fixtures/handler_process/modules_no_reroute_email/tests/phpunit/Drupal/EnvironmentSettingsTest.php index 4483af57c1..6c62a2d9be 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/modules_no_reroute_email/tests/phpunit/Drupal/EnvironmentSettingsTest.php +++ b/.vortex/cli/tests/Fixtures/handler_process/modules_no_reroute_email/tests/phpunit/Drupal/EnvironmentSettingsTest.php @@ -38,9 +38,9 @@ $config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE; $config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE; $config['search_api.server.solr']['backend_config']['connector_config']['host'] = 'search'; -@@ -354,9 +342,6 @@ - $config['xmlsitemap_engines.settings']['submit'] = FALSE; +@@ -355,9 +343,6 @@ $config['system.logging']['error_level'] = 'all'; + $config['system.mail']['interface']['default'] = 'test_mail_collector'; $config['system.performance']['cache']['page']['max_age'] = 900; - $config['reroute_email.settings']['enable'] = FALSE; - $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com'; diff --git a/.vortex/cli/tests/Fixtures/handler_process/modules_no_sdc_devel/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/modules_no_sdc_devel/.github/workflows/build-test-deploy.yml index c6dd8d4f92..0881c7afbd 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/modules_no_sdc_devel/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/modules_no_sdc_devel/.github/workflows/build-test-deploy.yml @@ -1,9 +1,18 @@ -@@ -369,18 +369,6 @@ +@@ -201,7 +201,6 @@ + VORTEX_CI_RUNNER_TOTAL: ${{ strategy.job-total }} + VORTEX_CI_IS_JEST_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + VORTEX_CI_IS_PHPUNIT_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- VORTEX_CI_IS_SDC_DEVEL_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + # Runs on every instance, using the `p` profile. + VORTEX_CI_IS_BEHAT_RUNNER: true + # Subtracted from the instance index to derive the profile number. Raise +@@ -394,18 +393,6 @@ + fi env: VORTEX_CI_CODE_COVERAGE_THRESHOLD: ${{ vars.VORTEX_CI_CODE_COVERAGE_THRESHOLD || '90' }} - +- - - name: Validate Single Directory Components -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- if: ${{ env.VORTEX_CI_IS_SDC_DEVEL_RUNNER == 'true' }} - run: | - [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) @@ -13,7 +22,6 @@ - exit 1 - fi - continue-on-error: ${{ vars.VORTEX_CI_SDC_DEVEL_IGNORE_FAILURE == '1' }} -- + - name: Test with Behat - run: | - # shellcheck disable=SC2170 + if: ${{ env.VORTEX_CI_IS_BEHAT_RUNNER == 'true' }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/modules_no_seckit/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/cli/tests/Fixtures/handler_process/modules_no_seckit/tests/phpunit/Drupal/EnvironmentSettingsTest.php index 43bfac9afd..8ee865058a 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/modules_no_seckit/tests/phpunit/Drupal/EnvironmentSettingsTest.php +++ b/.vortex/cli/tests/Fixtures/handler_process/modules_no_seckit/tests/phpunit/Drupal/EnvironmentSettingsTest.php @@ -16,7 +16,7 @@ $config['search_api.server.solr']['backend_config']['connector_config']['host'] = 'search'; $config['search_api.server.solr']['backend_config']['connector_config']['port'] = 8983; $this->assertConfig($config); -@@ -357,8 +353,6 @@ +@@ -358,8 +354,6 @@ $config['reroute_email.settings']['enable'] = FALSE; $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com'; $config['reroute_email.settings']['allowed'] = '*@star-wars.com'; diff --git a/.vortex/cli/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/docker-compose.yml index a6d9afacb3..e491aac6c4 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/docker-compose.yml @@ -1,4 +1,4 @@ -@@ -51,9 +51,6 @@ +@@ -52,9 +52,6 @@ DRUPAL_TEMPORARY_FILES: ${DRUPAL_TEMPORARY_FILES:-/tmp} # Path to configuration files. DRUPAL_CONFIG_PATH: ${DRUPAL_CONFIG_PATH:-../config/default} diff --git a/.vortex/cli/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/cli/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/tests/phpunit/Drupal/EnvironmentSettingsTest.php index 93538d8478..82ec15bfee 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/tests/phpunit/Drupal/EnvironmentSettingsTest.php +++ b/.vortex/cli/tests/Fixtures/handler_process/modules_no_seckit_shield_stage_file_proxy/tests/phpunit/Drupal/EnvironmentSettingsTest.php @@ -56,7 +56,7 @@ $config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE; $config['xmlsitemap_engines.settings']['submit'] = FALSE; $config['system.logging']['error_level'] = 'all'; -@@ -357,8 +348,6 @@ +@@ -358,8 +349,6 @@ $config['reroute_email.settings']['enable'] = FALSE; $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com'; $config['reroute_email.settings']['allowed'] = '*@star-wars.com'; diff --git a/.vortex/cli/tests/Fixtures/handler_process/modules_no_shield/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/modules_no_shield/docker-compose.yml index a6d9afacb3..e491aac6c4 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/modules_no_shield/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/modules_no_shield/docker-compose.yml @@ -1,4 +1,4 @@ -@@ -51,9 +51,6 @@ +@@ -52,9 +52,6 @@ DRUPAL_TEMPORARY_FILES: ${DRUPAL_TEMPORARY_FILES:-/tmp} # Path to configuration files. DRUPAL_CONFIG_PATH: ${DRUPAL_CONFIG_PATH:-../config/default} diff --git a/.vortex/cli/tests/Fixtures/handler_process/modules_no_stage_file_proxy/tests/phpunit/Drupal/SwitchableSettingsTest.php b/.vortex/cli/tests/Fixtures/handler_process/modules_no_stage_file_proxy/tests/phpunit/Drupal/SwitchableSettingsTest.php index 531ff2be8b..cc5de867f3 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/modules_no_stage_file_proxy/tests/phpunit/Drupal/SwitchableSettingsTest.php +++ b/.vortex/cli/tests/Fixtures/handler_process/modules_no_stage_file_proxy/tests/phpunit/Drupal/SwitchableSettingsTest.php @@ -127,6 +127,6 @@ - } - - /** - * Test trusted host patterns settings. + * Test mail collector config. */ - #[DataProvider('dataProviderTrustedHostPatterns')] + #[DataProvider('dataProviderMailCollector')] diff --git a/.vortex/cli/tests/Fixtures/handler_process/modules_no_testmode/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/cli/tests/Fixtures/handler_process/modules_no_testmode/tests/phpunit/Drupal/EnvironmentSettingsTest.php index 65de5d629c..158b74c80f 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/modules_no_testmode/tests/phpunit/Drupal/EnvironmentSettingsTest.php +++ b/.vortex/cli/tests/Fixtures/handler_process/modules_no_testmode/tests/phpunit/Drupal/EnvironmentSettingsTest.php @@ -30,7 +30,7 @@ ]; $settings['container_yamls'][0] = $this->app_root . '/' . $this->site_path . '/services.yml'; $settings['entity_update_batch_size'] = 50; -@@ -367,7 +363,6 @@ +@@ -368,7 +364,6 @@ $settings['config_exclude_modules'] = [ 'devel', 'generated_content', diff --git a/.vortex/cli/tests/Fixtures/handler_process/modules_no_xmlsitemap/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/cli/tests/Fixtures/handler_process/modules_no_xmlsitemap/tests/phpunit/Drupal/EnvironmentSettingsTest.php index 421e0b8cad..dd5da03733 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/modules_no_xmlsitemap/tests/phpunit/Drupal/EnvironmentSettingsTest.php +++ b/.vortex/cli/tests/Fixtures/handler_process/modules_no_xmlsitemap/tests/phpunit/Drupal/EnvironmentSettingsTest.php @@ -37,4 +37,4 @@ - $config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE; $config['xmlsitemap_engines.settings']['submit'] = FALSE; $config['system.logging']['error_level'] = 'all'; - $config['system.performance']['cache']['page']['max_age'] = 900; + $config['system.mail']['interface']['default'] = 'test_mail_collector'; diff --git a/.vortex/cli/tests/Fixtures/handler_process/modules_none/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/modules_none/.github/workflows/build-test-deploy.yml index c6dd8d4f92..0881c7afbd 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/modules_none/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/modules_none/.github/workflows/build-test-deploy.yml @@ -1,9 +1,18 @@ -@@ -369,18 +369,6 @@ +@@ -201,7 +201,6 @@ + VORTEX_CI_RUNNER_TOTAL: ${{ strategy.job-total }} + VORTEX_CI_IS_JEST_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + VORTEX_CI_IS_PHPUNIT_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- VORTEX_CI_IS_SDC_DEVEL_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + # Runs on every instance, using the `p` profile. + VORTEX_CI_IS_BEHAT_RUNNER: true + # Subtracted from the instance index to derive the profile number. Raise +@@ -394,18 +393,6 @@ + fi env: VORTEX_CI_CODE_COVERAGE_THRESHOLD: ${{ vars.VORTEX_CI_CODE_COVERAGE_THRESHOLD || '90' }} - +- - - name: Validate Single Directory Components -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- if: ${{ env.VORTEX_CI_IS_SDC_DEVEL_RUNNER == 'true' }} - run: | - [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) @@ -13,7 +22,6 @@ - exit 1 - fi - continue-on-error: ${{ vars.VORTEX_CI_SDC_DEVEL_IGNORE_FAILURE == '1' }} -- + - name: Test with Behat - run: | - # shellcheck disable=SC2170 + if: ${{ env.VORTEX_CI_IS_BEHAT_RUNNER == 'true' }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/modules_none/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/modules_none/docker-compose.yml index a6d9afacb3..e491aac6c4 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/modules_none/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/modules_none/docker-compose.yml @@ -1,4 +1,4 @@ -@@ -51,9 +51,6 @@ +@@ -52,9 +52,6 @@ DRUPAL_TEMPORARY_FILES: ${DRUPAL_TEMPORARY_FILES:-/tmp} # Path to configuration files. DRUPAL_CONFIG_PATH: ${DRUPAL_CONFIG_PATH:-../config/default} diff --git a/.vortex/cli/tests/Fixtures/handler_process/modules_none/tests/behat/bootstrap/FeatureContext.php b/.vortex/cli/tests/Fixtures/handler_process/modules_none/tests/behat/bootstrap/FeatureContext.php new file mode 100644 index 0000000000..104ccd8843 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/modules_none/tests/behat/bootstrap/FeatureContext.php @@ -0,0 +1,16 @@ +@@ -29,7 +29,6 @@ + use DrevOps\BehatSteps\Drupal\OverrideTrait; + use DrevOps\BehatSteps\Drupal\ParagraphsTrait; + use DrevOps\BehatSteps\Drupal\QueueTrait; +-use DrevOps\BehatSteps\Drupal\RedirectTrait; + use DrevOps\BehatSteps\Drupal\SearchApiTrait; + use DrevOps\BehatSteps\Drupal\StateTrait; + use DrevOps\BehatSteps\Drupal\TaxonomyTrait; +@@ -91,7 +90,6 @@ + use ParagraphsTrait; + use PathTrait; + use QueueTrait; +- use RedirectTrait; + use ResponseTrait; + use ResponsiveTrait; + use RestTrait; diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/web/sites/default/includes/modules/-settings.sw_base.php b/.vortex/cli/tests/Fixtures/handler_process/modules_none/tests/behat/features/-redirect.feature similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/web/sites/default/includes/modules/-settings.sw_base.php rename to .vortex/cli/tests/Fixtures/handler_process/modules_none/tests/behat/features/-redirect.feature diff --git a/.vortex/cli/tests/Fixtures/handler_process/modules_none/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/cli/tests/Fixtures/handler_process/modules_none/tests/phpunit/Drupal/EnvironmentSettingsTest.php index 63cf63f5fc..b8c9cdafaf 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/modules_none/tests/phpunit/Drupal/EnvironmentSettingsTest.php +++ b/.vortex/cli/tests/Fixtures/handler_process/modules_none/tests/phpunit/Drupal/EnvironmentSettingsTest.php @@ -124,7 +124,7 @@ ]; $settings['container_yamls'][0] = $this->app_root . '/' . $this->site_path . '/services.yml'; $settings['entity_update_batch_size'] = 50; -@@ -342,23 +280,9 @@ +@@ -342,24 +280,10 @@ $this->requireSettingsFile(); $config['automated_cron.settings']['interval'] = 0; @@ -139,6 +139,7 @@ - $config['xmlsitemap.settings']['disable_cron_regeneration'] = TRUE; $config['xmlsitemap_engines.settings']['submit'] = FALSE; $config['system.logging']['error_level'] = 'all'; + $config['system.mail']['interface']['default'] = 'test_mail_collector'; $config['system.performance']['cache']['page']['max_age'] = 900; - $config['reroute_email.settings']['enable'] = FALSE; - $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com'; @@ -148,7 +149,7 @@ $config['search_api.server.solr']['backend_config']['connector_config']['host'] = 'search'; $config['search_api.server.solr']['backend_config']['connector_config']['port'] = 8983; $this->assertConfig($config); -@@ -365,9 +289,6 @@ +@@ -366,9 +290,6 @@ $settings['auto_create_htaccess'] = FALSE; $settings['config_exclude_modules'] = [ diff --git a/.vortex/cli/tests/Fixtures/handler_process/modules_none/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php b/.vortex/cli/tests/Fixtures/handler_process/modules_none/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php index c33d7109f1..a82d5f89bf 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/modules_none/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php +++ b/.vortex/cli/tests/Fixtures/handler_process/modules_none/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php @@ -21,14 +21,27 @@ $this->moduleInstaller->install(['redis']); $this->moduleInstaller->install(['clamav']); -@@ -99,10 +83,6 @@ - $this->configFactory->getEditable('clamav.settings')->set('mode_daemon_tcpip.hostname', 'clamav')->save(); +@@ -100,23 +84,10 @@ $this->moduleInstaller->install(['search_api', 'search_api_solr']); -- + - $this->moduleInstaller->install(['sdc_devel']); - - $this->moduleInstaller->install(['devel']); - +- $this->moduleInstaller->install(['sw_search']); + $this->moduleInstaller->install(['sw_demo']); + +- // The module creates its content while it installs, and only when +- // GENERATED_CONTENT_CREATE is set, so it installs after the modules that +- // supply the generated content plugins. +- if (getenv('DRUPAL_GENERATED_CONTENT_SKIP') !== '1') { +- putenv('GENERATED_CONTENT_CREATE=1'); +- } +- +- $this->moduleInstaller->install(['generated_content']); +- putenv('GENERATED_CONTENT_CREATE'); + } + + } diff --git a/.vortex/cli/tests/Fixtures/handler_process/names/.env b/.vortex/cli/tests/Fixtures/handler_process/names/.env index 8314990b60..f1e9a7ed28 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/names/.env +++ b/.vortex/cli/tests/Fixtures/handler_process/names/.env @@ -36,7 +36,7 @@ @@ -136,7 +136,7 @@ # # Applied if database sanitization is enabled. - # @see https://www.vortextemplate.com/docs/drupal/provision#database-sanitization + # @see https://www.vortextemplate.com/docs/development/provision#database-sanitization -VORTEX_PROVISION_SANITIZE_DB_EMAIL=user_%uid@star-wars.com +VORTEX_PROVISION_SANITIZE_DB_EMAIL=user_%uid@death-star.com diff --git a/.vortex/cli/tests/Fixtures/handler_process/names/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/names/package-lock.json new file mode 100644 index 0000000000..8aa8c89183 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/names/package-lock.json @@ -0,0 +1,13 @@ +@@ -1,10 +1,10 @@ + { +- "name": "star_wars", ++ "name": "the_new_hope", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { +- "name": "star_wars", ++ "name": "the_new_hope", + "license": "proprietary", + "devDependencies": { + "@eslint/compat": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/names/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/cli/tests/Fixtures/handler_process/names/tests/phpunit/Drupal/EnvironmentSettingsTest.php index c109e6fc1d..b156e8c13f 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/names/tests/phpunit/Drupal/EnvironmentSettingsTest.php +++ b/.vortex/cli/tests/Fixtures/handler_process/names/tests/phpunit/Drupal/EnvironmentSettingsTest.php @@ -42,8 +42,8 @@ $config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE; $config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE; $config['search_api.server.solr']['backend_config']['connector_config']['host'] = 'search'; -@@ -355,8 +355,8 @@ - $config['system.logging']['error_level'] = 'all'; +@@ -356,8 +356,8 @@ + $config['system.mail']['interface']['default'] = 'test_mail_collector'; $config['system.performance']['cache']['page']['max_age'] = 900; $config['reroute_email.settings']['enable'] = FALSE; - $config['reroute_email.settings']['address'] = 'webmaster@star-wars.com'; diff --git a/.vortex/cli/tests/Fixtures/handler_process/names/web/modules/custom/the_force_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php b/.vortex/cli/tests/Fixtures/handler_process/names/web/modules/custom/the_force_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php index 1dd6cb6bd6..055a1e2592 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/names/web/modules/custom/the_force_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php +++ b/.vortex/cli/tests/Fixtures/handler_process/names/web/modules/custom/the_force_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php @@ -107,6 +107,16 @@ public function run(): void { $this->moduleInstaller->install(['the_force_search']); $this->moduleInstaller->install(['the_force_demo']); + + // The module creates its content while it installs, and only when + // GENERATED_CONTENT_CREATE is set, so it installs after the modules that + // supply the generated content plugins. + if (getenv('DRUPAL_GENERATED_CONTENT_SKIP') !== '1') { + putenv('GENERATED_CONTENT_CREATE=1'); + } + + $this->moduleInstaller->install(['generated_content']); + putenv('GENERATED_CONTENT_CREATE'); } } diff --git a/.vortex/cli/tests/Fixtures/handler_process/names/web/modules/custom/the_force_base/tests/src/Traits/ReflectionTrait.php b/.vortex/cli/tests/Fixtures/handler_process/names/web/modules/custom/the_force_base/tests/src/Traits/ReflectionTrait.php index dc9f372395..9931eca97b 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/names/web/modules/custom/the_force_base/tests/src/Traits/ReflectionTrait.php +++ b/.vortex/cli/tests/Fixtures/handler_process/names/web/modules/custom/the_force_base/tests/src/Traits/ReflectionTrait.php @@ -68,18 +68,18 @@ protected static function setProtectedValue(object $object, string $property, mi * Get protected value from the object. * * @param object $object - * Object to set the value on. + * Object to get the value from. * @param string $property * Property name to get the value. Property should exists in the object. * * @return mixed * Protected property value. */ - protected static function getProtectedValue($object, $property): mixed { + protected static function getProtectedValue(object $object, string $property): mixed { $class = new \ReflectionClass($object::class); $property = $class->getProperty($property); - return $property->getValue($class); + return $property->getValue($object); } } diff --git a/.vortex/cli/tests/Fixtures/handler_process/names/web/modules/custom/the_force_base/the_force_base.module b/.vortex/cli/tests/Fixtures/handler_process/names/web/modules/custom/the_force_base/the_force_base.module deleted file mode 100644 index 738a0b2a26..0000000000 --- a/.vortex/cli/tests/Fixtures/handler_process/names/web/modules/custom/the_force_base/the_force_base.module +++ /dev/null @@ -1,22 +0,0 @@ - { jest.spyOn(console, 'log').mockImplementation(() => {}); jest.resetModules(); - // eslint-disable-next-line global-require require('../the_force_demo.js'); }); @@ -152,9 +151,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.initCounterBlock(document); - const incrementBtn = document.querySelector( - '[data-counter-action="increment"]', - ); + const incrementBtn = document.querySelector('[data-counter-action="increment"]'); incrementBtn.click(); const value = document.querySelector('[data-counter-value]'); @@ -165,9 +162,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.initCounterBlock(document); - const decrementBtn = document.querySelector( - '[data-counter-action="decrement"]', - ); + const decrementBtn = document.querySelector('[data-counter-action="decrement"]'); decrementBtn.click(); const value = document.querySelector('[data-counter-value]'); @@ -178,9 +173,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.initCounterBlock(document); - const incrementBtn = document.querySelector( - '[data-counter-action="increment"]', - ); + const incrementBtn = document.querySelector('[data-counter-action="increment"]'); incrementBtn.click(); incrementBtn.click(); incrementBtn.click(); @@ -196,9 +189,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.initCounterBlock(document); - const incrementBtn = document.querySelector( - '[data-counter-action="increment"]', - ); + const incrementBtn = document.querySelector('[data-counter-action="increment"]'); incrementBtn.click(); incrementBtn.click(); @@ -210,9 +201,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.initCounterBlock(document); - const incrementBtn = document.querySelector( - '[data-counter-action="increment"]', - ); + const incrementBtn = document.querySelector('[data-counter-action="increment"]'); incrementBtn.click(); const value = document.querySelector('[data-counter-value]'); @@ -237,12 +226,8 @@ describe('Drupal.behaviors.ysDemo', () => { Drupal.behaviors.ysDemo.initCounterBlock(document); const blocks = document.querySelectorAll('[data-the-force-demo-counter]'); - expect(blocks[0].classList.contains('the-force-demo-counter-processed')).toBe( - true, - ); - expect(blocks[1].classList.contains('the-force-demo-counter-processed')).toBe( - true, - ); + expect(blocks[0].classList.contains('the-force-demo-counter-processed')).toBe(true); + expect(blocks[1].classList.contains('the-force-demo-counter-processed')).toBe(true); }); }); @@ -261,9 +246,7 @@ describe('Drupal.behaviors.ysDemo', () => { document.body.innerHTML = createCounterBlockHtml(); Drupal.behaviors.ysDemo.attach(document); - const incrementBtn = document.querySelector( - '[data-counter-action="increment"]', - ); + const incrementBtn = document.querySelector('[data-counter-action="increment"]'); incrementBtn.click(); const value = document.querySelector('[data-counter-value]'); diff --git a/.vortex/cli/tests/Fixtures/handler_process/names/web/modules/custom/the_force_demo/src/Plugin/GeneratedContent/Node/Page.php b/.vortex/cli/tests/Fixtures/handler_process/names/web/modules/custom/the_force_demo/src/Plugin/GeneratedContent/Node/Page.php index d8fe1b42d1..45becf375b 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/names/web/modules/custom/the_force_demo/src/Plugin/GeneratedContent/Node/Page.php +++ b/.vortex/cli/tests/Fixtures/handler_process/names/web/modules/custom/the_force_demo/src/Plugin/GeneratedContent/Node/Page.php @@ -37,10 +37,14 @@ public function generate(): array { 'status' => 1, ]); - $node->set('body', [ - 'value' => $this->helper::staticRichText(3), - 'format' => 'full_html', - ]); + // The content model differs between install profiles, so a field the + // demo populates is only set when the bundle actually carries it. + if ($node->hasField('body')) { + $node->set('body', [ + 'value' => $this->helper::staticRichText(3), + 'format' => 'full_html', + ]); + } // When Content Moderation is attached to the bundle, 'status' alone // leaves the node as an unpublished draft, so the state must be set diff --git a/.vortex/cli/tests/Fixtures/handler_process/names/web/modules/custom/the_force_demo/the_force_demo.info.yml b/.vortex/cli/tests/Fixtures/handler_process/names/web/modules/custom/the_force_demo/the_force_demo.info.yml index 4131e4c738..08c15da4c3 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/names/web/modules/custom/the_force_demo/the_force_demo.info.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/names/web/modules/custom/the_force_demo/the_force_demo.info.yml @@ -8,5 +8,4 @@ dependencies: - drupal:node - drupal:views - drupal_helpers:drupal_helpers - - generated_content:generated_content - testmode:testmode diff --git a/.vortex/cli/tests/Fixtures/handler_process/names/web/sites/default/includes/modules/settings.the_force_base.php b/.vortex/cli/tests/Fixtures/handler_process/names/web/sites/default/includes/modules/settings.the_force_base.php deleted file mode 100644 index 4b73fca8ea..0000000000 --- a/.vortex/cli/tests/Fixtures/handler_process/names/web/sites/default/includes/modules/settings.the_force_base.php +++ /dev/null @@ -1,15 +0,0 @@ -= 18" + }, + "peerDependencies": { + "keyv": "__VERSION__" + } + }, + "node_modules/@cacheable/memory/node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "__VERSION__" + } + }, + "node_modules/@cacheable/utils": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "__VERSION__", + "keyv": "__VERSION__" + } + }, + "node_modules/@cacheable/utils/node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "__VERSION__" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "__VERSION__" + } + }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "peerDependencies": { + "css-tree": "__VERSION__" + }, + "peerDependenciesMeta": { + "css-tree": { + "optional": true + } + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "__VERSION__", + "@csstools/css-tokenizer": "__VERSION__" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss-selector-parser": "__VERSION__" + } + }, + "node_modules/@dual-bundle/import-meta-resolve": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/JounQin" + } + }, + "node_modules/@es-joy/jsdoccomment": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "__VERSION__", + "@typescript-eslint/types": "__VERSION__", + "comment-parser": "__VERSION__", + "esquery": "__VERSION__", + "jsdoc-type-pratt-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + } + }, + "node_modules/@es-joy/resolve.exports": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/compat": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + }, + "peerDependencies": { + "eslint": "^8.40 || 9 || 10" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/@eslint/compat/node_modules/@eslint/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + } + }, + "node_modules/@eslint/config-array": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "__VERSION__", + "debug": "__VERSION__", + "minimatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "__VERSION__", + "debug": "__VERSION__", + "espree": "__VERSION__", + "globals": "__VERSION__", + "ignore": "__VERSION__", + "import-fresh": "__VERSION__", + "js-yaml": "__VERSION__", + "minimatch": "__VERSION__", + "strip-json-comments": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "__VERSION__", + "levn": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@homer0/prettier-plugin-jsdoc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@homer0/prettier-plugin-jsdoc/-/prettier-plugin-jsdoc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "comment-parser": "__VERSION__", + "ramda": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "prettier": "__VERSION__" + } + }, + "node_modules/@humanfs/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/types": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@humanfs/node": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "__VERSION__", + "@humanfs/types": "__VERSION__", + "@humanwhocodes/retry": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@humanfs/types": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "__VERSION__", + "@jridgewell/trace-mapping": "__VERSION__" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "__VERSION__", + "@jridgewell/trace-mapping": "__VERSION__" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "__VERSION__", + "@jridgewell/sourcemap-codec": "__VERSION__" + } + }, + "node_modules/@keyv/serialize": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "__VERSION__", + "run-parallel": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "__VERSION__", + "fastq": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@parcel/watcher": { + "version": "__VERSION__", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "__VERSION__", + "is-glob": "__VERSION__", + "node-addon-api": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "__VERSION__", + "@parcel/watcher-darwin-arm64": "__VERSION__", + "@parcel/watcher-darwin-x64": "__VERSION__", + "@parcel/watcher-freebsd-x64": "__VERSION__", + "@parcel/watcher-linux-arm-glibc": "__VERSION__", + "@parcel/watcher-linux-arm-musl": "__VERSION__", + "@parcel/watcher-linux-arm64-glibc": "__VERSION__", + "@parcel/watcher-linux-arm64-musl": "__VERSION__", + "@parcel/watcher-linux-x64-glibc": "__VERSION__", + "@parcel/watcher-linux-x64-musl": "__VERSION__", + "@parcel/watcher-win32-arm64": "__VERSION__", + "@parcel/watcher-win32-ia32": "__VERSION__", + "@parcel/watcher-win32-x64": "__VERSION__" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "__VERSION__", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher/node_modules/picomatch": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@pkgr/core": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@rtsao/scc": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@sindresorhus/base62": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@types/estree": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/types": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@yarnpkg/lockfile": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/acorn": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/acorn-jsx": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "__VERSION__ || __VERSION__ || __VERSION__" + } + }, + "node_modules/ajv": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "__VERSION__", + "fast-json-stable-stringify": "__VERSION__", + "json-schema-traverse": "__VERSION__", + "uri-js": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/ansi-styles": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/are-docs-informative": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/argparse": { + "version": "__VERSION__", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "is-array-buffer": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-object-atoms": "__VERSION__", + "get-intrinsic": "__VERSION__", + "is-string": "__VERSION__", + "math-intrinsics": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "es-shim-unscopables": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-shim-unscopables": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-shim-unscopables": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "__VERSION__", + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "is-array-buffer": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/astral-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/async-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/autoprefixer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__", + "caniuse-lite": "__VERSION__", + "fraction.js": "__VERSION__", + "picocolors": "__VERSION__", + "postcss-value-parser": "__VERSION__" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/available-typed-arrays": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/binary-extensions": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "__VERSION__", + "concat-map": "__VERSION__" + } + }, + "node_modules/brace-expansion/node_modules/balanced-match": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/braces": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/browserslist": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": { + "baseline-browser-mapping": "__VERSION__", + "caniuse-lite": "__VERSION__", + "electron-to-chromium": "__VERSION__", + "node-releases": "__VERSION__", + "update-browserslist-db": "__VERSION__" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/memory": "__VERSION__", + "@cacheable/utils": "__VERSION__", + "hookified": "__VERSION__", + "keyv": "__VERSION__", + "qified": "__VERSION__" + } + }, + "node_modules/cacheable/node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "__VERSION__" + } + }, + "node_modules/call-bind": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "es-define-property": "__VERSION__", + "get-intrinsic": "__VERSION__", + "set-function-length": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "function-bind": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/camelcase": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/caniuse-lite": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "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": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "supports-color": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "__VERSION__", + "braces": "__VERSION__", + "glob-parent": "__VERSION__", + "is-binary-path": "__VERSION__", + "is-glob": "__VERSION__", + "normalize-path": "__VERSION__", + "readdirp": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "__VERSION__" + } + }, + "node_modules/chokidar-cli": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "__VERSION__", + "lodash.debounce": "__VERSION__", + "lodash.throttle": "__VERSION__", + "yargs": "__VERSION__" + }, + "bin": { + "chokidar": "index.js" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/ci-info": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cliui": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__", + "wrap-ansi": "__VERSION__" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/color-convert": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/color-name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/colord": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/comment-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/concat-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "__VERSION__", + "import-fresh": "__VERSION__", + "js-yaml": "__VERSION__", + "parse-json": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": "__VERSION__" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cross-spawn": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "__VERSION__", + "shebang-command": "__VERSION__", + "which": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/which/-/which-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "__VERSION__" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-functions-list": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/css-tree": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "__VERSION__", + "source-map-js": "__VERSION__" + }, + "engines": { + "node": "^10 || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/css-tree/node_modules/mdn-data": { + "version": "__VERSION__", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/cssesc": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/data-view-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-data-view": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-data-view": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-data-view": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/deep-is": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "gopd": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "object-keys": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dependency-graph": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/detect-libc": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/diff-sequences": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/dir-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/doctrine": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/dunder-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "es-errors": "__VERSION__", + "gopd": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/env-paths": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/error-ex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "__VERSION__" + } + }, + "node_modules/es-abstract": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "__VERSION__", + "arraybuffer.prototype.slice": "__VERSION__", + "available-typed-arrays": "__VERSION__", + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "data-view-buffer": "__VERSION__", + "data-view-byte-length": "__VERSION__", + "data-view-byte-offset": "__VERSION__", + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "es-set-tostringtag": "__VERSION__", + "es-to-primitive": "__VERSION__", + "function.prototype.name": "__VERSION__", + "get-intrinsic": "__VERSION__", + "get-proto": "__VERSION__", + "get-symbol-description": "__VERSION__", + "globalthis": "__VERSION__", + "gopd": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "has-proto": "__VERSION__", + "has-symbols": "__VERSION__", + "hasown": "__VERSION__", + "internal-slot": "__VERSION__", + "is-array-buffer": "__VERSION__", + "is-callable": "__VERSION__", + "is-data-view": "__VERSION__", + "is-negative-zero": "__VERSION__", + "is-regex": "__VERSION__", + "is-set": "__VERSION__", + "is-shared-array-buffer": "__VERSION__", + "is-string": "__VERSION__", + "is-typed-array": "__VERSION__", + "is-weakref": "__VERSION__", + "math-intrinsics": "__VERSION__", + "object-inspect": "__VERSION__", + "object-keys": "__VERSION__", + "object.assign": "__VERSION__", + "own-keys": "__VERSION__", + "regexp.prototype.flags": "__VERSION__", + "safe-array-concat": "__VERSION__", + "safe-push-apply": "__VERSION__", + "safe-regex-test": "__VERSION__", + "set-proto": "__VERSION__", + "stop-iteration-iterator": "__VERSION__", + "string.prototype.trim": "__VERSION__", + "string.prototype.trimend": "__VERSION__", + "string.prototype.trimstart": "__VERSION__", + "typed-array-buffer": "__VERSION__", + "typed-array-byte-length": "__VERSION__", + "typed-array-byte-offset": "__VERSION__", + "typed-array-length": "__VERSION__", + "unbox-primitive": "__VERSION__", + "which-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-abstract-get": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "is-callable": "__VERSION__", + "object-inspect": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "has-tostringtag": "__VERSION__", + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-abstract-get": "__VERSION__", + "es-errors": "__VERSION__", + "is-callable": "__VERSION__", + "is-date-object": "__VERSION__", + "is-symbol": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/escape-string-regexp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "__VERSION__", + "@eslint-community/regexpp": "__VERSION__", + "@eslint/config-array": "__VERSION__", + "@eslint/config-helpers": "__VERSION__", + "@eslint/core": "__VERSION__", + "@eslint/eslintrc": "__VERSION__", + "@eslint/js": "__VERSION__", + "@eslint/plugin-kit": "__VERSION__", + "@humanfs/node": "__VERSION__", + "@humanwhocodes/module-importer": "__VERSION__", + "@humanwhocodes/retry": "__VERSION__", + "@types/estree": "__VERSION__", + "ajv": "__VERSION__", + "chalk": "__VERSION__", + "cross-spawn": "__VERSION__", + "debug": "__VERSION__", + "escape-string-regexp": "__VERSION__", + "eslint-scope": "__VERSION__", + "eslint-visitor-keys": "__VERSION__", + "espree": "__VERSION__", + "esquery": "__VERSION__", + "esutils": "__VERSION__", + "fast-deep-equal": "__VERSION__", + "file-entry-cache": "__VERSION__", + "find-up": "__VERSION__", + "glob-parent": "__VERSION__", + "ignore": "__VERSION__", + "imurmurhash": "__VERSION__", + "is-glob": "__VERSION__", + "json-stable-stringify-without-jsonify": "__VERSION__", + "lodash.merge": "__VERSION__", + "minimatch": "__VERSION__", + "natural-compare": "__VERSION__", + "optionator": "__VERSION__" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-compat-utils": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "eslint": "__VERSION__" + } + }, + "node_modules/eslint-compat-utils/node_modules/semver": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/eslint-config-prettier": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": "__VERSION__" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "__VERSION__", + "is-core-module": "__VERSION__", + "resolve": "__VERSION__" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + } + }, + "node_modules/eslint-module-utils": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + } + }, + "node_modules/eslint-plugin-import": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "__VERSION__", + "array-includes": "__VERSION__", + "array.prototype.findlastindex": "__VERSION__", + "array.prototype.flat": "__VERSION__", + "array.prototype.flatmap": "__VERSION__", + "debug": "__VERSION__", + "doctrine": "__VERSION__", + "eslint-import-resolver-node": "__VERSION__", + "eslint-module-utils": "__VERSION__", + "hasown": "__VERSION__", + "is-core-module": "__VERSION__", + "is-glob": "__VERSION__", + "minimatch": "__VERSION__", + "object.fromentries": "__VERSION__", + "object.groupby": "__VERSION__", + "object.values": "__VERSION__", + "semver": "__VERSION__", + "string.prototype.trimend": "__VERSION__", + "tsconfig-paths": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || __VERSION__ || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + } + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@es-joy/jsdoccomment": "__VERSION__", + "@es-joy/resolve.exports": "__VERSION__", + "are-docs-informative": "__VERSION__", + "comment-parser": "__VERSION__", + "debug": "__VERSION__", + "escape-string-regexp": "__VERSION__", + "espree": "__VERSION__", + "esquery": "__VERSION__", + "html-entities": "__VERSION__", + "object-deep-merge": "__VERSION__", + "parse-imports-exports": "__VERSION__", + "semver": "__VERSION__", + "spdx-expression-parse": "__VERSION__", + "to-valid-identifier": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=24" + }, + "peerDependencies": { + "eslint": "__VERSION__ || __VERSION__ || __VERSION__ || __VERSION__" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/espree": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "__VERSION__", + "acorn-jsx": "__VERSION__", + "eslint-visitor-keys": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/semver": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/eslint-plugin-no-jquery": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": "__VERSION__", + "oxlint": "__VERSION__" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "oxlint": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "__VERSION__", + "synckit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": "__VERSION__", + "eslint": "__VERSION__", + "eslint-config-prettier": ">= __VERSION__ <__VERSION__ || >=__VERSION__", + "prettier": "__VERSION__" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-yml": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "__VERSION__", + "diff-sequences": "__VERSION__", + "escape-string-regexp": "__VERSION__", + "eslint-compat-utils": "__VERSION__", + "natural-compare": "__VERSION__", + "yaml-eslint-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": "__VERSION__" + } + }, + "node_modules/eslint-scope": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "__VERSION__", + "estraverse": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/espree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/espree/-/espree-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "__VERSION__", + "acorn-jsx": "__VERSION__", + "eslint-visitor-keys": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/esrecurse": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/estraverse": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/esutils": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fast-deep-equal": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "__VERSION__", + "@nodelib/fs.walk": "__VERSION__", + "glob-parent": "__VERSION__", + "merge2": "__VERSION__", + "micromatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastest-levenshtein": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/fastq": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "__VERSION__" + } + }, + "node_modules/file-entry-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fill-range": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/find-up": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "__VERSION__", + "path-exists": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-yarn-workspace-root": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "micromatch": "__VERSION__" + } + }, + "node_modules/flat-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "__VERSION__", + "keyv": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/flatted": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fraction.js": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs-extra": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "__VERSION__", + "jsonfile": "__VERSION__", + "universalify": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fsevents": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/function-bind": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "functions-have-names": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "hasown": "__VERSION__", + "is-callable": "__VERSION__", + "is-document.all": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-caller-file": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "function-bind": "__VERSION__", + "get-proto": "__VERSION__", + "gopd": "__VERSION__", + "has-symbols": "__VERSION__", + "hasown": "__VERSION__", + "math-intrinsics": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "__VERSION__" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-modules": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/global-prefix": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "__VERSION__", + "kind-of": "__VERSION__", + "which": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/globals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "__VERSION__", + "gopd": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globby/-/globby-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "__VERSION__", + "dir-glob": "__VERSION__", + "fast-glob": "__VERSION__", + "ignore": "__VERSION__", + "merge2": "__VERSION__", + "slash": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/slash/-/slash-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/globjoin": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/gopd": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/has-bigints": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/has-property-descriptors": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hashery": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/hasown": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hookified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/html-entities": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/html-tags": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ignore": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "__VERSION__", + "resolve-from": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/imurmurhash": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/ini": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "hasown": "__VERSION__", + "side-channel": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "__VERSION__", + "call-bound": "__VERSION__", + "get-proto": "__VERSION__", + "has-tostringtag": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-boolean-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__", + "is-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-document.all": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-finalizationregistry": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-generator-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "generator-function": "__VERSION__", + "get-proto": "__VERSION__", + "has-tostringtag": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-number-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "gopd": "__VERSION__", + "has-tostringtag": "__VERSION__", + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-symbols": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/isarray": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/js-tokens": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "__VERSION__" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/json-buffer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "isarray": "__VERSION__", + "jsonify": "__VERSION__", + "object-keys": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "__VERSION__" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "__VERSION__" + }, + "optionalDependencies": { + "graceful-fs": "__VERSION__" + } + }, + "node_modules/jsonify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Public Domain", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "__VERSION__" + } + }, + "node_modules/kind-of": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/klaw-sync": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "__VERSION__" + } + }, + "node_modules/known-css-properties": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/levn": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "__VERSION__", + "type-check": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/lilconfig": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.debounce": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.throttle": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mathml-tag-names": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdn-data": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/meow": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/meow/-/meow-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/minimatch": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "__VERSION__" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=__VERSION__" + } + }, + "node_modules/natural-compare": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/node-addon-api": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-exports-info": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.flatmap": "__VERSION__", + "es-errors": "__VERSION__", + "object.entries": "__VERSION__", + "semver": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/node-releases": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/normalize-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/object-deep-merge": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/object-inspect": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__", + "has-symbols": "__VERSION__", + "object-keys": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/open": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "__VERSION__", + "is-wsl": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "__VERSION__", + "fast-levenshtein": "__VERSION__", + "levn": "__VERSION__", + "prelude-ls": "__VERSION__", + "type-check": "__VERSION__", + "word-wrap": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/own-keys": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "__VERSION__", + "object-keys": "__VERSION__", + "safe-push-apply": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/parent-module": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/parse-imports-exports": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-statements": "__VERSION__" + } + }, + "node_modules/parse-json": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "__VERSION__", + "error-ex": "__VERSION__", + "json-parse-even-better-errors": "__VERSION__", + "lines-and-columns": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-statements": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/patch-package": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@yarnpkg/lockfile": "__VERSION__", + "chalk": "__VERSION__", + "ci-info": "__VERSION__", + "cross-spawn": "__VERSION__", + "find-yarn-workspace-root": "__VERSION__", + "fs-extra": "__VERSION__", + "json-stable-stringify": "__VERSION__", + "klaw-sync": "__VERSION__", + "minimist": "__VERSION__", + "open": "__VERSION__", + "semver": "__VERSION__", + "slash": "__VERSION__", + "tmp": "__VERSION__", + "yaml": "__VERSION__" + }, + "bin": { + "patch-package": "index.js" + }, + "engines": { + "node": "__VERSION__", + "npm": ">5" + } + }, + "node_modules/patch-package/node_modules/fs-extra": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "__VERSION__", + "jsonfile": "__VERSION__", + "universalify": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/patch-package/node_modules/semver": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/path-exists": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/path-key": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/path-parse": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/picocolors": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/possible-typed-array-names": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__", + "picocolors": "__VERSION__", + "source-map-js": "__VERSION__" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-cli": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "__VERSION__", + "dependency-graph": "__VERSION__", + "fs-extra": "__VERSION__", + "picocolors": "__VERSION__", + "postcss-load-config": "__VERSION__", + "postcss-reporter": "__VERSION__", + "pretty-hrtime": "__VERSION__", + "read-cache": "__VERSION__", + "slash": "__VERSION__", + "tinyglobby": "__VERSION__", + "yargs": "__VERSION__" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-cli/node_modules/cliui": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__", + "wrap-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-cli/node_modules/slash": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss-cli/node_modules/wrap-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/postcss-cli/node_modules/y18n": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-cli/node_modules/yargs": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "__VERSION__", + "escalade": "__VERSION__", + "get-caller-file": "__VERSION__", + "require-directory": "__VERSION__", + "string-width": "__VERSION__", + "y18n": "__VERSION__", + "yargs-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-cli/node_modules/yargs-parser": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-load-config": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "__VERSION__", + "yaml": "__VERSION__" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": "__VERSION__", + "postcss": "__VERSION__", + "tsx": "__VERSION__" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + } + } + }, + "node_modules/postcss-media-query-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-reporter": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "picocolors": "__VERSION__", + "thenby": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-safe-parser": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-scss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-selector-parser": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "__VERSION__", + "util-deprecate": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-sorting": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-value-parser": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/prettier": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/pretty-hrtime": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/punycode": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/qified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/qified/-/qified-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/qified/node_modules/hookified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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/ramda": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ramda" + } + }, + "node_modules/read-cache": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "__VERSION__" + } + }, + "node_modules/readdirp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "get-intrinsic": "__VERSION__", + "get-proto": "__VERSION__", + "which-builtin-type": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-errors": "__VERSION__", + "get-proto": "__VERSION__", + "gopd": "__VERSION__", + "set-function-name": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/require-from-string": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/require-main-filename": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/reserved-identifiers": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/resolve": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "is-core-module": "__VERSION__", + "node-exports-info": "__VERSION__", + "object-keys": "__VERSION__", + "path-parse": "__VERSION__", + "supports-preserve-symlinks-flag": "__VERSION__" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/reusify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "iojs": "__VERSION__", + "node": "__VERSION__" + } + }, + "node_modules/run-parallel": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__" + } + }, + "node_modules/safe-array-concat": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__", + "has-symbols": "__VERSION__", + "isarray": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "isarray": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-regex": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sass": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/sass/-/sass-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "__VERSION__", + "immutable": "__VERSION__", + "source-map-js": ">=__VERSION__ <__VERSION__" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": "__VERSION__" + }, + "optionalDependencies": { + "@parcel/watcher": "__VERSION__" + } + }, + "node_modules/sass/node_modules/chokidar": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/semver": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-blocking": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/set-function-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "__VERSION__", + "es-errors": "__VERSION__", + "function-bind": "__VERSION__", + "get-intrinsic": "__VERSION__", + "gopd": "__VERSION__", + "has-property-descriptors": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "__VERSION__", + "es-errors": "__VERSION__", + "functions-have-names": "__VERSION__", + "has-property-descriptors": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/shebang-regex": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/side-channel": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "object-inspect": "__VERSION__", + "side-channel-list": "__VERSION__", + "side-channel-map": "__VERSION__", + "side-channel-weakmap": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "object-inspect": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "object-inspect": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "object-inspect": "__VERSION__", + "side-channel-map": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/slice-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "astral-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/source-map": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/source-map-js": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/source-map-support": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "__VERSION__", + "source-map": "__VERSION__" + } + }, + "node_modules/spdx-exceptions": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "__VERSION__", + "spdx-license-ids": "__VERSION__" + } + }, + "node_modules/spdx-license-ids": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/stop-iteration-iterator": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "internal-slot": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string-width": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/string.prototype.trim": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-data-property": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-object-atoms": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/strip-bom": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/strip-json-comments": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/css-parser-algorithms": "__VERSION__", + "@csstools/css-syntax-patches-for-csstree": "__VERSION__", + "@csstools/css-tokenizer": "__VERSION__", + "@csstools/media-query-list-parser": "__VERSION__", + "@csstools/selector-specificity": "__VERSION__", + "@dual-bundle/import-meta-resolve": "__VERSION__", + "balanced-match": "__VERSION__", + "colord": "__VERSION__", + "cosmiconfig": "__VERSION__", + "css-functions-list": "__VERSION__", + "css-tree": "__VERSION__", + "debug": "__VERSION__", + "fast-glob": "__VERSION__", + "fastest-levenshtein": "__VERSION__", + "file-entry-cache": "__VERSION__", + "global-modules": "__VERSION__", + "globby": "__VERSION__", + "globjoin": "__VERSION__", + "html-tags": "__VERSION__", + "ignore": "__VERSION__", + "imurmurhash": "__VERSION__", + "is-plain-object": "__VERSION__", + "known-css-properties": "__VERSION__", + "mathml-tag-names": "__VERSION__", + "meow": "__VERSION__", + "micromatch": "__VERSION__", + "normalize-path": "__VERSION__", + "picocolors": "__VERSION__", + "postcss": "__VERSION__", + "postcss-resolve-nested-selector": "__VERSION__", + "postcss-safe-parser": "__VERSION__", + "postcss-selector-parser": "__VERSION__", + "postcss-value-parser": "__VERSION__", + "resolve-from": "__VERSION__", + "string-width": "__VERSION__", + "supports-hyperlinks": "__VERSION__", + "svg-tags": "__VERSION__", + "table": "__VERSION__", + "write-file-atomic": "__VERSION__" + }, + "bin": { + "stylelint": "bin/stylelint.mjs" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__" + } + }, + "node_modules/stylelint-config-recommended-scss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-scss": "__VERSION__", + "stylelint-config-recommended": "__VERSION__", + "stylelint-scss": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__", + "stylelint": "__VERSION__" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/stylelint-config-standard": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "stylelint-config-recommended": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__" + } + }, + "node_modules/stylelint-config-standard-scss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "stylelint-config-recommended-scss": "__VERSION__", + "stylelint-config-standard": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__", + "stylelint": "__VERSION__" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/stylelint-order": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss": "__VERSION__", + "postcss-sorting": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__ || __VERSION__" + } + }, + "node_modules/stylelint-scss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "__VERSION__", + "is-plain-object": "__VERSION__", + "known-css-properties": "__VERSION__", + "mdn-data": "__VERSION__", + "postcss-media-query-parser": "__VERSION__", + "postcss-resolve-nested-selector": "__VERSION__", + "postcss-selector-parser": "__VERSION__", + "postcss-value-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__" + } + }, + "node_modules/stylelint/node_modules/file-entry-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "__VERSION__" + } + }, + "node_modules/stylelint/node_modules/flat-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "cacheable": "__VERSION__", + "flatted": "__VERSION__", + "hookified": "__VERSION__" + } + }, + "node_modules/stylelint/node_modules/ignore": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/supports-color": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/supports-hyperlinks": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "__VERSION__", + "supports-color": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-tags": { + "version": "__VERSION__", + "dev": true + }, + "node_modules/synckit": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/table": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "__VERSION__", + "lodash.truncate": "__VERSION__", + "slice-ansi": "__VERSION__", + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "__VERSION__", + "fast-uri": "__VERSION__", + "json-schema-traverse": "__VERSION__", + "require-from-string": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/terser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/terser/-/terser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "__VERSION__", + "acorn": "__VERSION__", + "commander": "__VERSION__", + "source-map-support": "__VERSION__" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/thenby": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tinyglobby": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tmp": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/to-regex-range": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/to-valid-identifier": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/base62": "__VERSION__", + "reserved-identifiers": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tsconfig-paths": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "__VERSION__", + "json5": "__VERSION__", + "minimist": "__VERSION__", + "strip-bom": "__VERSION__" + } + }, + "node_modules/type-check": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/typed-array-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "for-each": "__VERSION__", + "gopd": "__VERSION__", + "has-proto": "__VERSION__", + "is-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "__VERSION__", + "call-bind": "__VERSION__", + "for-each": "__VERSION__", + "gopd": "__VERSION__", + "has-proto": "__VERSION__", + "is-typed-array": "__VERSION__", + "reflect.getprototypeof": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "for-each": "__VERSION__", + "gopd": "__VERSION__", + "is-typed-array": "__VERSION__", + "possible-typed-array-names": "__VERSION__", + "reflect.getprototypeof": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-bigints": "__VERSION__", + "has-symbols": "__VERSION__", + "which-boxed-primitive": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/universalify": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/update-browserslist-db": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__", + "picocolors": "__VERSION__" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= __VERSION__" + } + }, + "node_modules/uri-js": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "__VERSION__" + } + }, + "node_modules/util-deprecate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "__VERSION__" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "__VERSION__", + "is-boolean-object": "__VERSION__", + "is-number-object": "__VERSION__", + "is-string": "__VERSION__", + "is-symbol": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "function.prototype.name": "__VERSION__", + "has-tostringtag": "__VERSION__", + "is-async-function": "__VERSION__", + "is-date-object": "__VERSION__", + "is-finalizationregistry": "__VERSION__", + "is-generator-function": "__VERSION__", + "is-regex": "__VERSION__", + "is-weakref": "__VERSION__", + "isarray": "__VERSION__", + "which-boxed-primitive": "__VERSION__", + "which-collection": "__VERSION__", + "which-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "__VERSION__", + "is-set": "__VERSION__", + "is-weakmap": "__VERSION__", + "is-weakset": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/which-typed-array": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "__VERSION__", + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "for-each": "__VERSION__", + "get-proto": "__VERSION__", + "gopd": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/write-file-atomic": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "__VERSION__", + "signal-exit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/y18n": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yaml-eslint-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "__VERSION__", + "yaml": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, + "node_modules/yargs": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "__VERSION__", + "find-up": "__VERSION__", + "get-caller-file": "__VERSION__", + "require-directory": "__VERSION__", + "require-main-filename": "__VERSION__", + "set-blocking": "__VERSION__", + "string-width": "__VERSION__", + "which-module": "__VERSION__", + "y18n": "__VERSION__", + "yargs-parser": "__VERSION__" + } + }, + "node_modules/yargs-parser": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "__VERSION__", + "decamelize": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/find-up": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "__VERSION__", + "path-exists": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/path-exists": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yocto-queue": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/.vortex/cli/tests/Fixtures/handler_process/names/web/themes/custom/lightsaber/package.json b/.vortex/cli/tests/Fixtures/handler_process/names/web/themes/custom/lightsaber/package.json index efaa8dd2c9..4b2b66ee28 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/names/web/themes/custom/lightsaber/package.json +++ b/.vortex/cli/tests/Fixtures/handler_process/names/web/themes/custom/lightsaber/package.json @@ -4,17 +4,19 @@ "private": true, "description": "NodeJS dependencies for New hope project", "devDependencies": { + "@eslint/compat": "__VERSION__", + "@eslint/js": "__VERSION__", "@homer0/prettier-plugin-jsdoc": "__VERSION__", "autoprefixer": "__VERSION__", "chokidar-cli": "__VERSION__", "eslint": "__VERSION__", - "eslint-config-airbnb-base": "__VERSION__", "eslint-config-prettier": "__VERSION__", "eslint-plugin-import": "__VERSION__", "eslint-plugin-jsdoc": "__VERSION__", "eslint-plugin-no-jquery": "__VERSION__", "eslint-plugin-prettier": "__VERSION__", "eslint-plugin-yml": "__VERSION__", + "globals": "__VERSION__", "patch-package": "__VERSION__", "postcss": "__VERSION__", "postcss-cli": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/web/themes/custom/star_wars/-.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/names/web/themes/custom/star_wars/-eslint.config.mjs similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/web/themes/custom/star_wars/-.eslintrc.json rename to .vortex/cli/tests/Fixtures/handler_process/names/web/themes/custom/star_wars/-eslint.config.mjs diff --git a/.vortex/cli/tests/Fixtures/handler_process/names/web/modules/custom/sw_base/-sw_base.module b/.vortex/cli/tests/Fixtures/handler_process/names/web/themes/custom/star_wars/-package-lock.json similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/names/web/modules/custom/sw_base/-sw_base.module rename to .vortex/cli/tests/Fixtures/handler_process/names/web/themes/custom/star_wars/-package-lock.json diff --git a/.vortex/cli/tests/Fixtures/handler_process/non_interactive_config_file/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/non_interactive_config_file/docker-compose.yml index ffad5ca3fd..9b37b1cb0e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/non_interactive_config_file/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/non_interactive_config_file/docker-compose.yml @@ -1,4 +1,4 @@ -@@ -54,8 +54,6 @@ +@@ -55,8 +55,6 @@ # Drupal Shield credentials. DRUPAL_SHIELD_USER: ${DRUPAL_SHIELD_USER:-} DRUPAL_SHIELD_PASS: ${DRUPAL_SHIELD_PASS:-} @@ -7,7 +7,7 @@ # The default user under which the containers should run. x-user: &default-user -@@ -153,9 +151,6 @@ +@@ -154,9 +152,6 @@ ports: - '3306' # Database port in a container. Find port on host with `ahoy info` or `docker compose port database 3306`. @@ -17,7 +17,7 @@ search: build: context: . -@@ -196,12 +191,10 @@ +@@ -197,12 +192,10 @@ depends_on: - antivirus - database diff --git a/.vortex/cli/tests/Fixtures/handler_process/non_interactive_config_string/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/non_interactive_config_string/docker-compose.yml index 938a00641f..e517520d18 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/non_interactive_config_string/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/non_interactive_config_string/docker-compose.yml @@ -1,4 +1,4 @@ -@@ -167,17 +167,6 @@ +@@ -168,17 +168,6 @@ ports: - '8983' # Solr port in a container. Find port on host with `ahoy info` or `docker compose port search 8983`. @@ -16,7 +16,7 @@ # Browser container, used for browser testing. browser: image: selenium/standalone-chromium:__VERSION__ -@@ -194,12 +183,10 @@ +@@ -195,12 +184,10 @@ wait-for-dependencies: image: drevops/docker-wait-for-dependencies:__VERSION__ depends_on: diff --git a/.vortex/cli/tests/Fixtures/handler_process/provision_database_lagoon/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/provision_database_lagoon/.github/workflows/build-test-deploy.yml index 5d1a7f2bc9..3569e59c68 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/provision_database_lagoon/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/provision_database_lagoon/.github/workflows/build-test-deploy.yml @@ -1,4 +1,4 @@ -@@ -248,6 +248,15 @@ +@@ -274,6 +274,15 @@ - name: Login to container registry run: ./vendor/bin/vortex-login-container-registry @@ -14,7 +14,7 @@ # On the first build of the day (cache miss), fetch a fresh DB dump. # On subsequent builds, the restored cache already contains the dump and # the fetch script skips itself, leaving no semaphore file behind. -@@ -553,7 +562,6 @@ +@@ -589,7 +598,6 @@ VORTEX_DEPLOY_PR: ${{ env.DEPLOY_PR_NUMBER || github.event.number }} VORTEX_DEPLOY_PR_HEAD: ${{ env.DEPLOY_PR_HEAD_SHA || github.event.pull_request.head.sha }} VORTEX_DEPLOY_PR_LABELS: ${{ join(github.event.pull_request.labels.*.name, ',') }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/provision_database_lagoon/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/provision_database_lagoon/docker-compose.yml index 7464d839bc..274b83248e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/provision_database_lagoon/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/provision_database_lagoon/docker-compose.yml @@ -6,7 +6,7 @@ x-environment: &default-environment TZ: ${TZ:-UTC} # Pass-through 'CI' variable used to identify the CI environment. -@@ -105,6 +106,10 @@ +@@ -106,6 +107,10 @@ wait-for-dependencies: condition: service_completed_successfully user: root @@ -17,7 +17,7 @@ webserver: build: -@@ -125,6 +130,11 @@ +@@ -126,6 +131,11 @@ networks: - default # This is a standard network and is used for all other environments, where requests routing is not required and/or not supported. - amazeeio-network ### This network is supported by Pygmy and used to route all requests to host machine locally. Removed in CI. @@ -29,7 +29,7 @@ # PHP FPM container. All web requests are going through this container. appserver: -@@ -140,6 +150,11 @@ +@@ -141,6 +151,11 @@ <<: [ *default-volumes, *default-user ] depends_on: - cli @@ -41,7 +41,7 @@ database: build: -@@ -152,9 +167,13 @@ +@@ -153,9 +168,13 @@ <<: *default-user ports: - '3306' # Database port in a container. Find port on host with `ahoy info` or `docker compose port database 3306`. @@ -55,7 +55,7 @@ search: build: -@@ -166,6 +185,8 @@ +@@ -167,6 +186,8 @@ - search:/var/solr ports: - '8983' # Solr port in a container. Find port on host with `ahoy info` or `docker compose port search 8983`. @@ -64,7 +64,7 @@ antivirus: build: -@@ -177,6 +198,10 @@ +@@ -178,6 +199,10 @@ - '3310' # Find port on host with `docker compose port antivirus 3310`. networks: - default @@ -75,7 +75,7 @@ # Browser container, used for browser testing. browser: -@@ -189,6 +214,8 @@ +@@ -190,6 +215,8 @@ ports: - '7900' # Find port on host with `docker compose port browser 7900`. shm_size: '1gb' # Increase '/dev/shm' partition size to avoid browser crashing. @@ -84,7 +84,7 @@ # Helper container to wait for services to become available. wait-for-dependencies: -@@ -204,6 +231,8 @@ +@@ -205,6 +232,8 @@ - cache:6379 - search:8983 - curl -s "http://search:8983/solr/drupal/select?q=*:*&rows=0&wt=json" | grep response diff --git a/.vortex/cli/tests/Fixtures/handler_process/provision_profile/.env b/.vortex/cli/tests/Fixtures/handler_process/provision_profile/.env index 76a0b578ec..ee483cf4b0 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/provision_profile/.env +++ b/.vortex/cli/tests/Fixtures/handler_process/provision_profile/.env @@ -1,5 +1,5 @@ @@ -103,7 +103,7 @@ - # @see https://www.vortextemplate.com/docs/drupal/provision + # @see https://www.vortextemplate.com/docs/development/provision # Set to 'profile' to install a site from profile instead of the database dump. -VORTEX_PROVISION_TYPE=database @@ -29,13 +29,13 @@ -# -# Database sanitization is enabled by default in all non-production -# environments and is always skipped in the production environment. --# @see https://www.vortextemplate.com/docs/drupal/provision#database-sanitization +-# @see https://www.vortextemplate.com/docs/development/provision#database-sanitization -VORTEX_PROVISION_SANITIZE_DB_SKIP=0 - -# Sanitization email pattern. -# -# Applied if database sanitization is enabled. --# @see https://www.vortextemplate.com/docs/drupal/provision#database-sanitization +-# @see https://www.vortextemplate.com/docs/development/provision#database-sanitization -VORTEX_PROVISION_SANITIZE_DB_EMAIL=user_%uid@star-wars.com - # Put the site into a maintenance mode during site provisioning. diff --git a/.vortex/cli/tests/Fixtures/handler_process/provision_profile/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/provision_profile/.github/workflows/build-test-deploy.yml index 944d399f31..58df31b129 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/provision_profile/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/provision_profile/.github/workflows/build-test-deploy.yml @@ -26,10 +26,10 @@ - VORTEX_CI_DB_CACHE_FALLBACK: "yes" - # Which branch to use as a source of DB caches. - VORTEX_CI_DB_CACHE_BRANCH: "develop" - - steps: - - name: Check out code -@@ -223,68 +213,12 @@ + # Which tools run on this instance. Tools that only need to run once are + # pinned to the first instance. Add a line for every additional tool and + # reference it in that tool's step. +@@ -249,68 +239,12 @@ - name: Install Vortex tooling run: ./scripts/vortex-tooling.sh @@ -80,10 +80,10 @@ - - name: Export DB after fetch - run: | - if [ ! -f /tmp/fetch-db-success ]; then echo "==> Database fetch semaphore file is missing. DB export will not proceed."; exit 0; fi -- docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true +- docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true - docker compose exec cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" - ./vendor/bin/vortex-export-db db.sql -- docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true +- docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true - timeout-minutes: 30 - - # Save the clean DB dump to cache from the primary parallel runner only, @@ -98,7 +98,7 @@ - name: Install development dependencies run: | docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ -@@ -482,7 +416,6 @@ +@@ -518,7 +452,6 @@ deploy: runs-on: ubuntu-latest needs: [test, lint, build] diff --git a/.vortex/cli/tests/Fixtures/handler_process/provision_profile_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/provision_profile_circleci/.circleci/config.yml index 951fc21ce7..9e0a31e6bb 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/provision_profile_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/provision_profile_circleci/.circleci/config.yml @@ -131,7 +131,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -159,13 +159,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -176,14 +176,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -198,6 +199,28 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -223,7 +246,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -232,7 +255,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -240,27 +263,29 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -269,14 +294,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -285,7 +310,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -297,10 +322,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -309,9 +335,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/provision_profile_circleci/.env b/.vortex/cli/tests/Fixtures/handler_process/provision_profile_circleci/.env index 76a0b578ec..ee483cf4b0 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/provision_profile_circleci/.env +++ b/.vortex/cli/tests/Fixtures/handler_process/provision_profile_circleci/.env @@ -1,5 +1,5 @@ @@ -103,7 +103,7 @@ - # @see https://www.vortextemplate.com/docs/drupal/provision + # @see https://www.vortextemplate.com/docs/development/provision # Set to 'profile' to install a site from profile instead of the database dump. -VORTEX_PROVISION_TYPE=database @@ -29,13 +29,13 @@ -# -# Database sanitization is enabled by default in all non-production -# environments and is always skipped in the production environment. --# @see https://www.vortextemplate.com/docs/drupal/provision#database-sanitization +-# @see https://www.vortextemplate.com/docs/development/provision#database-sanitization -VORTEX_PROVISION_SANITIZE_DB_SKIP=0 - -# Sanitization email pattern. -# -# Applied if database sanitization is enabled. --# @see https://www.vortextemplate.com/docs/drupal/provision#database-sanitization +-# @see https://www.vortextemplate.com/docs/development/provision#database-sanitization -VORTEX_PROVISION_SANITIZE_DB_EMAIL=user_%uid@star-wars.com - # Put the site into a maintenance mode during site provisioning. diff --git a/.vortex/cli/tests/Fixtures/handler_process/services_no_clamav/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/services_no_clamav/docker-compose.yml index 938a00641f..e517520d18 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/services_no_clamav/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/services_no_clamav/docker-compose.yml @@ -1,4 +1,4 @@ -@@ -167,17 +167,6 @@ +@@ -168,17 +168,6 @@ ports: - '8983' # Solr port in a container. Find port on host with `ahoy info` or `docker compose port search 8983`. @@ -16,7 +16,7 @@ # Browser container, used for browser testing. browser: image: selenium/standalone-chromium:__VERSION__ -@@ -194,12 +183,10 @@ +@@ -195,12 +184,10 @@ wait-for-dependencies: image: drevops/docker-wait-for-dependencies:__VERSION__ depends_on: diff --git a/.vortex/cli/tests/Fixtures/handler_process/services_no_redis/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/services_no_redis/docker-compose.yml index ffad5ca3fd..9b37b1cb0e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/services_no_redis/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/services_no_redis/docker-compose.yml @@ -1,4 +1,4 @@ -@@ -54,8 +54,6 @@ +@@ -55,8 +55,6 @@ # Drupal Shield credentials. DRUPAL_SHIELD_USER: ${DRUPAL_SHIELD_USER:-} DRUPAL_SHIELD_PASS: ${DRUPAL_SHIELD_PASS:-} @@ -7,7 +7,7 @@ # The default user under which the containers should run. x-user: &default-user -@@ -153,9 +151,6 @@ +@@ -154,9 +152,6 @@ ports: - '3306' # Database port in a container. Find port on host with `ahoy info` or `docker compose port database 3306`. @@ -17,7 +17,7 @@ search: build: context: . -@@ -196,12 +191,10 @@ +@@ -197,12 +192,10 @@ depends_on: - antivirus - database diff --git a/.vortex/cli/tests/Fixtures/handler_process/services_no_solr/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/services_no_solr/docker-compose.yml index 72010ca8c3..b698489a59 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/services_no_solr/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/services_no_solr/docker-compose.yml @@ -1,4 +1,4 @@ -@@ -156,17 +156,6 @@ +@@ -157,17 +157,6 @@ cache: image: uselagoon/valkey-8:__VERSION__ @@ -16,7 +16,7 @@ antivirus: build: context: . -@@ -197,13 +186,10 @@ +@@ -198,13 +187,10 @@ - antivirus - database - cache @@ -30,7 +30,7 @@ networks: ### Use external networks locally. Automatically removed in CI. amazeeio-network: ### Automatically removed in CI. -@@ -212,7 +198,6 @@ +@@ -213,7 +199,6 @@ volumes: app: {} files: {} diff --git a/.vortex/cli/tests/Fixtures/handler_process/services_no_solr/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/cli/tests/Fixtures/handler_process/services_no_solr/tests/phpunit/Drupal/EnvironmentSettingsTest.php index 4950acab44..f1c691cba5 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/services_no_solr/tests/phpunit/Drupal/EnvironmentSettingsTest.php +++ b/.vortex/cli/tests/Fixtures/handler_process/services_no_solr/tests/phpunit/Drupal/EnvironmentSettingsTest.php @@ -34,7 +34,7 @@ $this->assertConfig($config); $settings['auto_create_htaccess'] = FALSE; -@@ -359,8 +351,6 @@ +@@ -360,8 +352,6 @@ $config['reroute_email.settings']['allowed'] = '*@star-wars.com'; $config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE; $config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE; diff --git a/.vortex/cli/tests/Fixtures/handler_process/services_no_solr/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php b/.vortex/cli/tests/Fixtures/handler_process/services_no_solr/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php index 134ff27697..a212e6cfa7 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/services_no_solr/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php +++ b/.vortex/cli/tests/Fixtures/handler_process/services_no_solr/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php @@ -11,4 +11,4 @@ - $this->moduleInstaller->install(['sw_search']); $this->moduleInstaller->install(['sw_demo']); - } + diff --git a/.vortex/cli/tests/Fixtures/handler_process/services_none/docker-compose.yml b/.vortex/cli/tests/Fixtures/handler_process/services_none/docker-compose.yml index a89b1edda4..61a5c7432b 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/services_none/docker-compose.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/services_none/docker-compose.yml @@ -1,4 +1,4 @@ -@@ -54,8 +54,6 @@ +@@ -55,8 +55,6 @@ # Drupal Shield credentials. DRUPAL_SHIELD_USER: ${DRUPAL_SHIELD_USER:-} DRUPAL_SHIELD_PASS: ${DRUPAL_SHIELD_PASS:-} @@ -7,7 +7,7 @@ # The default user under which the containers should run. x-user: &default-user -@@ -153,31 +151,6 @@ +@@ -154,31 +152,6 @@ ports: - '3306' # Database port in a container. Find port on host with `ahoy info` or `docker compose port database 3306`. @@ -39,7 +39,7 @@ # Browser container, used for browser testing. browser: image: selenium/standalone-chromium:__VERSION__ -@@ -194,16 +167,9 @@ +@@ -195,16 +168,9 @@ wait-for-dependencies: image: drevops/docker-wait-for-dependencies:__VERSION__ depends_on: @@ -56,7 +56,7 @@ networks: ### Use external networks locally. Automatically removed in CI. amazeeio-network: ### Automatically removed in CI. -@@ -212,7 +178,6 @@ +@@ -213,7 +179,6 @@ volumes: app: {} files: {} diff --git a/.vortex/cli/tests/Fixtures/handler_process/services_none/tests/phpunit/Drupal/EnvironmentSettingsTest.php b/.vortex/cli/tests/Fixtures/handler_process/services_none/tests/phpunit/Drupal/EnvironmentSettingsTest.php index 4950acab44..f1c691cba5 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/services_none/tests/phpunit/Drupal/EnvironmentSettingsTest.php +++ b/.vortex/cli/tests/Fixtures/handler_process/services_none/tests/phpunit/Drupal/EnvironmentSettingsTest.php @@ -34,7 +34,7 @@ $this->assertConfig($config); $settings['auto_create_htaccess'] = FALSE; -@@ -359,8 +351,6 @@ +@@ -360,8 +352,6 @@ $config['reroute_email.settings']['allowed'] = '*@star-wars.com'; $config['seckit.settings']['seckit_xss']['csp']['checkbox'] = FALSE; $config['seckit.settings']['seckit_xss']['csp']['upgrade-req'] = FALSE; diff --git a/.vortex/cli/tests/Fixtures/handler_process/services_none/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php b/.vortex/cli/tests/Fixtures/handler_process/services_none/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php index c59b7080c6..03dae7040e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/services_none/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php +++ b/.vortex/cli/tests/Fixtures/handler_process/services_none/web/modules/custom/sw_base/src/Plugin/DeployStep/EnableDevelopmentModulesDeployStep.php @@ -16,4 +16,4 @@ - $this->moduleInstaller->install(['sw_search']); $this->moduleInstaller->install(['sw_demo']); - } + diff --git a/.vortex/cli/tests/Fixtures/handler_process/starter_drupal_cms_profile/composer.json b/.vortex/cli/tests/Fixtures/handler_process/starter_drupal_cms_profile/composer.json index ce001325f1..15dce94a34 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/starter_drupal_cms_profile/composer.json +++ b/.vortex/cli/tests/Fixtures/handler_process/starter_drupal_cms_profile/composer.json @@ -17,7 +17,7 @@ }, "require-dev": { "behat/behat": "__VERSION__", -@@ -71,7 +74,7 @@ +@@ -72,7 +75,7 @@ "url": "https://packages.drupal.org/8" } ], @@ -26,7 +26,7 @@ "prefer-stable": true, "autoload-dev": { "classmap": [ -@@ -89,7 +92,11 @@ +@@ -90,7 +93,11 @@ "phpstan/extension-installer": true, "pyrech/composer-changelogs": true, "symfony/runtime": true, @@ -39,7 +39,7 @@ }, "bump-after-update": true, "discard-changes": true, -@@ -164,6 +171,19 @@ +@@ -165,6 +172,19 @@ "patchLevel": { "drupal/core": "-p2" }, diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_claro/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/theme_claro/.ahoy.yml index 111fcd24fe..0b33e1b47f 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/theme_claro/.ahoy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/theme_claro/.ahoy.yml @@ -9,25 +9,25 @@ @@ -170,25 +169,7 @@ aliases: [fe-install] cmd: | - ahoy cli "yarn install --frozen-lockfile" -- ahoy cli "yarn --cwd=${WEBROOT}/themes/custom/${DRUPAL_THEME} install --frozen-lockfile" + ahoy cli "npm ci" +- ahoy cli "npm --prefix=${WEBROOT}/themes/custom/${DRUPAL_THEME} ci" - fe: - usage: Build front-end assets. - aliases: [fe-build] -- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run build" +- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run build" - - fed: - usage: Build front-end assets for development. - aliases: [fe-build-dev] -- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run build-dev" +- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run build-dev" - - few: - usage: Watch front-end assets during development. - aliases: [fe-watch] - cmd: | - ahoy cli "pkill -9 -f grunt" || true -- ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run watch" +- ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run watch" - lint: usage: Lint back-end and front-end code. @@ -35,8 +35,8 @@ @@ -208,7 +189,6 @@ cmd: | ahoy cli vendor/bin/twig-cs-fixer lint - ahoy cli "yarn run lint" -- ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" + ahoy cli "npm run lint" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" lint-tests: usage: Lint tests code. @@ -58,8 +58,8 @@ @@ -240,7 +212,6 @@ cmd: | ahoy cli vendor/bin/twig-cs-fixer lint --fix - ahoy cli "yarn run lint-fix" -- ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" + ahoy cli "npm run lint-fix" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" test: usage: Run all PHPUnit tests. diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_claro/.docker/cli.dockerfile b/.vortex/cli/tests/Fixtures/handler_process/theme_claro/.docker/cli.dockerfile index 4abfebbece..573ef6b35d 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/theme_claro/.docker/cli.dockerfile +++ b/.vortex/cli/tests/Fixtures/handler_process/theme_claro/.docker/cli.dockerfile @@ -7,16 +7,17 @@ ENV DRUPAL_THEME=${DRUPAL_THEME} ARG VORTEX_FRONTEND_BUILD_SKIP="0" -@@ -94,12 +94,5 @@ +@@ -94,13 +94,5 @@ # Create file directories and set correct permissions. # hadolint ignore=SC2174 # only the leaf directory needs the mode RUN mkdir -p -m 2775 "/app/${WEBROOT}/${DRUPAL_PUBLIC_FILES}" "/app/${WEBROOT}/${DRUPAL_PRIVATE_FILES}" "${DRUPAL_TEMPORARY_FILES}" - -RUN if [ "${VORTEX_FRONTEND_BUILD_SKIP}" != "1" ]; then \ - theme_path="/app/${WEBROOT}/themes/custom/${DRUPAL_THEME}"; \ -- yarn --cwd="${theme_path}" install --frozen-lockfile --no-progress && \ -- yarn --cwd="${theme_path}" run build && \ -- yarn cache clean; \ +- export npm_config_cache=/tmp/npm-cache; \ +- npm --prefix="${theme_path}" ci --no-progress --no-audit --no-fund && \ +- npm --prefix="${theme_path}" run build && \ +- rm -rf /tmp/npm-cache; \ - fi WORKDIR /app diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_claro/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/theme_claro/.github/workflows/build-test-deploy.yml index f9fb5e8dca..5d7488dc0f 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/theme_claro/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/theme_claro/.github/workflows/build-test-deploy.yml @@ -1,22 +1,30 @@ @@ -155,11 +155,6 @@ - run: docker compose exec -T cli bash -c "yarn run lint" + run: docker compose exec -T cli bash -c "npm run lint" continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} - - name: Lint theme code with NodeJS linters - if: ${{ vars.VORTEX_FRONTEND_BUILD_SKIP != '1' }} -- run: docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" +- run: docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" - continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} - test: runs-on: ubuntu-latest if: ${{ !inputs.deploy_target && (github.event_name == 'push' || !startsWith(github.head_ref, 'project/')) }} -@@ -368,18 +363,6 @@ +@@ -201,7 +196,6 @@ + VORTEX_CI_RUNNER_TOTAL: ${{ strategy.job-total }} + VORTEX_CI_IS_JEST_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + VORTEX_CI_IS_PHPUNIT_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- VORTEX_CI_IS_SDC_DEVEL_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + # Runs on every instance, using the `p` profile. + VORTEX_CI_IS_BEHAT_RUNNER: true + # Subtracted from the instance index to derive the profile number. Raise +@@ -394,18 +388,6 @@ fi env: VORTEX_CI_CODE_COVERAGE_THRESHOLD: ${{ vars.VORTEX_CI_CODE_COVERAGE_THRESHOLD || '90' }} - - - name: Validate Single Directory Components -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- if: ${{ env.VORTEX_CI_IS_SDC_DEVEL_RUNNER == 'true' }} - run: | - [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) @@ -28,4 +36,4 @@ - continue-on-error: ${{ vars.VORTEX_CI_SDC_DEVEL_IGNORE_FAILURE == '1' }} - name: Test with Behat - run: | + if: ${{ env.VORTEX_CI_IS_BEHAT_RUNNER == 'true' }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/names/web/sites/default/includes/modules/-settings.sw_base.php b/.vortex/cli/tests/Fixtures/handler_process/theme_claro/web/themes/custom/star_wars/-eslint.config.mjs similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/names/web/sites/default/includes/modules/-settings.sw_base.php rename to .vortex/cli/tests/Fixtures/handler_process/theme_claro/web/themes/custom/star_wars/-eslint.config.mjs diff --git a/.vortex/cli/tests/Fixtures/handler_process/names/web/themes/custom/star_wars/-.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/theme_claro/web/themes/custom/star_wars/-package-lock.json similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/names/web/themes/custom/star_wars/-.eslintrc.json rename to .vortex/cli/tests/Fixtures/handler_process/theme_claro/web/themes/custom/star_wars/-package-lock.json diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/.eslintrc.json deleted file mode 100644 index ef68a6a933..0000000000 --- a/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/.eslintrc.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "extends": [ - "airbnb-base", - "plugin:prettier/recommended", - "plugin:yml/recommended" - ], - "root": true, - "env": { - "browser": true, - "es6": true, - "node": true - }, - "parserOptions": { - "ecmaVersion": 2020 - }, - "plugins": [ - "jsdoc" - ], - "globals": { - "Drupal": true, - "drupalSettings": true, - "drupalTranslations": true, - "jQuery": true, - "_": true, - "Cookies": true, - "Backbone": true, - "htmx": true, - "loadjs": true, - "Shepherd": true, - "Sortable": true, - "once": true, - "CKEditor5": true, - "tabbable": true, - "transliterate": true, - "bodyScrollLock" : true, - "FloatingUIDOM": true - }, - "rules": { - "prettier/prettier": "error", - "consistent-return": ["off"], - "no-underscore-dangle": ["off"], - "max-nested-callbacks": ["warn", 3], - "import/no-mutable-exports": ["warn"], - "no-plusplus": ["warn", { - "allowForLoopAfterthoughts": true - }], - "no-param-reassign": ["off"], - "no-prototype-builtins": ["off"], - "jsdoc/require-returns": ["off"], - "jsdoc/require-returns-type": ["warn"], - "jsdoc/require-returns-description": ["warn"], - "jsdoc/require-returns-check": ["warn"], - "jsdoc/require-param": ["warn"], - "jsdoc/require-param-type": ["warn"], - "jsdoc/require-param-description": ["warn"], - "jsdoc/check-param-names": ["warn"], - "jsdoc/valid-types": ["warn"], - "jsdoc/require-param-name": ["warn"], - "jsdoc/check-tag-names": ["warn"], - "no-unused-vars": ["warn"], - "operator-linebreak": ["error", "after", { "overrides": { "?": "ignore", ":": "ignore" } }], - "yml/indent": ["error", 2] - }, - "settings": { - "jsdoc": { - "tagNamePreference": { - "returns": "return", - "property": "prop" - } - } - } -} diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/.prettierrc.json b/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/.prettierrc.json index b5ed527867..8ef17490e8 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/.prettierrc.json +++ b/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/.prettierrc.json @@ -1,10 +1,12 @@ { - "printWidth": 80, + "printWidth": 160, "semi": true, "singleQuote": true, "trailingComma": "all", "plugins": ["@homer0/prettier-plugin-jsdoc"], + "jsdocPrintWidth": 80, "jsdocReplaceTagsSynonyms": false, + "jsdocUseTypeScriptTypesCasing": false, "overrides": [ { "files": ["*.css"], diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/README.md b/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/README.md index bfc90db553..63e5700e12 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/README.md +++ b/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/README.md @@ -5,20 +5,20 @@ Custom Drupal theme for the project. ## Requirements - Node.js (LTS version recommended) -- Yarn +- npm ## Installation ```bash -yarn install +npm ci ``` ## Commands -| Command | Description | -|----------------------|------------------------------------------------| -| `yarn run build` | Production build (minified, no source maps) | -| `yarn run build-dev` | Development build (expanded, with source maps) | -| `yarn run watch` | Watch for changes and rebuild automatically | -| `yarn run lint` | Check code style (JS and SCSS) | -| `yarn run lint-fix` | Fix code style issues automatically | +| Command | Description | +|---------------------|------------------------------------------------| +| `npm run build` | Production build (minified, no source maps) | +| `npm run build-dev` | Development build (expanded, with source maps) | +| `npm run watch` | Watch for changes and rebuild automatically | +| `npm run lint` | Check code style (JS and SCSS) | +| `npm run lint-fix` | Fix code style issues automatically | diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/eslint.config.mjs b/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/eslint.config.mjs new file mode 100644 index 0000000000..5e6af862fb --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/eslint.config.mjs @@ -0,0 +1,100 @@ +// Mirrors the Drupal core configuration from +// https://www.drupal.org/project/drupal/issues/3440225, adapted to lint the +// theme's own sources. The theme carries its own front-end tooling because it +// can be moved into a separate repository. +import { defineConfig } from 'eslint/config'; +import { fixupPluginRules } from '@eslint/compat'; +import importPlugin from 'eslint-plugin-import'; +import noJQuery from 'eslint-plugin-no-jquery'; +import prettierConfig from 'eslint-plugin-prettier/recommended'; +import ymlConfig from 'eslint-plugin-yml'; +import jsdoc from 'eslint-plugin-jsdoc'; +import js from '@eslint/js'; +import globals from 'globals'; + +export default defineConfig( + { + ignores: ['node_modules/**/*', 'build/**/*', '**/*.min.js'], + }, + js.configs.recommended, + importPlugin.flatConfigs.recommended, + jsdoc.configs['flat/recommended'], + prettierConfig, + ymlConfig.configs['flat/recommended'], + { + plugins: { + 'no-jquery': fixupPluginRules(noJQuery), + }, + languageOptions: { + ecmaVersion: 2020, + globals: { + ...globals.browser, + ...globals.node, + + Drupal: 'readonly', + drupalSettings: 'readonly', + drupalTranslations: 'readonly', + jQuery: 'readonly', + _: 'readonly', + Cookies: 'readonly', + Backbone: 'readonly', + htmx: 'readonly', + loadjs: 'readonly', + Shepherd: 'readonly', + Sortable: 'readonly', + once: 'readonly', + CKEditor5: 'readonly', + CKEDITOR: 'readonly', + tabbable: 'readonly', + transliterate: 'readonly', + bodyScrollLock: 'readonly', + FloatingUIDOM: 'readonly', + }, + }, + rules: { + 'prettier/prettier': 'error', + 'no-unexpected-multiline': ['off'], + 'consistent-return': ['off'], + 'no-underscore-dangle': ['off'], + 'max-nested-callbacks': ['warn', 3], + 'import/no-mutable-exports': ['warn'], + 'no-plusplus': [ + 'warn', + { + allowForLoopAfterthoughts: true, + }, + ], + 'no-param-reassign': ['off'], + 'no-prototype-builtins': ['off'], + 'no-unused-vars': ['warn'], + // Kept from the previous ruleset: console calls left in shipped code + // print to every visitor's browser. + 'no-console': 'error', + 'operator-linebreak': [ + 'error', + 'after', + { + overrides: { + '?': 'ignore', + ':': 'ignore', + }, + }, + ], + 'yml/indent': ['error', 2], + // The Drupal docblock style separates the description from the first tag + // with a blank line, which the preset forbids by default. + 'jsdoc/tag-lines': ['warn', 'any', { startLines: 1 }], + // Drupal front-end code documents contracts, not every function. + 'jsdoc/require-jsdoc': ['off'], + ...noJQuery.configs.all.rules, + }, + settings: { + jsdoc: { + tagNamePreference: { + returns: 'return', + property: 'prop', + }, + }, + }, + }, +); diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/js/light_saber.js b/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/js/light_saber.js index c8c2ebfa69..ff56f0e716 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/js/light_saber.js +++ b/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/js/light_saber.js @@ -1,27 +1,25 @@ /** * @file Global theme behaviors. - * @param $ - * @param Drupal - * @global Drupal, JQuery. */ /** - * Global theme behaviors. + * Wraps the behaviors so that anything declared here stays out of the global + * scope. * - * @param {jQuery} $ The jQuery object. - * @param {Drupal} Drupal The Drupal object. + * @param {object} Drupal The Drupal object. */ -(function LightSaberBehaviors($, Drupal) { - Drupal.behaviors.light_saber = { +(function yourSiteThemeBehaviors(Drupal) { + Drupal.behaviors.yourSiteTheme = { attach(context) { - // give me example code here that would be using context with body - $(context) - .find('body') - .once('star-wars-theme') - .each(function iterateBody() { - // Example: Add a class to the body element. - $(this).addClass('star-wars-theme-processed'); - }); + // The context is the document on load and an element on AJAX, and that + // element may be the body itself, so resolve through the owning document. + const body = context.ownerDocument ? context.ownerDocument.body : document.body; + + if (body.classList.contains('star-wars-theme-processed')) { + return; + } + + body.classList.add('star-wars-theme-processed'); }, }; -})(jQuery, Drupal); +})(Drupal); diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/package-lock.json new file mode 100644 index 0000000000..c6c150b2fe --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/package-lock.json @@ -0,0 +1,6231 @@ +{ + "name": "star_wars", + "version": "__VERSION__", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "star_wars", + "version": "__VERSION__", + "hasInstallScript": true, + "devDependencies": { + "@eslint/compat": "__VERSION__", + "@eslint/js": "__VERSION__", + "@homer0/prettier-plugin-jsdoc": "__VERSION__", + "autoprefixer": "__VERSION__", + "chokidar-cli": "__VERSION__", + "eslint": "__VERSION__", + "eslint-config-prettier": "__VERSION__", + "eslint-plugin-import": "__VERSION__", + "eslint-plugin-jsdoc": "__VERSION__", + "eslint-plugin-no-jquery": "__VERSION__", + "eslint-plugin-prettier": "__VERSION__", + "eslint-plugin-yml": "__VERSION__", + "globals": "__VERSION__", + "patch-package": "__VERSION__", + "postcss": "__VERSION__", + "postcss-cli": "__VERSION__", + "prettier": "__VERSION__", + "sass": "__VERSION__", + "stylelint": "__VERSION__", + "stylelint-config-standard": "__VERSION__", + "stylelint-config-standard-scss": "__VERSION__", + "stylelint-order": "__VERSION__", + "stylelint-scss": "__VERSION__", + "terser": "__VERSION__" + } + }, + "node_modules/@babel/code-frame": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "__VERSION__", + "js-tokens": "__VERSION__", + "picocolors": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@cacheable/memory": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/utils": "__VERSION__", + "@keyv/bigmap": "__VERSION__", + "hookified": "__VERSION__", + "keyv": "__VERSION__" + } + }, + "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "__VERSION__", + "hookified": "__VERSION__" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "keyv": "__VERSION__" + } + }, + "node_modules/@cacheable/memory/node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "__VERSION__" + } + }, + "node_modules/@cacheable/utils": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "__VERSION__", + "keyv": "__VERSION__" + } + }, + "node_modules/@cacheable/utils/node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "__VERSION__" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "__VERSION__" + } + }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "peerDependencies": { + "css-tree": "__VERSION__" + }, + "peerDependenciesMeta": { + "css-tree": { + "optional": true + } + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "__VERSION__", + "@csstools/css-tokenizer": "__VERSION__" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss-selector-parser": "__VERSION__" + } + }, + "node_modules/@dual-bundle/import-meta-resolve": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/JounQin" + } + }, + "node_modules/@es-joy/jsdoccomment": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "__VERSION__", + "@typescript-eslint/types": "__VERSION__", + "comment-parser": "__VERSION__", + "esquery": "__VERSION__", + "jsdoc-type-pratt-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + } + }, + "node_modules/@es-joy/resolve.exports": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/compat": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + }, + "peerDependencies": { + "eslint": "^8.40 || 9 || 10" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/@eslint/compat/node_modules/@eslint/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + } + }, + "node_modules/@eslint/config-array": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "__VERSION__", + "debug": "__VERSION__", + "minimatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "__VERSION__", + "debug": "__VERSION__", + "espree": "__VERSION__", + "globals": "__VERSION__", + "ignore": "__VERSION__", + "import-fresh": "__VERSION__", + "js-yaml": "__VERSION__", + "minimatch": "__VERSION__", + "strip-json-comments": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "__VERSION__", + "levn": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/@homer0/prettier-plugin-jsdoc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@homer0/prettier-plugin-jsdoc/-/prettier-plugin-jsdoc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "comment-parser": "__VERSION__", + "ramda": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "prettier": "__VERSION__" + } + }, + "node_modules/@humanfs/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/types": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@humanfs/node": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "__VERSION__", + "@humanfs/types": "__VERSION__", + "@humanwhocodes/retry": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@humanfs/types": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "__VERSION__", + "@jridgewell/trace-mapping": "__VERSION__" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "__VERSION__", + "@jridgewell/trace-mapping": "__VERSION__" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "__VERSION__", + "@jridgewell/sourcemap-codec": "__VERSION__" + } + }, + "node_modules/@keyv/serialize": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "__VERSION__", + "run-parallel": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "__VERSION__", + "fastq": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@parcel/watcher": { + "version": "__VERSION__", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "__VERSION__", + "is-glob": "__VERSION__", + "node-addon-api": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "__VERSION__", + "@parcel/watcher-darwin-arm64": "__VERSION__", + "@parcel/watcher-darwin-x64": "__VERSION__", + "@parcel/watcher-freebsd-x64": "__VERSION__", + "@parcel/watcher-linux-arm-glibc": "__VERSION__", + "@parcel/watcher-linux-arm-musl": "__VERSION__", + "@parcel/watcher-linux-arm64-glibc": "__VERSION__", + "@parcel/watcher-linux-arm64-musl": "__VERSION__", + "@parcel/watcher-linux-x64-glibc": "__VERSION__", + "@parcel/watcher-linux-x64-musl": "__VERSION__", + "@parcel/watcher-win32-arm64": "__VERSION__", + "@parcel/watcher-win32-ia32": "__VERSION__", + "@parcel/watcher-win32-x64": "__VERSION__" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "__VERSION__", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher/node_modules/picomatch": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@pkgr/core": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@rtsao/scc": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@sindresorhus/base62": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@types/estree": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/types": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@yarnpkg/lockfile": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/acorn": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/acorn-jsx": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "__VERSION__ || __VERSION__ || __VERSION__" + } + }, + "node_modules/ajv": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "__VERSION__", + "fast-json-stable-stringify": "__VERSION__", + "json-schema-traverse": "__VERSION__", + "uri-js": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/ansi-styles": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/are-docs-informative": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/argparse": { + "version": "__VERSION__", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "is-array-buffer": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-object-atoms": "__VERSION__", + "get-intrinsic": "__VERSION__", + "is-string": "__VERSION__", + "math-intrinsics": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "es-shim-unscopables": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-shim-unscopables": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-shim-unscopables": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "__VERSION__", + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "is-array-buffer": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/astral-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/async-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/autoprefixer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__", + "caniuse-lite": "__VERSION__", + "fraction.js": "__VERSION__", + "picocolors": "__VERSION__", + "postcss-value-parser": "__VERSION__" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/available-typed-arrays": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/binary-extensions": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "__VERSION__", + "concat-map": "__VERSION__" + } + }, + "node_modules/brace-expansion/node_modules/balanced-match": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/braces": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/browserslist": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": { + "baseline-browser-mapping": "__VERSION__", + "caniuse-lite": "__VERSION__", + "electron-to-chromium": "__VERSION__", + "node-releases": "__VERSION__", + "update-browserslist-db": "__VERSION__" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/cacheable": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/memory": "__VERSION__", + "@cacheable/utils": "__VERSION__", + "hookified": "__VERSION__", + "keyv": "__VERSION__", + "qified": "__VERSION__" + } + }, + "node_modules/cacheable/node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "__VERSION__" + } + }, + "node_modules/call-bind": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "es-define-property": "__VERSION__", + "get-intrinsic": "__VERSION__", + "set-function-length": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "function-bind": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/camelcase": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/caniuse-lite": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "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": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "supports-color": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "__VERSION__", + "braces": "__VERSION__", + "glob-parent": "__VERSION__", + "is-binary-path": "__VERSION__", + "is-glob": "__VERSION__", + "normalize-path": "__VERSION__", + "readdirp": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "__VERSION__" + } + }, + "node_modules/chokidar-cli": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "__VERSION__", + "lodash.debounce": "__VERSION__", + "lodash.throttle": "__VERSION__", + "yargs": "__VERSION__" + }, + "bin": { + "chokidar": "index.js" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/ci-info": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cliui": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__", + "wrap-ansi": "__VERSION__" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/color-convert": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/color-name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/colord": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/comment-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/concat-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "__VERSION__", + "import-fresh": "__VERSION__", + "js-yaml": "__VERSION__", + "parse-json": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": "__VERSION__" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cross-spawn": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "__VERSION__", + "shebang-command": "__VERSION__", + "which": "__VERSION__" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/which/-/which-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "__VERSION__" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-functions-list": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/css-tree": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "__VERSION__", + "source-map-js": "__VERSION__" + }, + "engines": { + "node": "^10 || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/css-tree/node_modules/mdn-data": { + "version": "__VERSION__", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/cssesc": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/data-view-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-data-view": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-data-view": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-data-view": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/deep-is": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "gopd": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "object-keys": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dependency-graph": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/detect-libc": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/diff-sequences": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/dir-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/doctrine": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/dunder-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "es-errors": "__VERSION__", + "gopd": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/env-paths": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/error-ex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "__VERSION__" + } + }, + "node_modules/es-abstract": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "__VERSION__", + "arraybuffer.prototype.slice": "__VERSION__", + "available-typed-arrays": "__VERSION__", + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "data-view-buffer": "__VERSION__", + "data-view-byte-length": "__VERSION__", + "data-view-byte-offset": "__VERSION__", + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "es-set-tostringtag": "__VERSION__", + "es-to-primitive": "__VERSION__", + "function.prototype.name": "__VERSION__", + "get-intrinsic": "__VERSION__", + "get-proto": "__VERSION__", + "get-symbol-description": "__VERSION__", + "globalthis": "__VERSION__", + "gopd": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "has-proto": "__VERSION__", + "has-symbols": "__VERSION__", + "hasown": "__VERSION__", + "internal-slot": "__VERSION__", + "is-array-buffer": "__VERSION__", + "is-callable": "__VERSION__", + "is-data-view": "__VERSION__", + "is-negative-zero": "__VERSION__", + "is-regex": "__VERSION__", + "is-set": "__VERSION__", + "is-shared-array-buffer": "__VERSION__", + "is-string": "__VERSION__", + "is-typed-array": "__VERSION__", + "is-weakref": "__VERSION__", + "math-intrinsics": "__VERSION__", + "object-inspect": "__VERSION__", + "object-keys": "__VERSION__", + "object.assign": "__VERSION__", + "own-keys": "__VERSION__", + "regexp.prototype.flags": "__VERSION__", + "safe-array-concat": "__VERSION__", + "safe-push-apply": "__VERSION__", + "safe-regex-test": "__VERSION__", + "set-proto": "__VERSION__", + "stop-iteration-iterator": "__VERSION__", + "string.prototype.trim": "__VERSION__", + "string.prototype.trimend": "__VERSION__", + "string.prototype.trimstart": "__VERSION__", + "typed-array-buffer": "__VERSION__", + "typed-array-byte-length": "__VERSION__", + "typed-array-byte-offset": "__VERSION__", + "typed-array-length": "__VERSION__", + "unbox-primitive": "__VERSION__", + "which-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-abstract-get": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "is-callable": "__VERSION__", + "object-inspect": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "has-tostringtag": "__VERSION__", + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-abstract-get": "__VERSION__", + "es-errors": "__VERSION__", + "is-callable": "__VERSION__", + "is-date-object": "__VERSION__", + "is-symbol": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/escape-string-regexp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "__VERSION__", + "@eslint-community/regexpp": "__VERSION__", + "@eslint/config-array": "__VERSION__", + "@eslint/config-helpers": "__VERSION__", + "@eslint/core": "__VERSION__", + "@eslint/eslintrc": "__VERSION__", + "@eslint/js": "__VERSION__", + "@eslint/plugin-kit": "__VERSION__", + "@humanfs/node": "__VERSION__", + "@humanwhocodes/module-importer": "__VERSION__", + "@humanwhocodes/retry": "__VERSION__", + "@types/estree": "__VERSION__", + "ajv": "__VERSION__", + "chalk": "__VERSION__", + "cross-spawn": "__VERSION__", + "debug": "__VERSION__", + "escape-string-regexp": "__VERSION__", + "eslint-scope": "__VERSION__", + "eslint-visitor-keys": "__VERSION__", + "espree": "__VERSION__", + "esquery": "__VERSION__", + "esutils": "__VERSION__", + "fast-deep-equal": "__VERSION__", + "file-entry-cache": "__VERSION__", + "find-up": "__VERSION__", + "glob-parent": "__VERSION__", + "ignore": "__VERSION__", + "imurmurhash": "__VERSION__", + "is-glob": "__VERSION__", + "json-stable-stringify-without-jsonify": "__VERSION__", + "lodash.merge": "__VERSION__", + "minimatch": "__VERSION__", + "natural-compare": "__VERSION__", + "optionator": "__VERSION__" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-compat-utils": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "eslint": "__VERSION__" + } + }, + "node_modules/eslint-compat-utils/node_modules/semver": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/eslint-config-prettier": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": "__VERSION__" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "__VERSION__", + "is-core-module": "__VERSION__", + "resolve": "__VERSION__" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + } + }, + "node_modules/eslint-module-utils": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + } + }, + "node_modules/eslint-plugin-import": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "__VERSION__", + "array-includes": "__VERSION__", + "array.prototype.findlastindex": "__VERSION__", + "array.prototype.flat": "__VERSION__", + "array.prototype.flatmap": "__VERSION__", + "debug": "__VERSION__", + "doctrine": "__VERSION__", + "eslint-import-resolver-node": "__VERSION__", + "eslint-module-utils": "__VERSION__", + "hasown": "__VERSION__", + "is-core-module": "__VERSION__", + "is-glob": "__VERSION__", + "minimatch": "__VERSION__", + "object.fromentries": "__VERSION__", + "object.groupby": "__VERSION__", + "object.values": "__VERSION__", + "semver": "__VERSION__", + "string.prototype.trimend": "__VERSION__", + "tsconfig-paths": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || __VERSION__ || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "__VERSION__" + } + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@es-joy/jsdoccomment": "__VERSION__", + "@es-joy/resolve.exports": "__VERSION__", + "are-docs-informative": "__VERSION__", + "comment-parser": "__VERSION__", + "debug": "__VERSION__", + "escape-string-regexp": "__VERSION__", + "espree": "__VERSION__", + "esquery": "__VERSION__", + "html-entities": "__VERSION__", + "object-deep-merge": "__VERSION__", + "parse-imports-exports": "__VERSION__", + "semver": "__VERSION__", + "spdx-expression-parse": "__VERSION__", + "to-valid-identifier": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=24" + }, + "peerDependencies": { + "eslint": "__VERSION__ || __VERSION__ || __VERSION__ || __VERSION__" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/espree": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "__VERSION__", + "acorn-jsx": "__VERSION__", + "eslint-visitor-keys": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/semver": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/eslint-plugin-no-jquery": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": "__VERSION__", + "oxlint": "__VERSION__" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "oxlint": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "__VERSION__", + "synckit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": "__VERSION__", + "eslint": "__VERSION__", + "eslint-config-prettier": ">= __VERSION__ <__VERSION__ || >=__VERSION__", + "prettier": "__VERSION__" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-yml": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "__VERSION__", + "diff-sequences": "__VERSION__", + "escape-string-regexp": "__VERSION__", + "eslint-compat-utils": "__VERSION__", + "natural-compare": "__VERSION__", + "yaml-eslint-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": "__VERSION__" + } + }, + "node_modules/eslint-scope": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "__VERSION__", + "estraverse": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/espree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/espree/-/espree-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "__VERSION__", + "acorn-jsx": "__VERSION__", + "eslint-visitor-keys": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/esrecurse": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/estraverse": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/esutils": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fast-deep-equal": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "__VERSION__", + "@nodelib/fs.walk": "__VERSION__", + "glob-parent": "__VERSION__", + "merge2": "__VERSION__", + "micromatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastest-levenshtein": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/fastq": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "__VERSION__" + } + }, + "node_modules/file-entry-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fill-range": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/find-up": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "__VERSION__", + "path-exists": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-yarn-workspace-root": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "micromatch": "__VERSION__" + } + }, + "node_modules/flat-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "__VERSION__", + "keyv": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/flatted": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fraction.js": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs-extra": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "__VERSION__", + "jsonfile": "__VERSION__", + "universalify": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/fsevents": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/function-bind": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "functions-have-names": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "hasown": "__VERSION__", + "is-callable": "__VERSION__", + "is-document.all": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-caller-file": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "__VERSION__", + "es-define-property": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "function-bind": "__VERSION__", + "get-proto": "__VERSION__", + "gopd": "__VERSION__", + "has-symbols": "__VERSION__", + "hasown": "__VERSION__", + "math-intrinsics": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "__VERSION__" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-modules": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/global-prefix": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "__VERSION__", + "kind-of": "__VERSION__", + "which": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/globals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "__VERSION__", + "gopd": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globby/-/globby-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "__VERSION__", + "dir-glob": "__VERSION__", + "fast-glob": "__VERSION__", + "ignore": "__VERSION__", + "merge2": "__VERSION__", + "slash": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/slash/-/slash-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/globjoin": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/gopd": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/has-bigints": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/has-property-descriptors": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hashery": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/hasown": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hookified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/html-entities": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/html-tags": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ignore": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "__VERSION__", + "resolve-from": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/imurmurhash": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/ini": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "hasown": "__VERSION__", + "side-channel": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "__VERSION__", + "call-bound": "__VERSION__", + "get-proto": "__VERSION__", + "has-tostringtag": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-boolean-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__", + "is-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-document.all": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-finalizationregistry": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-generator-function": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "generator-function": "__VERSION__", + "get-proto": "__VERSION__", + "has-tostringtag": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-number-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-object": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/is-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "gopd": "__VERSION__", + "has-tostringtag": "__VERSION__", + "hasown": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-symbols": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/isarray": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/js-tokens": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "__VERSION__" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/json-buffer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "isarray": "__VERSION__", + "jsonify": "__VERSION__", + "object-keys": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "__VERSION__" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "__VERSION__" + }, + "optionalDependencies": { + "graceful-fs": "__VERSION__" + } + }, + "node_modules/jsonify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "Public Domain", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/keyv": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "__VERSION__" + } + }, + "node_modules/kind-of": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/klaw-sync": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "__VERSION__" + } + }, + "node_modules/known-css-properties": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/levn": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "__VERSION__", + "type-check": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/lilconfig": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.debounce": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.throttle": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mathml-tag-names": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdn-data": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/meow": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/meow/-/meow-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/minimatch": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "__VERSION__" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=__VERSION__" + } + }, + "node_modules/natural-compare": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/node-addon-api": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-exports-info": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.flatmap": "__VERSION__", + "es-errors": "__VERSION__", + "object.entries": "__VERSION__", + "semver": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/node-releases": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/normalize-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/object-deep-merge": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/object-inspect": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__", + "has-symbols": "__VERSION__", + "object-keys": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/open": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "__VERSION__", + "is-wsl": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "__VERSION__", + "fast-levenshtein": "__VERSION__", + "levn": "__VERSION__", + "prelude-ls": "__VERSION__", + "type-check": "__VERSION__", + "word-wrap": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/own-keys": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "__VERSION__", + "object-keys": "__VERSION__", + "safe-push-apply": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/parent-module": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/parse-imports-exports": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-statements": "__VERSION__" + } + }, + "node_modules/parse-json": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "__VERSION__", + "error-ex": "__VERSION__", + "json-parse-even-better-errors": "__VERSION__", + "lines-and-columns": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-statements": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/patch-package": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "@yarnpkg/lockfile": "__VERSION__", + "chalk": "__VERSION__", + "ci-info": "__VERSION__", + "cross-spawn": "__VERSION__", + "find-yarn-workspace-root": "__VERSION__", + "fs-extra": "__VERSION__", + "json-stable-stringify": "__VERSION__", + "klaw-sync": "__VERSION__", + "minimist": "__VERSION__", + "open": "__VERSION__", + "semver": "__VERSION__", + "slash": "__VERSION__", + "tmp": "__VERSION__", + "yaml": "__VERSION__" + }, + "bin": { + "patch-package": "index.js" + }, + "engines": { + "node": "__VERSION__", + "npm": ">5" + } + }, + "node_modules/patch-package/node_modules/fs-extra": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "__VERSION__", + "jsonfile": "__VERSION__", + "universalify": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/patch-package/node_modules/semver": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/path-exists": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/path-key": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/path-parse": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/picocolors": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/possible-typed-array-names": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__", + "picocolors": "__VERSION__", + "source-map-js": "__VERSION__" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-cli": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "__VERSION__", + "dependency-graph": "__VERSION__", + "fs-extra": "__VERSION__", + "picocolors": "__VERSION__", + "postcss-load-config": "__VERSION__", + "postcss-reporter": "__VERSION__", + "pretty-hrtime": "__VERSION__", + "read-cache": "__VERSION__", + "slash": "__VERSION__", + "tinyglobby": "__VERSION__", + "yargs": "__VERSION__" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-cli/node_modules/cliui": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__", + "wrap-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-cli/node_modules/slash": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss-cli/node_modules/wrap-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/postcss-cli/node_modules/y18n": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-cli/node_modules/yargs": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "__VERSION__", + "escalade": "__VERSION__", + "get-caller-file": "__VERSION__", + "require-directory": "__VERSION__", + "string-width": "__VERSION__", + "y18n": "__VERSION__", + "yargs-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-cli/node_modules/yargs-parser": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-load-config": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "__VERSION__", + "yaml": "__VERSION__" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": "__VERSION__", + "postcss": "__VERSION__", + "tsx": "__VERSION__" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + } + } + }, + "node_modules/postcss-media-query-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-reporter": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "picocolors": "__VERSION__", + "thenby": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-safe-parser": { + "version": "__VERSION__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-scss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-selector-parser": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "__VERSION__", + "util-deprecate": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/postcss-sorting": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "peerDependencies": { + "postcss": "__VERSION__" + } + }, + "node_modules/postcss-value-parser": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/prettier": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/pretty-hrtime": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/punycode": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/qified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/qified/-/qified-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/qified/node_modules/hookified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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/ramda": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ramda" + } + }, + "node_modules/read-cache": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "__VERSION__" + } + }, + "node_modules/readdirp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__", + "get-intrinsic": "__VERSION__", + "get-proto": "__VERSION__", + "which-builtin-type": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-errors": "__VERSION__", + "get-proto": "__VERSION__", + "gopd": "__VERSION__", + "set-function-name": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/require-from-string": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/require-main-filename": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/reserved-identifiers": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/resolve": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "is-core-module": "__VERSION__", + "node-exports-info": "__VERSION__", + "object-keys": "__VERSION__", + "path-parse": "__VERSION__", + "supports-preserve-symlinks-flag": "__VERSION__" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/reusify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "iojs": "__VERSION__", + "node": "__VERSION__" + } + }, + "node_modules/run-parallel": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__" + } + }, + "node_modules/safe-array-concat": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "get-intrinsic": "__VERSION__", + "has-symbols": "__VERSION__", + "isarray": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "isarray": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-regex": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sass": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/sass/-/sass-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "__VERSION__", + "immutable": "__VERSION__", + "source-map-js": ">=__VERSION__ <__VERSION__" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": "__VERSION__" + }, + "optionalDependencies": { + "@parcel/watcher": "__VERSION__" + } + }, + "node_modules/sass/node_modules/chokidar": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/semver": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-blocking": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/set-function-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "__VERSION__", + "es-errors": "__VERSION__", + "function-bind": "__VERSION__", + "get-intrinsic": "__VERSION__", + "gopd": "__VERSION__", + "has-property-descriptors": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "__VERSION__", + "es-errors": "__VERSION__", + "functions-have-names": "__VERSION__", + "has-property-descriptors": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "__VERSION__", + "es-errors": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/shebang-regex": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/side-channel": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "object-inspect": "__VERSION__", + "side-channel-list": "__VERSION__", + "side-channel-map": "__VERSION__", + "side-channel-weakmap": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "object-inspect": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "object-inspect": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "get-intrinsic": "__VERSION__", + "object-inspect": "__VERSION__", + "side-channel-map": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/slice-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "astral-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/source-map": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/source-map-js": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/source-map-support": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "__VERSION__", + "source-map": "__VERSION__" + } + }, + "node_modules/spdx-exceptions": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "__VERSION__", + "spdx-license-ids": "__VERSION__" + } + }, + "node_modules/spdx-license-ids": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/stop-iteration-iterator": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "__VERSION__", + "internal-slot": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string-width": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/string.prototype.trim": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-data-property": "__VERSION__", + "define-properties": "__VERSION__", + "es-abstract": "__VERSION__", + "es-object-atoms": "__VERSION__", + "has-property-descriptors": "__VERSION__", + "safe-regex-test": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "define-properties": "__VERSION__", + "es-object-atoms": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/strip-bom": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/strip-json-comments": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/css-parser-algorithms": "__VERSION__", + "@csstools/css-syntax-patches-for-csstree": "__VERSION__", + "@csstools/css-tokenizer": "__VERSION__", + "@csstools/media-query-list-parser": "__VERSION__", + "@csstools/selector-specificity": "__VERSION__", + "@dual-bundle/import-meta-resolve": "__VERSION__", + "balanced-match": "__VERSION__", + "colord": "__VERSION__", + "cosmiconfig": "__VERSION__", + "css-functions-list": "__VERSION__", + "css-tree": "__VERSION__", + "debug": "__VERSION__", + "fast-glob": "__VERSION__", + "fastest-levenshtein": "__VERSION__", + "file-entry-cache": "__VERSION__", + "global-modules": "__VERSION__", + "globby": "__VERSION__", + "globjoin": "__VERSION__", + "html-tags": "__VERSION__", + "ignore": "__VERSION__", + "imurmurhash": "__VERSION__", + "is-plain-object": "__VERSION__", + "known-css-properties": "__VERSION__", + "mathml-tag-names": "__VERSION__", + "meow": "__VERSION__", + "micromatch": "__VERSION__", + "normalize-path": "__VERSION__", + "picocolors": "__VERSION__", + "postcss": "__VERSION__", + "postcss-resolve-nested-selector": "__VERSION__", + "postcss-safe-parser": "__VERSION__", + "postcss-selector-parser": "__VERSION__", + "postcss-value-parser": "__VERSION__", + "resolve-from": "__VERSION__", + "string-width": "__VERSION__", + "supports-hyperlinks": "__VERSION__", + "svg-tags": "__VERSION__", + "table": "__VERSION__", + "write-file-atomic": "__VERSION__" + }, + "bin": { + "stylelint": "bin/stylelint.mjs" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__" + } + }, + "node_modules/stylelint-config-recommended-scss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-scss": "__VERSION__", + "stylelint-config-recommended": "__VERSION__", + "stylelint-scss": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__", + "stylelint": "__VERSION__" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/stylelint-config-standard": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "stylelint-config-recommended": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__" + } + }, + "node_modules/stylelint-config-standard-scss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "stylelint-config-recommended-scss": "__VERSION__", + "stylelint-config-standard": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "postcss": "__VERSION__", + "stylelint": "__VERSION__" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/stylelint-order": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss": "__VERSION__", + "postcss-sorting": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__ || __VERSION__" + } + }, + "node_modules/stylelint-scss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "__VERSION__", + "is-plain-object": "__VERSION__", + "known-css-properties": "__VERSION__", + "mdn-data": "__VERSION__", + "postcss-media-query-parser": "__VERSION__", + "postcss-resolve-nested-selector": "__VERSION__", + "postcss-selector-parser": "__VERSION__", + "postcss-value-parser": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "stylelint": "__VERSION__" + } + }, + "node_modules/stylelint/node_modules/file-entry-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "__VERSION__" + } + }, + "node_modules/stylelint/node_modules/flat-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "cacheable": "__VERSION__", + "flatted": "__VERSION__", + "hookified": "__VERSION__" + } + }, + "node_modules/stylelint/node_modules/ignore": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/supports-color": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/supports-hyperlinks": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "__VERSION__", + "supports-color": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-tags": { + "version": "__VERSION__", + "dev": true + }, + "node_modules/synckit": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/table": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "__VERSION__", + "lodash.truncate": "__VERSION__", + "slice-ansi": "__VERSION__", + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "__VERSION__", + "fast-uri": "__VERSION__", + "json-schema-traverse": "__VERSION__", + "require-from-string": "__VERSION__" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/terser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/terser/-/terser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "__VERSION__", + "acorn": "__VERSION__", + "commander": "__VERSION__", + "source-map-support": "__VERSION__" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/thenby": { + "version": "__VERSION__", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tinyglobby": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "__VERSION__", + "picomatch": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tmp": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/to-regex-range": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/to-valid-identifier": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/base62": "__VERSION__", + "reserved-identifiers": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tsconfig-paths": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "__VERSION__", + "json5": "__VERSION__", + "minimist": "__VERSION__", + "strip-bom": "__VERSION__" + } + }, + "node_modules/type-check": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/typed-array-buffer": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "es-errors": "__VERSION__", + "is-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "for-each": "__VERSION__", + "gopd": "__VERSION__", + "has-proto": "__VERSION__", + "is-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "__VERSION__", + "call-bind": "__VERSION__", + "for-each": "__VERSION__", + "gopd": "__VERSION__", + "has-proto": "__VERSION__", + "is-typed-array": "__VERSION__", + "reflect.getprototypeof": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "__VERSION__", + "for-each": "__VERSION__", + "gopd": "__VERSION__", + "is-typed-array": "__VERSION__", + "possible-typed-array-names": "__VERSION__", + "reflect.getprototypeof": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "has-bigints": "__VERSION__", + "has-symbols": "__VERSION__", + "which-boxed-primitive": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/universalify": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= __VERSION__" + } + }, + "node_modules/update-browserslist-db": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "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": "__VERSION__", + "picocolors": "__VERSION__" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= __VERSION__" + } + }, + "node_modules/uri-js": { + "version": "__VERSION__", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "__VERSION__" + } + }, + "node_modules/util-deprecate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "__VERSION__" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "__VERSION__", + "is-boolean-object": "__VERSION__", + "is-number-object": "__VERSION__", + "is-string": "__VERSION__", + "is-symbol": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "__VERSION__", + "function.prototype.name": "__VERSION__", + "has-tostringtag": "__VERSION__", + "is-async-function": "__VERSION__", + "is-date-object": "__VERSION__", + "is-finalizationregistry": "__VERSION__", + "is-generator-function": "__VERSION__", + "is-regex": "__VERSION__", + "is-weakref": "__VERSION__", + "isarray": "__VERSION__", + "which-boxed-primitive": "__VERSION__", + "which-collection": "__VERSION__", + "which-typed-array": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "__VERSION__", + "is-set": "__VERSION__", + "is-weakmap": "__VERSION__", + "is-weakset": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/which-typed-array": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "__VERSION__", + "call-bind": "__VERSION__", + "call-bound": "__VERSION__", + "for-each": "__VERSION__", + "get-proto": "__VERSION__", + "gopd": "__VERSION__", + "has-tostringtag": "__VERSION__" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "__VERSION__", + "string-width": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/write-file-atomic": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "__VERSION__", + "signal-exit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/y18n": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yaml-eslint-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-__VERSION__.tgz", + "integrity": "__INTEGRITY__", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "__VERSION__", + "yaml": "__VERSION__" + }, + "engines": { + "node": "__VERSION__ || >=__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, + "node_modules/yargs": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "__VERSION__", + "find-up": "__VERSION__", + "get-caller-file": "__VERSION__", + "require-directory": "__VERSION__", + "require-main-filename": "__VERSION__", + "set-blocking": "__VERSION__", + "string-width": "__VERSION__", + "which-module": "__VERSION__", + "y18n": "__VERSION__", + "yargs-parser": "__VERSION__" + } + }, + "node_modules/yargs-parser": { + "version": "__VERSION__", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "__VERSION__", + "decamelize": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/find-up": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "__VERSION__", + "path-exists": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/path-exists": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "__VERSION__", + "is-fullwidth-code-point": "__VERSION__", + "strip-ansi": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "__VERSION__" + }, + "engines": { + "node": "__VERSION__" + } + }, + "node_modules/yocto-queue": { + "version": "__VERSION__", + "dev": true, + "license": "MIT", + "engines": { + "node": "__VERSION__" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/package.json b/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/package.json index 26c447c602..0e14e69be9 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/package.json +++ b/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/light_saber/package.json @@ -4,17 +4,19 @@ "private": true, "description": "NodeJS dependencies for star wars project", "devDependencies": { + "@eslint/compat": "__VERSION__", + "@eslint/js": "__VERSION__", "@homer0/prettier-plugin-jsdoc": "__VERSION__", "autoprefixer": "__VERSION__", "chokidar-cli": "__VERSION__", "eslint": "__VERSION__", - "eslint-config-airbnb-base": "__VERSION__", "eslint-config-prettier": "__VERSION__", "eslint-plugin-import": "__VERSION__", "eslint-plugin-jsdoc": "__VERSION__", "eslint-plugin-no-jquery": "__VERSION__", "eslint-plugin-prettier": "__VERSION__", "eslint-plugin-yml": "__VERSION__", + "globals": "__VERSION__", "patch-package": "__VERSION__", "postcss": "__VERSION__", "postcss-cli": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_claro/web/themes/custom/star_wars/-.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/star_wars/-eslint.config.mjs similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/theme_claro/web/themes/custom/star_wars/-.eslintrc.json rename to .vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/star_wars/-eslint.config.mjs diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/star_wars/-.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/star_wars/-package-lock.json similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/star_wars/-.eslintrc.json rename to .vortex/cli/tests/Fixtures/handler_process/theme_custom/web/themes/custom/star_wars/-package-lock.json diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_custom_non_vortex/web/themes/custom/star_wars/-.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/theme_custom_non_vortex/web/themes/custom/star_wars/-eslint.config.mjs similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/theme_custom_non_vortex/web/themes/custom/star_wars/-.eslintrc.json rename to .vortex/cli/tests/Fixtures/handler_process/theme_custom_non_vortex/web/themes/custom/star_wars/-eslint.config.mjs diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_olivero/web/themes/custom/star_wars/-.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/theme_custom_non_vortex/web/themes/custom/star_wars/-package-lock.json similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/theme_olivero/web/themes/custom/star_wars/-.eslintrc.json rename to .vortex/cli/tests/Fixtures/handler_process/theme_custom_non_vortex/web/themes/custom/star_wars/-package-lock.json diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_custom_non_vortex/web/themes/custom/star_wars/package.json b/.vortex/cli/tests/Fixtures/handler_process/theme_custom_non_vortex/web/themes/custom/star_wars/package.json index a720e7be6e..ea50fac4c5 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/theme_custom_non_vortex/web/themes/custom/star_wars/package.json +++ b/.vortex/cli/tests/Fixtures/handler_process/theme_custom_non_vortex/web/themes/custom/star_wars/package.json @@ -1,21 +1,23 @@ -@@ -1,57 +1 @@ +@@ -1,59 +1 @@ -{ - "name": "star_wars", - "version": "__VERSION__", - "private": true, - "description": "NodeJS dependencies for star wars project", - "devDependencies": { +- "@eslint/compat": "__VERSION__", +- "@eslint/js": "__VERSION__", - "@homer0/prettier-plugin-jsdoc": "__VERSION__", - "autoprefixer": "__VERSION__", - "chokidar-cli": "__VERSION__", - "eslint": "__VERSION__", -- "eslint-config-airbnb-base": "__VERSION__", - "eslint-config-prettier": "__VERSION__", - "eslint-plugin-import": "__VERSION__", - "eslint-plugin-jsdoc": "__VERSION__", - "eslint-plugin-no-jquery": "__VERSION__", - "eslint-plugin-prettier": "__VERSION__", - "eslint-plugin-yml": "__VERSION__", +- "globals": "__VERSION__", - "patch-package": "__VERSION__", - "postcss": "__VERSION__", - "postcss-cli": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_olivero/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/theme_olivero/.ahoy.yml index 111fcd24fe..0b33e1b47f 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/theme_olivero/.ahoy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/theme_olivero/.ahoy.yml @@ -9,25 +9,25 @@ @@ -170,25 +169,7 @@ aliases: [fe-install] cmd: | - ahoy cli "yarn install --frozen-lockfile" -- ahoy cli "yarn --cwd=${WEBROOT}/themes/custom/${DRUPAL_THEME} install --frozen-lockfile" + ahoy cli "npm ci" +- ahoy cli "npm --prefix=${WEBROOT}/themes/custom/${DRUPAL_THEME} ci" - fe: - usage: Build front-end assets. - aliases: [fe-build] -- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run build" +- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run build" - - fed: - usage: Build front-end assets for development. - aliases: [fe-build-dev] -- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run build-dev" +- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run build-dev" - - few: - usage: Watch front-end assets during development. - aliases: [fe-watch] - cmd: | - ahoy cli "pkill -9 -f grunt" || true -- ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run watch" +- ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run watch" - lint: usage: Lint back-end and front-end code. @@ -35,8 +35,8 @@ @@ -208,7 +189,6 @@ cmd: | ahoy cli vendor/bin/twig-cs-fixer lint - ahoy cli "yarn run lint" -- ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" + ahoy cli "npm run lint" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" lint-tests: usage: Lint tests code. @@ -58,8 +58,8 @@ @@ -240,7 +212,6 @@ cmd: | ahoy cli vendor/bin/twig-cs-fixer lint --fix - ahoy cli "yarn run lint-fix" -- ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" + ahoy cli "npm run lint-fix" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" test: usage: Run all PHPUnit tests. diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_olivero/.docker/cli.dockerfile b/.vortex/cli/tests/Fixtures/handler_process/theme_olivero/.docker/cli.dockerfile index 4abfebbece..573ef6b35d 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/theme_olivero/.docker/cli.dockerfile +++ b/.vortex/cli/tests/Fixtures/handler_process/theme_olivero/.docker/cli.dockerfile @@ -7,16 +7,17 @@ ENV DRUPAL_THEME=${DRUPAL_THEME} ARG VORTEX_FRONTEND_BUILD_SKIP="0" -@@ -94,12 +94,5 @@ +@@ -94,13 +94,5 @@ # Create file directories and set correct permissions. # hadolint ignore=SC2174 # only the leaf directory needs the mode RUN mkdir -p -m 2775 "/app/${WEBROOT}/${DRUPAL_PUBLIC_FILES}" "/app/${WEBROOT}/${DRUPAL_PRIVATE_FILES}" "${DRUPAL_TEMPORARY_FILES}" - -RUN if [ "${VORTEX_FRONTEND_BUILD_SKIP}" != "1" ]; then \ - theme_path="/app/${WEBROOT}/themes/custom/${DRUPAL_THEME}"; \ -- yarn --cwd="${theme_path}" install --frozen-lockfile --no-progress && \ -- yarn --cwd="${theme_path}" run build && \ -- yarn cache clean; \ +- export npm_config_cache=/tmp/npm-cache; \ +- npm --prefix="${theme_path}" ci --no-progress --no-audit --no-fund && \ +- npm --prefix="${theme_path}" run build && \ +- rm -rf /tmp/npm-cache; \ - fi WORKDIR /app diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_olivero/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/theme_olivero/.github/workflows/build-test-deploy.yml index f9fb5e8dca..5d7488dc0f 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/theme_olivero/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/theme_olivero/.github/workflows/build-test-deploy.yml @@ -1,22 +1,30 @@ @@ -155,11 +155,6 @@ - run: docker compose exec -T cli bash -c "yarn run lint" + run: docker compose exec -T cli bash -c "npm run lint" continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} - - name: Lint theme code with NodeJS linters - if: ${{ vars.VORTEX_FRONTEND_BUILD_SKIP != '1' }} -- run: docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" +- run: docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" - continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} - test: runs-on: ubuntu-latest if: ${{ !inputs.deploy_target && (github.event_name == 'push' || !startsWith(github.head_ref, 'project/')) }} -@@ -368,18 +363,6 @@ +@@ -201,7 +196,6 @@ + VORTEX_CI_RUNNER_TOTAL: ${{ strategy.job-total }} + VORTEX_CI_IS_JEST_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + VORTEX_CI_IS_PHPUNIT_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- VORTEX_CI_IS_SDC_DEVEL_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + # Runs on every instance, using the `p` profile. + VORTEX_CI_IS_BEHAT_RUNNER: true + # Subtracted from the instance index to derive the profile number. Raise +@@ -394,18 +388,6 @@ fi env: VORTEX_CI_CODE_COVERAGE_THRESHOLD: ${{ vars.VORTEX_CI_CODE_COVERAGE_THRESHOLD || '90' }} - - - name: Validate Single Directory Components -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- if: ${{ env.VORTEX_CI_IS_SDC_DEVEL_RUNNER == 'true' }} - run: | - [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) @@ -28,4 +36,4 @@ - continue-on-error: ${{ vars.VORTEX_CI_SDC_DEVEL_IGNORE_FAILURE == '1' }} - name: Test with Behat - run: | + if: ${{ env.VORTEX_CI_IS_BEHAT_RUNNER == 'true' }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_stark/web/themes/custom/star_wars/-.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/theme_olivero/web/themes/custom/star_wars/-eslint.config.mjs similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/theme_stark/web/themes/custom/star_wars/-.eslintrc.json rename to .vortex/cli/tests/Fixtures/handler_process/theme_olivero/web/themes/custom/star_wars/-eslint.config.mjs diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/-.eslintignore b/.vortex/cli/tests/Fixtures/handler_process/theme_olivero/web/themes/custom/star_wars/-package-lock.json similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/-.eslintignore rename to .vortex/cli/tests/Fixtures/handler_process/theme_olivero/web/themes/custom/star_wars/-package-lock.json diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_stark/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/theme_stark/.ahoy.yml index 111fcd24fe..0b33e1b47f 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/theme_stark/.ahoy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/theme_stark/.ahoy.yml @@ -9,25 +9,25 @@ @@ -170,25 +169,7 @@ aliases: [fe-install] cmd: | - ahoy cli "yarn install --frozen-lockfile" -- ahoy cli "yarn --cwd=${WEBROOT}/themes/custom/${DRUPAL_THEME} install --frozen-lockfile" + ahoy cli "npm ci" +- ahoy cli "npm --prefix=${WEBROOT}/themes/custom/${DRUPAL_THEME} ci" - fe: - usage: Build front-end assets. - aliases: [fe-build] -- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run build" +- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run build" - - fed: - usage: Build front-end assets for development. - aliases: [fe-build-dev] -- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run build-dev" +- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run build-dev" - - few: - usage: Watch front-end assets during development. - aliases: [fe-watch] - cmd: | - ahoy cli "pkill -9 -f grunt" || true -- ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run watch" +- ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run watch" - lint: usage: Lint back-end and front-end code. @@ -35,8 +35,8 @@ @@ -208,7 +189,6 @@ cmd: | ahoy cli vendor/bin/twig-cs-fixer lint - ahoy cli "yarn run lint" -- ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" + ahoy cli "npm run lint" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" lint-tests: usage: Lint tests code. @@ -58,8 +58,8 @@ @@ -240,7 +212,6 @@ cmd: | ahoy cli vendor/bin/twig-cs-fixer lint --fix - ahoy cli "yarn run lint-fix" -- ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" + ahoy cli "npm run lint-fix" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" test: usage: Run all PHPUnit tests. diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_stark/.docker/cli.dockerfile b/.vortex/cli/tests/Fixtures/handler_process/theme_stark/.docker/cli.dockerfile index 4abfebbece..573ef6b35d 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/theme_stark/.docker/cli.dockerfile +++ b/.vortex/cli/tests/Fixtures/handler_process/theme_stark/.docker/cli.dockerfile @@ -7,16 +7,17 @@ ENV DRUPAL_THEME=${DRUPAL_THEME} ARG VORTEX_FRONTEND_BUILD_SKIP="0" -@@ -94,12 +94,5 @@ +@@ -94,13 +94,5 @@ # Create file directories and set correct permissions. # hadolint ignore=SC2174 # only the leaf directory needs the mode RUN mkdir -p -m 2775 "/app/${WEBROOT}/${DRUPAL_PUBLIC_FILES}" "/app/${WEBROOT}/${DRUPAL_PRIVATE_FILES}" "${DRUPAL_TEMPORARY_FILES}" - -RUN if [ "${VORTEX_FRONTEND_BUILD_SKIP}" != "1" ]; then \ - theme_path="/app/${WEBROOT}/themes/custom/${DRUPAL_THEME}"; \ -- yarn --cwd="${theme_path}" install --frozen-lockfile --no-progress && \ -- yarn --cwd="${theme_path}" run build && \ -- yarn cache clean; \ +- export npm_config_cache=/tmp/npm-cache; \ +- npm --prefix="${theme_path}" ci --no-progress --no-audit --no-fund && \ +- npm --prefix="${theme_path}" run build && \ +- rm -rf /tmp/npm-cache; \ - fi WORKDIR /app diff --git a/.vortex/cli/tests/Fixtures/handler_process/theme_stark/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/theme_stark/.github/workflows/build-test-deploy.yml index f9fb5e8dca..5d7488dc0f 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/theme_stark/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/theme_stark/.github/workflows/build-test-deploy.yml @@ -1,22 +1,30 @@ @@ -155,11 +155,6 @@ - run: docker compose exec -T cli bash -c "yarn run lint" + run: docker compose exec -T cli bash -c "npm run lint" continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} - - name: Lint theme code with NodeJS linters - if: ${{ vars.VORTEX_FRONTEND_BUILD_SKIP != '1' }} -- run: docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" +- run: docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" - continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} - test: runs-on: ubuntu-latest if: ${{ !inputs.deploy_target && (github.event_name == 'push' || !startsWith(github.head_ref, 'project/')) }} -@@ -368,18 +363,6 @@ +@@ -201,7 +196,6 @@ + VORTEX_CI_RUNNER_TOTAL: ${{ strategy.job-total }} + VORTEX_CI_IS_JEST_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + VORTEX_CI_IS_PHPUNIT_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- VORTEX_CI_IS_SDC_DEVEL_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + # Runs on every instance, using the `p` profile. + VORTEX_CI_IS_BEHAT_RUNNER: true + # Subtracted from the instance index to derive the profile number. Raise +@@ -394,18 +388,6 @@ fi env: VORTEX_CI_CODE_COVERAGE_THRESHOLD: ${{ vars.VORTEX_CI_CODE_COVERAGE_THRESHOLD || '90' }} - - - name: Validate Single Directory Components -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- if: ${{ env.VORTEX_CI_IS_SDC_DEVEL_RUNNER == 'true' }} - run: | - [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) @@ -28,4 +36,4 @@ - continue-on-error: ${{ vars.VORTEX_CI_SDC_DEVEL_IGNORE_FAILURE == '1' }} - name: Test with Behat - run: | + if: ${{ env.VORTEX_CI_IS_BEHAT_RUNNER == 'true' }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/-.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/theme_stark/web/themes/custom/star_wars/-eslint.config.mjs similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/-.eslintrc.json rename to .vortex/cli/tests/Fixtures/handler_process/theme_stark/web/themes/custom/star_wars/-eslint.config.mjs diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/-.eslintignore b/.vortex/cli/tests/Fixtures/handler_process/theme_stark/web/themes/custom/star_wars/-package-lock.json similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/-.eslintignore rename to .vortex/cli/tests/Fixtures/handler_process/theme_stark/web/themes/custom/star_wars/-package-lock.json diff --git a/.vortex/cli/tests/Fixtures/handler_process/timezone_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/timezone_circleci/.circleci/config.yml index 127c379866..4acc6eb0fc 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/timezone_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/timezone_circleci/.circleci/config.yml @@ -139,7 +139,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -167,13 +167,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -184,14 +184,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -206,6 +207,28 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -258,10 +281,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -303,7 +326,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -312,7 +335,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -320,27 +343,29 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -349,14 +374,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -365,7 +390,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -377,10 +402,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -389,9 +415,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_lint/composer.json b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_lint/composer.json index e6b21bbb99..a3e4281367 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_lint/composer.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_lint/composer.json @@ -22,10 +22,10 @@ "phpunit/phpunit": "__VERSION__", "pyrech/composer-changelogs": "__VERSION__", - "rector/rector": "__VERSION__", + "softcreatr/jsonpath": "^0.10 || ^1.0", "vincentlanglet/twig-cs-fixer": "__VERSION__" }, - "conflict": { -@@ -82,11 +73,9 @@ +@@ -83,11 +74,9 @@ "allow-plugins": { "composer/installers": true, "cweagans/composer-patches": true, diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_lint/web/sites/default/settings.php b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_lint/web/sites/default/settings.php index 74bc259741..55559c353d 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_lint/web/sites/default/settings.php +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_lint/web/sites/default/settings.php @@ -1,6 +1,6 @@ @@ -14,10 +14,6 @@ * environments. - * @see https://www.vortextemplate.com/docs/drupal/settings + * @see https://www.vortextemplate.com/docs/development/settings * - * phpcs:disable Drupal.Commenting.InlineComment.NoSpaceBefore - * phpcs:disable Drupal.Commenting.InlineComment.SpacingAfter diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/.circleci/config.yml index 18f1a3933f..7b15fcd952 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/.circleci/config.yml @@ -139,7 +139,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -155,13 +155,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -172,14 +172,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -194,6 +195,28 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -246,10 +269,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -291,7 +314,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -300,7 +323,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -308,27 +331,29 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -337,14 +362,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -353,7 +378,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -365,10 +390,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -377,9 +403,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/composer.json b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/composer.json index e6b21bbb99..a3e4281367 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/composer.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/composer.json @@ -22,10 +22,10 @@ "phpunit/phpunit": "__VERSION__", "pyrech/composer-changelogs": "__VERSION__", - "rector/rector": "__VERSION__", + "softcreatr/jsonpath": "^0.10 || ^1.0", "vincentlanglet/twig-cs-fixer": "__VERSION__" }, - "conflict": { -@@ -82,11 +73,9 @@ +@@ -83,11 +74,9 @@ "allow-plugins": { "composer/installers": true, "cweagans/composer-patches": true, diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/web/sites/default/settings.php b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/web/sites/default/settings.php index 74bc259741..55559c353d 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/web/sites/default/settings.php +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/web/sites/default/settings.php @@ -1,6 +1,6 @@ @@ -14,10 +14,6 @@ * environments. - * @see https://www.vortextemplate.com/docs/drupal/settings + * @see https://www.vortextemplate.com/docs/development/settings * - * phpcs:disable Drupal.Commenting.InlineComment.NoSpaceBefore - * phpcs:disable Drupal.Commenting.InlineComment.SpacingAfter diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/.ahoy.yml index 51f823d23a..3c8fccde71 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/.ahoy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/.ahoy.yml @@ -7,8 +7,8 @@ lint-be: usage: Lint back-end code. @@ -210,11 +209,6 @@ - ahoy cli "yarn run lint" - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" + ahoy cli "npm run lint" + ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" - lint-tests: - usage: Lint tests code. @@ -19,8 +19,8 @@ usage: Validate Single Directory Components (requires a provisioned site). cmd: | @@ -242,35 +236,9 @@ - ahoy cli "yarn run lint-fix" - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" + ahoy cli "npm run lint-fix" + ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" - test: - usage: Run all PHPUnit tests. @@ -45,7 +45,7 @@ - test-js: usage: Run Jest JavaScript unit tests. - cmd: ahoy cli "yarn test" + cmd: ahoy cli "npm test" - - test-bdd: - usage: Run BDD tests. diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/.github/workflows/build-test-deploy.yml index 1a5dfa4e5e..68fc2aef31 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/.github/workflows/build-test-deploy.yml @@ -7,27 +7,42 @@ - continue-on-error: ${{ vars.VORTEX_CI_GHERKIN_LINT_IGNORE_FAILURE == '1' }} - - name: Lint module code with NodeJS linters - run: docker compose exec -T cli bash -c "yarn run lint" + run: docker compose exec -T cli bash -c "npm run lint" continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} -@@ -309,66 +305,6 @@ - run: docker compose exec -T cli bash -c "yarn test" +@@ -200,14 +196,7 @@ + VORTEX_CI_RUNNER_INDEX: ${{ strategy.job-index }} + VORTEX_CI_RUNNER_TOTAL: ${{ strategy.job-total }} + VORTEX_CI_IS_JEST_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- VORTEX_CI_IS_PHPUNIT_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + VORTEX_CI_IS_SDC_DEVEL_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- # Runs on every instance, using the `p` profile. +- VORTEX_CI_IS_BEHAT_RUNNER: true +- # Subtracted from the instance index to derive the profile number. Raise +- # it by one for every leading instance that does not run Behat, so the +- # first Behat instance still selects the `p0` catch-all profile. +- VORTEX_CI_BEHAT_PROFILE_OFFSET: 0 + + steps: + # Frees disk space by removing preinstalled toolchains unused by this project. +@@ -335,66 +324,6 @@ + run: docker compose exec -T cli bash -c "npm test" continue-on-error: ${{ vars.VORTEX_CI_JEST_IGNORE_FAILURE == '1' }} - - name: Test with PHPUnit -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} - run: docker compose exec -T cli vendor/bin/phpunit - continue-on-error: ${{ vars.VORTEX_CI_PHPUNIT_IGNORE_FAILURE == '1' }} - - - name: Process PHPUnit logs and coverage -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} - run: | - mkdir -p ".logs" - if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then -- docker compose cp cli:/app/.logs/. ".logs/" +- docker compose --progress quiet cp cli:/app/.logs/. ".logs/" - fi - - - name: Extract code coverage -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} - run: | - RATE=$(grep -om1 'line-rate="[0-9.]*"' .logs/coverage/phpunit/cobertura.xml | tr -cd '0-9.') - PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") @@ -45,7 +60,7 @@ - VORTEX_CI_CODE_COVERAGE_THRESHOLD: ${{ vars.VORTEX_CI_CODE_COVERAGE_THRESHOLD || '90' }} - - - name: Post coverage summary as PR comment -- if: ${{ github.event_name == 'pull_request' && (matrix.instance == 0 || strategy.job-total == 1) && vars.VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP != '1' }} +- if: ${{ github.event_name == 'pull_request' && env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' && vars.VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP != '1' }} - uses: marocchino/sticky-pull-request-comment@__HASH__ # __VERSION__ - with: - header: coverage-gha @@ -64,7 +79,7 @@ - hide_and_recreate: true - - - name: Check code coverage threshold -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} - run: | - if [ "${COVERAGE_PERCENT//.}" -lt "$((VORTEX_CI_CODE_COVERAGE_THRESHOLD*100))" ]; then - echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD}%" @@ -74,30 +89,29 @@ - VORTEX_CI_CODE_COVERAGE_THRESHOLD: ${{ vars.VORTEX_CI_CODE_COVERAGE_THRESHOLD || '90' }} - - name: Validate Single Directory Components - if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + if: ${{ env.VORTEX_CI_IS_SDC_DEVEL_RUNNER == 'true' }} run: | -@@ -381,20 +317,6 @@ +@@ -407,19 +336,6 @@ fi continue-on-error: ${{ vars.VORTEX_CI_SDC_DEVEL_IGNORE_FAILURE == '1' }} - - name: Test with Behat +- if: ${{ env.VORTEX_CI_IS_BEHAT_RUNNER == 'true' }} - run: | - # shellcheck disable=SC2170 -- if [ "${STRATEGY_JOB_TOTAL}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${STRATEGY_JOB_INDEX}}"; fi +- if [ "${VORTEX_CI_RUNNER_TOTAL}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi - echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" -- docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ -- docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" +- docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ +- docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" - env: - VORTEX_CI_BEHAT_PROFILE: ${{ vars.VORTEX_CI_BEHAT_PROFILE }} -- STRATEGY_JOB_TOTAL: ${{ strategy.job-total }} -- STRATEGY_JOB_INDEX: ${{ strategy.job-index }} - continue-on-error: ${{ vars.VORTEX_CI_BEHAT_IGNORE_FAILURE == '1' }} - timeout-minutes: 30 - - name: Process test logs and artifacts if: always() run: | -@@ -411,16 +333,6 @@ +@@ -436,16 +352,6 @@ path: .logs include-hidden-files: true if-no-files-found: error diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/.gitignore b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/.gitignore index 2dd6018681..a04ee779b3 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/.gitignore +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/.gitignore @@ -1,4 +1,4 @@ -@@ -50,7 +50,6 @@ +@@ -52,7 +52,6 @@ .artifacts .data .logs diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/composer.json b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/composer.json index e1b26e94fc..7c5d2045b8 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/composer.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/composer.json @@ -24,8 +24,8 @@ - "phpunit/phpunit": "__VERSION__", "pyrech/composer-changelogs": "__VERSION__", "rector/rector": "__VERSION__", - "vincentlanglet/twig-cs-fixer": "__VERSION__" -@@ -73,11 +65,6 @@ + "softcreatr/jsonpath": "^0.10 || ^1.0", +@@ -74,11 +66,6 @@ ], "minimum-stability": "stable", "prefer-stable": true, diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/docs/testing.md b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/docs/testing.md index 60ba6f00a8..eea38786eb 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/docs/testing.md +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/docs/testing.md @@ -7,7 +7,7 @@ - -Unit, Kernel, Functional tests. - --See [documentation](https://www.vortextemplate.com/docs/development/phpunit) +-See [documentation](https://www.vortextemplate.com/docs/development/testing/phpunit) -on how to run tests, configure environment variables and code coverage, and use -test reports in continuous integration pipeline. - @@ -141,7 +141,7 @@ - -BDD end-to-end tests. - --See [documentation](https://www.vortextemplate.com/docs/development/behat) +-See [documentation](https://www.vortextemplate.com/docs/development/testing/behat) -on how to run Behat tests, configure environment variables, and use test reports -in continuous integration pipeline. - diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/-.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/tests/behat/features/-password_reset.feature similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/-.eslintrc.json rename to .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/tests/behat/features/-password_reset.feature diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/-.eslintignore b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/tests/behat/features/-redirect.feature similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/-.eslintignore rename to .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/tests/behat/features/-redirect.feature diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/-.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/tests/behat/fixtures/-response.json similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/-.eslintrc.json rename to .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/tests/behat/fixtures/-response.json diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/web/themes/custom/star_wars/-.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/tests/behat/fixtures/-response.xml similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/web/themes/custom/star_wars/-.eslintrc.json rename to .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests/tests/behat/fixtures/-response.xml diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/.ahoy.yml index 51f823d23a..3c8fccde71 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/.ahoy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/.ahoy.yml @@ -7,8 +7,8 @@ lint-be: usage: Lint back-end code. @@ -210,11 +209,6 @@ - ahoy cli "yarn run lint" - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" + ahoy cli "npm run lint" + ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" - lint-tests: - usage: Lint tests code. @@ -19,8 +19,8 @@ usage: Validate Single Directory Components (requires a provisioned site). cmd: | @@ -242,35 +236,9 @@ - ahoy cli "yarn run lint-fix" - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" + ahoy cli "npm run lint-fix" + ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" - test: - usage: Run all PHPUnit tests. @@ -45,7 +45,7 @@ - test-js: usage: Run Jest JavaScript unit tests. - cmd: ahoy cli "yarn test" + cmd: ahoy cli "npm test" - - test-bdd: - usage: Run BDD tests. diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/.circleci/config.yml index ded4f979b8..82a632b93d 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/.circleci/config.yml @@ -139,7 +139,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -163,13 +163,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -180,14 +180,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -202,6 +203,20 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -254,10 +269,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -299,7 +314,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -308,7 +323,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -316,12 +331,14 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -335,9 +352,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/.gitignore b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/.gitignore index 2dd6018681..a04ee779b3 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/.gitignore +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/.gitignore @@ -1,4 +1,4 @@ -@@ -50,7 +50,6 @@ +@@ -52,7 +52,6 @@ .artifacts .data .logs diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/composer.json b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/composer.json index e1b26e94fc..7c5d2045b8 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/composer.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/composer.json @@ -24,8 +24,8 @@ - "phpunit/phpunit": "__VERSION__", "pyrech/composer-changelogs": "__VERSION__", "rector/rector": "__VERSION__", - "vincentlanglet/twig-cs-fixer": "__VERSION__" -@@ -73,11 +65,6 @@ + "softcreatr/jsonpath": "^0.10 || ^1.0", +@@ -74,11 +66,6 @@ ], "minimum-stability": "stable", "prefer-stable": true, diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/docs/testing.md b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/docs/testing.md index 60ba6f00a8..eea38786eb 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/docs/testing.md +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/docs/testing.md @@ -7,7 +7,7 @@ - -Unit, Kernel, Functional tests. - --See [documentation](https://www.vortextemplate.com/docs/development/phpunit) +-See [documentation](https://www.vortextemplate.com/docs/development/testing/phpunit) -on how to run tests, configure environment variables and code coverage, and use -test reports in continuous integration pipeline. - @@ -141,7 +141,7 @@ - -BDD end-to-end tests. - --See [documentation](https://www.vortextemplate.com/docs/development/behat) +-See [documentation](https://www.vortextemplate.com/docs/development/testing/behat) -on how to run Behat tests, configure environment variables, and use test reports -in continuous integration pipeline. - diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/-.eslintignore b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/tests/behat/features/-password_reset.feature similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/-.eslintignore rename to .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/tests/behat/features/-password_reset.feature diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/-.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/tests/behat/features/-redirect.feature similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/-.eslintrc.json rename to .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/tests/behat/features/-redirect.feature diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/web/themes/custom/star_wars/-.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/tests/behat/fixtures/-response.json similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/web/themes/custom/star_wars/-.eslintrc.json rename to .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/tests/behat/fixtures/-response.json diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/-.eslintignore b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/tests/behat/fixtures/-response.xml similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/-.eslintignore rename to .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/tests/behat/fixtures/-response.xml diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/-.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/-eslint.config.mjs similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/-.eslintrc.json rename to .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/-eslint.config.mjs diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/-.eslintignore b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/-package-lock.json similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/-.eslintignore rename to .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/-package-lock.json diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/.ahoy.yml index 61cad99d48..b569385e32 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/.ahoy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/.ahoy.yml @@ -1,27 +1,29 @@ -@@ -207,7 +207,6 @@ +@@ -207,8 +207,6 @@ usage: Lint front-end code. cmd: | ahoy cli vendor/bin/twig-cs-fixer lint -- ahoy cli "yarn run lint" - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" +- ahoy cli "npm run lint" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" lint-tests: -@@ -239,7 +238,6 @@ + usage: Lint tests code. +@@ -239,8 +237,6 @@ usage: Fix lint issues of front-end code. cmd: | ahoy cli vendor/bin/twig-cs-fixer lint --fix -- ahoy cli "yarn run lint-fix" - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" +- ahoy cli "npm run lint-fix" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" test: -@@ -262,10 +260,6 @@ + usage: Run all PHPUnit tests. +@@ -262,10 +258,6 @@ test-functional-javascript: usage: Run PHPUnit functional JavaScript tests. cmd: ahoy cli vendor/bin/phpunit --testsuite=functional-javascript "$@" - - test-js: - usage: Run Jest JavaScript unit tests. -- cmd: ahoy cli "yarn test" +- cmd: ahoy cli "npm test" test-bdd: usage: Run BDD tests. diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/.github/workflows/build-test-deploy.yml index 877d8827c3..7732a1d360 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/.github/workflows/build-test-deploy.yml @@ -2,38 +2,51 @@ docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" -- docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" +- docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - name: Validate Composer configuration is normalized run: docker compose exec -T cli composer normalize --dry-run -@@ -151,10 +150,6 @@ +@@ -151,15 +150,6 @@ run: docker compose exec -T cli vendor/bin/gherkinlint lint tests/behat/features continue-on-error: ${{ vars.VORTEX_CI_GHERKIN_LINT_IGNORE_FAILURE == '1' }} - - name: Lint module code with NodeJS linters -- run: docker compose exec -T cli bash -c "yarn run lint" +- run: docker compose exec -T cli bash -c "npm run lint" - continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} - - - name: Lint theme code with NodeJS linters - if: ${{ vars.VORTEX_FRONTEND_BUILD_SKIP != '1' }} - run: docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" -@@ -290,7 +285,6 @@ +- - name: Lint theme code with NodeJS linters +- if: ${{ vars.VORTEX_FRONTEND_BUILD_SKIP != '1' }} +- run: docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" +- continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} +- + test: + runs-on: ubuntu-latest + if: ${{ !inputs.deploy_target && (github.event_name == 'push' || !startsWith(github.head_ref, 'project/')) }} +@@ -199,7 +189,6 @@ + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + VORTEX_CI_RUNNER_INDEX: ${{ strategy.job-index }} + VORTEX_CI_RUNNER_TOTAL: ${{ strategy.job-total }} +- VORTEX_CI_IS_JEST_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + VORTEX_CI_IS_PHPUNIT_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + VORTEX_CI_IS_SDC_DEVEL_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + # Runs on every instance, using the `p` profile. +@@ -316,7 +305,6 @@ docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" -- docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" +- docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - name: Provision site run: | -@@ -303,11 +297,6 @@ +@@ -329,11 +317,6 @@ fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision timeout-minutes: 30 - - - name: Test with Jest -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} -- run: docker compose exec -T cli bash -c "yarn test" +- if: ${{ env.VORTEX_CI_IS_JEST_RUNNER == 'true' }} +- run: docker compose exec -T cli bash -c "npm test" - continue-on-error: ${{ vars.VORTEX_CI_JEST_IGNORE_FAILURE == '1' }} - name: Test with PHPUnit - if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/web/themes/custom/star_wars/README.md b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/web/themes/custom/star_wars/README.md new file mode 100644 index 0000000000..3d20bae61b --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/web/themes/custom/star_wars/README.md @@ -0,0 +1,6 @@ +@@ -20,5 +20,3 @@ + | `npm run build` | Production build (minified, no source maps) | + | `npm run build-dev` | Development build (expanded, with source maps) | + | `npm run watch` | Watch for changes and rebuild automatically | +-| `npm run lint` | Check code style (JS and SCSS) | +-| `npm run lint-fix` | Fix code style issues automatically | diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/web/themes/custom/star_wars/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/web/themes/custom/star_wars/package-lock.json new file mode 100644 index 0000000000..b755e7a9be --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/web/themes/custom/star_wars/package-lock.json @@ -0,0 +1,4550 @@ +@@ -9,520 +9,15 @@ + "version": "__VERSION__", + "hasInstallScript": true, + "devDependencies": { +- "@eslint/compat": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@homer0/prettier-plugin-jsdoc": "__VERSION__", + "autoprefixer": "__VERSION__", + "chokidar-cli": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": "__VERSION__", +- "eslint-plugin-import": "__VERSION__", +- "eslint-plugin-jsdoc": "__VERSION__", +- "eslint-plugin-no-jquery": "__VERSION__", +- "eslint-plugin-prettier": "__VERSION__", +- "eslint-plugin-yml": "__VERSION__", +- "globals": "__VERSION__", + "patch-package": "__VERSION__", + "postcss": "__VERSION__", + "postcss-cli": "__VERSION__", +- "prettier": "__VERSION__", + "sass": "__VERSION__", +- "stylelint": "__VERSION__", +- "stylelint-config-standard": "__VERSION__", +- "stylelint-config-standard-scss": "__VERSION__", +- "stylelint-order": "__VERSION__", +- "stylelint-scss": "__VERSION__", + "terser": "__VERSION__" + } + }, +- "node_modules/@babel/code-frame": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-validator-identifier": "__VERSION__", +- "js-tokens": "__VERSION__", +- "picocolors": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/helper-validator-identifier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@cacheable/utils": "__VERSION__", +- "@keyv/bigmap": "__VERSION__", +- "hookified": "__VERSION__", +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hashery": "__VERSION__", +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": ">= 18" +- }, +- "peerDependencies": { +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hashery": "__VERSION__", +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/utils/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, +- "node_modules/@csstools/css-parser-algorithms": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@csstools/css-syntax-patches-for-csstree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT-0", +- "peerDependencies": { +- "css-tree": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "css-tree": { +- "optional": true +- } +- } +- }, +- "node_modules/@csstools/css-tokenizer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@csstools/media-query-list-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@csstools/selector-specificity": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT-0", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss-selector-parser": "__VERSION__" +- } +- }, +- "node_modules/@dual-bundle/import-meta-resolve": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/JounQin" +- } +- }, +- "node_modules/@es-joy/jsdoccomment": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/estree": "__VERSION__", +- "@typescript-eslint/types": "__VERSION__", +- "comment-parser": "__VERSION__", +- "esquery": "__VERSION__", +- "jsdoc-type-pratt-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- } +- }, +- "node_modules/@es-joy/resolve.exports": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@eslint-community/eslint-utils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint-community/regexpp": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/compat": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "peerDependencies": { +- "eslint": "^8.40 || 9 || 10" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- } +- } +- }, +- "node_modules/@eslint/compat/node_modules/@eslint/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@types/json-schema": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- } +- }, +- "node_modules/@eslint/config-array": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/object-schema": "__VERSION__", +- "debug": "__VERSION__", +- "minimatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/config-helpers": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@types/json-schema": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/eslintrc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ajv": "__VERSION__", +- "debug": "__VERSION__", +- "espree": "__VERSION__", +- "globals": "__VERSION__", +- "ignore": "__VERSION__", +- "import-fresh": "__VERSION__", +- "js-yaml": "__VERSION__", +- "minimatch": "__VERSION__", +- "strip-json-comments": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/@eslint/eslintrc/node_modules/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/@eslint/js": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://eslint.org/donate" +- } +- }, +- "node_modules/@eslint/object-schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/plugin-kit": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__", +- "levn": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@homer0/prettier-plugin-jsdoc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@homer0/prettier-plugin-jsdoc/-/prettier-plugin-jsdoc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "comment-parser": "__VERSION__", +- "ramda": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "prettier": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@humanfs/types": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/node": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@humanfs/core": "__VERSION__", +- "@humanfs/types": "__VERSION__", +- "@humanwhocodes/retry": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanwhocodes/module-importer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/nzakas" +- } +- }, +- "node_modules/@humanwhocodes/retry": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/nzakas" +- } +- }, + "node_modules/@jridgewell/gen-mapping": { + "version": "__VERSION__", + "dev": true, +@@ -563,51 +58,6 @@ + "@jridgewell/sourcemap-codec": "__VERSION__" + } + }, +- "node_modules/@keyv/serialize": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@nodelib/fs.scandir": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.stat": "__VERSION__", +- "run-parallel": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/@nodelib/fs.stat": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/@nodelib/fs.walk": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.scandir": "__VERSION__", +- "fastq": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, + "node_modules/@parcel/watcher": { + "version": "__VERSION__", + "dev": true, +@@ -944,64 +394,6 @@ + "url": "https://github.com/sponsors/jonschlinkert" + } + }, +- "node_modules/@pkgr/core": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/pkgr" +- } +- }, +- "node_modules/@rtsao/scc": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@sindresorhus/base62": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/@types/estree": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/json-schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/json5": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@typescript-eslint/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/typescript-eslint" +- } +- }, + "node_modules/@yarnpkg/lockfile": { + "version": "__VERSION__", + "dev": true, +@@ -1018,29 +410,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/acorn-jsx": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "acorn": "__VERSION__ || __VERSION__ || __VERSION__" +- } +- }, +- "node_modules/ajv": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-deep-equal": "__VERSION__", +- "fast-json-stable-stringify": "__VERSION__", +- "json-schema-traverse": "__VERSION__", +- "uri-js": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/epoberezkin" +- } +- }, + "node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, +@@ -1075,155 +444,6 @@ + "node": ">= 8" + } + }, +- "node_modules/are-docs-informative": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/argparse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Python-2.0" +- }, +- "node_modules/array-buffer-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "is-array-buffer": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array-includes": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-string": "__VERSION__", +- "math-intrinsics": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array-union": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/array-union/-/array-union-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/array.prototype.findlastindex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array.prototype.flat": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array.prototype.flatmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/arraybuffer.prototype.slice": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-buffer-byte-length": "__VERSION__", +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-array-buffer": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/astral-regex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/async-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/autoprefixer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-__VERSION__.tgz", +@@ -1261,27 +481,6 @@ + "postcss": "__VERSION__" + } + }, +- "node_modules/available-typed-arrays": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "possible-typed-array-names": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/balanced-match": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/baseline-browser-mapping": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-__VERSION__.tgz", +@@ -1306,20 +505,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/brace-expansion": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "balanced-match": "__VERSION__", +- "concat-map": "__VERSION__" +- } +- }, +- "node_modules/brace-expansion/node_modules/balanced-match": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/braces": { + "version": "__VERSION__", + "dev": true, +@@ -1370,30 +555,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/cacheable": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@cacheable/memory": "__VERSION__", +- "@cacheable/utils": "__VERSION__", +- "hookified": "__VERSION__", +- "keyv": "__VERSION__", +- "qified": "__VERSION__" +- } +- }, +- "node_modules/cacheable/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, + "node_modules/call-bind": { + "version": "__VERSION__", + "dev": true, +@@ -1438,14 +599,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/callsites": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/camelcase": { + "version": "__VERSION__", + "dev": true, +@@ -1617,56 +770,11 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/colord": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/commander": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/comment-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/concat-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/cosmiconfig": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "env-paths": "__VERSION__", +- "import-fresh": "__VERSION__", +- "js-yaml": "__VERSION__", +- "parse-json": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/d-fischer" +- }, +- "peerDependencies": { +- "typescript": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "typescript": { +- "optional": true +- } +- } +- }, + "node_modules/cross-spawn": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-__VERSION__.tgz", +@@ -1698,106 +806,6 @@ + "node": ">= 8" + } + }, +- "node_modules/css-functions-list": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/css-tree": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "mdn-data": "__VERSION__", +- "source-map-js": "__VERSION__" +- }, +- "engines": { +- "node": "^10 || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/css-tree/node_modules/mdn-data": { +- "version": "__VERSION__", +- "dev": true, +- "license": "CC0-1.0" +- }, +- "node_modules/cssesc": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "cssesc": "bin/cssesc" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/data-view-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/data-view-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/inspect-js" +- } +- }, +- "node_modules/data-view-byte-offset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "supports-color": { +- "optional": true +- } +- } +- }, + "node_modules/decamelize": { + "version": "__VERSION__", + "dev": true, +@@ -1806,11 +814,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/deep-is": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/define-data-property": { + "version": "__VERSION__", + "dev": true, +@@ -1827,22 +830,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/define-properties": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "object-keys": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/dependency-graph": { + "version": "__VERSION__", + "dev": true, +@@ -1860,40 +847,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/diff-sequences": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/dir-glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "path-type": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/doctrine": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "esutils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/dunder-proto": { + "version": "__VERSION__", + "dev": true, +@@ -1919,106 +872,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/env-paths": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/error-ex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-arrayish": "__VERSION__" +- } +- }, +- "node_modules/es-abstract": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-buffer-byte-length": "__VERSION__", +- "arraybuffer.prototype.slice": "__VERSION__", +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "data-view-buffer": "__VERSION__", +- "data-view-byte-length": "__VERSION__", +- "data-view-byte-offset": "__VERSION__", +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "es-set-tostringtag": "__VERSION__", +- "es-to-primitive": "__VERSION__", +- "function.prototype.name": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "get-proto": "__VERSION__", +- "get-symbol-description": "__VERSION__", +- "globalthis": "__VERSION__", +- "gopd": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "has-proto": "__VERSION__", +- "has-symbols": "__VERSION__", +- "hasown": "__VERSION__", +- "internal-slot": "__VERSION__", +- "is-array-buffer": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-data-view": "__VERSION__", +- "is-negative-zero": "__VERSION__", +- "is-regex": "__VERSION__", +- "is-set": "__VERSION__", +- "is-shared-array-buffer": "__VERSION__", +- "is-string": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "is-weakref": "__VERSION__", +- "math-intrinsics": "__VERSION__", +- "object-inspect": "__VERSION__", +- "object-keys": "__VERSION__", +- "object.assign": "__VERSION__", +- "own-keys": "__VERSION__", +- "regexp.prototype.flags": "__VERSION__", +- "safe-array-concat": "__VERSION__", +- "safe-push-apply": "__VERSION__", +- "safe-regex-test": "__VERSION__", +- "set-proto": "__VERSION__", +- "stop-iteration-iterator": "__VERSION__", +- "string.prototype.trim": "__VERSION__", +- "string.prototype.trimend": "__VERSION__", +- "string.prototype.trimstart": "__VERSION__", +- "typed-array-buffer": "__VERSION__", +- "typed-array-byte-length": "__VERSION__", +- "typed-array-byte-offset": "__VERSION__", +- "typed-array-length": "__VERSION__", +- "unbox-primitive": "__VERSION__", +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/es-abstract-get": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "is-callable": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/es-define-property": { + "version": "__VERSION__", + "dev": true, +@@ -2046,49 +899,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/es-set-tostringtag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-shim-unscopables": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-to-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-abstract-get": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-date-object": "__VERSION__", +- "is-symbol": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/escalade": { + "version": "__VERSION__", + "dev": true, +@@ -2097,547 +907,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/escape-string-regexp": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/eslint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint/-/eslint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@eslint-community/eslint-utils": "__VERSION__", +- "@eslint-community/regexpp": "__VERSION__", +- "@eslint/config-array": "__VERSION__", +- "@eslint/config-helpers": "__VERSION__", +- "@eslint/core": "__VERSION__", +- "@eslint/eslintrc": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@eslint/plugin-kit": "__VERSION__", +- "@humanfs/node": "__VERSION__", +- "@humanwhocodes/module-importer": "__VERSION__", +- "@humanwhocodes/retry": "__VERSION__", +- "@types/estree": "__VERSION__", +- "ajv": "__VERSION__", +- "chalk": "__VERSION__", +- "cross-spawn": "__VERSION__", +- "debug": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "eslint-scope": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__", +- "espree": "__VERSION__", +- "esquery": "__VERSION__", +- "esutils": "__VERSION__", +- "fast-deep-equal": "__VERSION__", +- "file-entry-cache": "__VERSION__", +- "find-up": "__VERSION__", +- "glob-parent": "__VERSION__", +- "ignore": "__VERSION__", +- "imurmurhash": "__VERSION__", +- "is-glob": "__VERSION__", +- "json-stable-stringify-without-jsonify": "__VERSION__", +- "lodash.merge": "__VERSION__", +- "minimatch": "__VERSION__", +- "natural-compare": "__VERSION__", +- "optionator": "__VERSION__" +- }, +- "bin": { +- "eslint": "bin/eslint.js" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://eslint.org/donate" +- }, +- "peerDependencies": { +- "jiti": "*" +- }, +- "peerDependenciesMeta": { +- "jiti": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-compat-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-compat-utils/node_modules/semver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/eslint-config-prettier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "eslint-config-prettier": "bin/cli.js" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint-config-prettier" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-import-resolver-node": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__", +- "is-core-module": "__VERSION__", +- "resolve": "__VERSION__" +- } +- }, +- "node_modules/eslint-import-resolver-node/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-module-utils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-module-utils/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-import": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@rtsao/scc": "__VERSION__", +- "array-includes": "__VERSION__", +- "array.prototype.findlastindex": "__VERSION__", +- "array.prototype.flat": "__VERSION__", +- "array.prototype.flatmap": "__VERSION__", +- "debug": "__VERSION__", +- "doctrine": "__VERSION__", +- "eslint-import-resolver-node": "__VERSION__", +- "eslint-module-utils": "__VERSION__", +- "hasown": "__VERSION__", +- "is-core-module": "__VERSION__", +- "is-glob": "__VERSION__", +- "minimatch": "__VERSION__", +- "object.fromentries": "__VERSION__", +- "object.groupby": "__VERSION__", +- "object.values": "__VERSION__", +- "semver": "__VERSION__", +- "string.prototype.trimend": "__VERSION__", +- "tsconfig-paths": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || __VERSION__ || ^8 || ^9" +- } +- }, +- "node_modules/eslint-plugin-import/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "@es-joy/jsdoccomment": "__VERSION__", +- "@es-joy/resolve.exports": "__VERSION__", +- "are-docs-informative": "__VERSION__", +- "comment-parser": "__VERSION__", +- "debug": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "espree": "__VERSION__", +- "esquery": "__VERSION__", +- "html-entities": "__VERSION__", +- "object-deep-merge": "__VERSION__", +- "parse-imports-exports": "__VERSION__", +- "semver": "__VERSION__", +- "spdx-expression-parse": "__VERSION__", +- "to-valid-identifier": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=24" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__ || __VERSION__ || __VERSION__ || __VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/espree": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "acorn": "__VERSION__", +- "acorn-jsx": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/semver": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-no-jquery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "eslint": "__VERSION__", +- "oxlint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- }, +- "oxlint": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-plugin-prettier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prettier-linter-helpers": "__VERSION__", +- "synckit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint-plugin-prettier" +- }, +- "peerDependencies": { +- "@types/eslint": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": ">= __VERSION__ <__VERSION__ || >=__VERSION__", +- "prettier": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "@types/eslint": { +- "optional": true +- }, +- "eslint-config-prettier": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-plugin-yml": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__", +- "diff-sequences": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "eslint-compat-utils": "__VERSION__", +- "natural-compare": "__VERSION__", +- "yaml-eslint-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ota-meshi" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-scope": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "esrecurse": "__VERSION__", +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint/node_modules/glob-parent": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "is-glob": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/espree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/espree/-/espree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "acorn": "__VERSION__", +- "acorn-jsx": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/espree/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/esquery": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/esrecurse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/estraverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/esutils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/fast-deep-equal": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/fast-diff": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0" +- }, +- "node_modules/fast-glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.stat": "__VERSION__", +- "@nodelib/fs.walk": "__VERSION__", +- "glob-parent": "__VERSION__", +- "merge2": "__VERSION__", +- "micromatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/fast-json-stable-stringify": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/fast-levenshtein": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/fast-uri": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/fastify" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/fastify" +- } +- ], +- "license": "BSD-3-Clause" +- }, +- "node_modules/fastest-levenshtein": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/fastq": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fastq/-/fastq-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "reusify": "__VERSION__" +- } +- }, +- "node_modules/file-entry-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flat-cache": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/fill-range": { + "version": "__VERSION__", + "dev": true, +@@ -2649,21 +918,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/find-up": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "locate-path": "__VERSION__", +- "path-exists": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/find-yarn-workspace-root": { + "version": "__VERSION__", + "dev": true, +@@ -2672,41 +926,6 @@ + "micromatch": "__VERSION__" + } + }, +- "node_modules/flat-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flatted": "__VERSION__", +- "keyv": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/flatted": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flatted/-/flatted-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC" +- }, +- "node_modules/for-each": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-callable": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/fraction.js": { + "version": "__VERSION__", + "dev": true, +@@ -2755,44 +974,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/function.prototype.name": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "functions-have-names": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "hasown": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-document.all": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/functions-have-names": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/generator-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/get-caller-file": { + "version": "__VERSION__", + "dev": true, +@@ -2836,22 +1017,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/get-symbol-description": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/glob-parent": { + "version": "__VERSION__", + "dev": true, +@@ -2863,94 +1028,6 @@ + "node": ">= 6" + } + }, +- "node_modules/global-modules": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "global-prefix": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/global-prefix": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ini": "__VERSION__", +- "kind-of": "__VERSION__", +- "which": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/globalthis": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-properties": "__VERSION__", +- "gopd": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/globby": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globby/-/globby-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-union": "__VERSION__", +- "dir-glob": "__VERSION__", +- "fast-glob": "__VERSION__", +- "ignore": "__VERSION__", +- "merge2": "__VERSION__", +- "slash": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/globby/node_modules/slash": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/slash/-/slash-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/globjoin": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/gopd": { + "version": "__VERSION__", + "dev": true, +@@ -2967,17 +1044,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/has-bigints": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/has-flag": { + "version": "__VERSION__", + "dev": true, +@@ -2997,20 +1063,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/has-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/has-symbols": { + "version": "__VERSION__", + "dev": true, +@@ -3022,33 +1074,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/has-tostringtag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-symbols": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/hashery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hashery/-/hashery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/hasown": { + "version": "__VERSION__", + "dev": true, +@@ -3060,156 +1085,11 @@ + "node": ">= 0.4" + } + }, +- "node_modules/hookified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/html-entities": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/mdevils" +- }, +- { +- "type": "patreon", +- "url": "https://patreon.com/mdevils" +- } +- ], +- "license": "MIT" +- }, +- "node_modules/html-tags": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/ignore": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 4" +- } +- }, + "node_modules/immutable": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/import-fresh": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "parent-module": "__VERSION__", +- "resolve-from": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/import-fresh/node_modules/resolve-from": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/imurmurhash": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/ini": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC" +- }, +- "node_modules/internal-slot": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "hasown": "__VERSION__", +- "side-channel": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/is-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-arrayish": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/is-async-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "async-function": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-proto": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-bigint": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-bigints": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-binary-path": { + "version": "__VERSION__", + "dev": true, +@@ -3221,77 +1101,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-boolean-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-callable": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-core-module": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-data-view": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-date-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-docker": { + "version": "__VERSION__", + "dev": true, +@@ -3306,20 +1115,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/is-document.all": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-extglob": { + "version": "__VERSION__", + "dev": true, +@@ -3328,20 +1123,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-finalizationregistry": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, +@@ -3350,24 +1131,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-generator-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "generator-function": "__VERSION__", +- "get-proto": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-glob": { + "version": "__VERSION__", + "dev": true, +@@ -3379,28 +1142,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-negative-zero": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-number": { + "version": "__VERSION__", + "dev": true, +@@ -3409,156 +1150,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-number-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-plain-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/is-regex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "gopd": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-set": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-shared-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-string": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-symbol": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-symbols": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-typed-array": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakref": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-wsl": { + "version": "__VERSION__", + "dev": true, +@@ -3580,61 +1171,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/js-tokens": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/js-yaml": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/puzrin" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/nodeca" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "argparse": "__VERSION__" +- }, +- "bin": { +- "js-yaml": "bin/js-yaml.js" +- } +- }, +- "node_modules/jsdoc-type-pratt-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/json-buffer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json-parse-even-better-errors": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json-schema-traverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/json-stable-stringify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-__VERSION__.tgz", +@@ -3655,22 +1191,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/json-stable-stringify-without-jsonify": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json5": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "minimist": "__VERSION__" +- }, +- "bin": { +- "json5": "lib/cli.js" +- } +- }, + "node_modules/jsonfile": { + "version": "__VERSION__", + "dev": true, +@@ -3692,24 +1212,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "json-buffer": "__VERSION__" +- } +- }, +- "node_modules/kind-of": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/klaw-sync": { + "version": "__VERSION__", + "dev": true, +@@ -3718,23 +1220,6 @@ + "graceful-fs": "__VERSION__" + } + }, +- "node_modules/known-css-properties": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/levn": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prelude-ls": "__VERSION__", +- "type-check": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, + "node_modules/lilconfig": { + "version": "__VERSION__", + "dev": true, +@@ -3746,45 +1231,16 @@ + "url": "https://github.com/sponsors/antonk52" + } + }, +- "node_modules/lines-and-columns": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/locate-path": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-locate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/lodash.debounce": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/lodash.merge": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/lodash.throttle": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/lodash.truncate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/math-intrinsics": { + "version": "__VERSION__", + "dev": true, +@@ -3793,47 +1249,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/mathml-tag-names": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/wooorm" +- } +- }, +- "node_modules/mdn-data": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC0-1.0" +- }, +- "node_modules/meow": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/meow/-/meow-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/merge2": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/merge2/-/merge2-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 8" +- } +- }, + "node_modules/micromatch": { + "version": "__VERSION__", + "dev": true, +@@ -3846,17 +1261,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/minimatch": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "brace-expansion": "__VERSION__" +- }, +- "engines": { +- "node": "*" +- } +- }, + "node_modules/minimist": { + "version": "__VERSION__", + "dev": true, +@@ -3865,11 +1269,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/ms": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/nanoid": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-__VERSION__.tgz", +@@ -3889,11 +1288,6 @@ + "node": "^10 || ^12 || ^13.7 || ^14 || >=__VERSION__" + } + }, +- "node_modules/natural-compare": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/node-addon-api": { + "version": "__VERSION__", + "dev": true, +@@ -3900,23 +1294,6 @@ + "license": "MIT", + "optional": true + }, +- "node_modules/node-exports-info": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array.prototype.flatmap": "__VERSION__", +- "es-errors": "__VERSION__", +- "object.entries": "__VERSION__", +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/node-releases": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-__VERSION__.tgz", +@@ -3935,22 +1312,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/object-deep-merge": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/object-inspect": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/object-keys": { + "version": "__VERSION__", + "dev": true, +@@ -3959,86 +1320,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/object.assign": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "has-symbols": "__VERSION__", +- "object-keys": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object.entries": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/object.fromentries": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object.groupby": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/object.values": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/open": { + "version": "__VERSION__", + "dev": true, +@@ -4054,66 +1335,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/optionator": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "deep-is": "__VERSION__", +- "fast-levenshtein": "__VERSION__", +- "levn": "__VERSION__", +- "prelude-ls": "__VERSION__", +- "type-check": "__VERSION__", +- "word-wrap": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/own-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "get-intrinsic": "__VERSION__", +- "object-keys": "__VERSION__", +- "safe-push-apply": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/p-limit": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "yocto-queue": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/p-locate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-limit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/p-try": { + "version": "__VERSION__", + "dev": true, +@@ -4122,47 +1343,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/parent-module": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "callsites": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/parse-imports-exports": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "parse-statements": "__VERSION__" +- } +- }, +- "node_modules/parse-json": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/code-frame": "__VERSION__", +- "error-ex": "__VERSION__", +- "json-parse-even-better-errors": "__VERSION__", +- "lines-and-columns": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/parse-statements": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/patch-package": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-__VERSION__.tgz", +@@ -4221,14 +1401,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/path-exists": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/path-key": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-__VERSION__.tgz", +@@ -4239,21 +1411,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/path-parse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/path-type": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/path-type/-/path-type-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/picocolors": { + "version": "__VERSION__", + "dev": true, +@@ -4278,14 +1435,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/possible-typed-array-names": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/postcss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-__VERSION__.tgz", +@@ -4453,13 +1602,6 @@ + } + } + }, +- "node_modules/postcss-media-query-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/postcss-reporter": { + "version": "__VERSION__", + "dev": true, +@@ -4485,125 +1627,11 @@ + "postcss": "__VERSION__" + } + }, +- "node_modules/postcss-resolve-nested-selector": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/postcss-safe-parser": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/postcss/" +- }, +- { +- "type": "tidelift", +- "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, +- "node_modules/postcss-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/postcss/" +- }, +- { +- "type": "tidelift", +- "url": "https://tidelift.com/funding/github/npm/postcss-scss" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, +- "node_modules/postcss-selector-parser": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cssesc": "__VERSION__", +- "util-deprecate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/postcss-sorting": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, + "node_modules/postcss-value-parser": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/prelude-ls": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/prettier": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/prettier/-/prettier-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "prettier": "bin/prettier.cjs" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/prettier/prettier?sponsor=1" +- } +- }, +- "node_modules/prettier-linter-helpers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-diff": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/pretty-hrtime": { + "version": "__VERSION__", + "dev": true, +@@ -4612,64 +1640,6 @@ + "node": ">= 0.8" + } + }, +- "node_modules/punycode": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/qified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/qified/-/qified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/qified/node_modules/hookified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/queue-microtask": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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/ramda": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/ramda" +- } +- }, + "node_modules/read-cache": { + "version": "__VERSION__", + "dev": true, +@@ -4689,46 +1659,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/reflect.getprototypeof": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "get-proto": "__VERSION__", +- "which-builtin-type": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/regexp.prototype.flags": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "set-function-name": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/require-directory": { + "version": "__VERSION__", + "dev": true, +@@ -4737,146 +1667,11 @@ + "node": "__VERSION__" + } + }, +- "node_modules/require-from-string": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/require-main-filename": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, +- "node_modules/reserved-identifiers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/resolve": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "is-core-module": "__VERSION__", +- "node-exports-info": "__VERSION__", +- "object-keys": "__VERSION__", +- "path-parse": "__VERSION__", +- "supports-preserve-symlinks-flag": "__VERSION__" +- }, +- "bin": { +- "resolve": "bin/resolve" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/resolve-from": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/reusify": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/reusify/-/reusify-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "iojs": "__VERSION__", +- "node": "__VERSION__" +- } +- }, +- "node_modules/run-parallel": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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": "__VERSION__" +- } +- }, +- "node_modules/safe-array-concat": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "has-symbols": "__VERSION__", +- "isarray": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/safe-push-apply": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "isarray": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/safe-regex-test": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-regex": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/sass": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/sass/-/sass-__VERSION__.tgz", +@@ -4924,14 +1719,6 @@ + "url": "https://paulmillr.com/funding/" + } + }, +- "node_modules/semver": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- } +- }, + "node_modules/set-blocking": { + "version": "__VERSION__", + "dev": true, +@@ -4953,33 +1740,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/set-function-name": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "functions-have-names": "__VERSION__", +- "has-property-descriptors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/set-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/shebang-command": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-__VERSION__.tgz", +@@ -5003,87 +1763,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/side-channel": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "object-inspect": "__VERSION__", +- "side-channel-list": "__VERSION__", +- "side-channel-map": "__VERSION__", +- "side-channel-weakmap": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-list": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-weakmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "object-inspect": "__VERSION__", +- "side-channel-map": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/signal-exit": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/isaacs" +- } +- }, + "node_modules/slash": { + "version": "__VERSION__", + "dev": true, +@@ -5092,22 +1771,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/slice-ansi": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ansi-styles": "__VERSION__", +- "astral-regex": "__VERSION__", +- "is-fullwidth-code-point": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/slice-ansi?sponsor=1" +- } +- }, + "node_modules/source-map": { + "version": "__VERSION__", + "dev": true, +@@ -5133,43 +1796,6 @@ + "source-map": "__VERSION__" + } + }, +- "node_modules/spdx-exceptions": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC-BY-3.0" +- }, +- "node_modules/spdx-expression-parse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "spdx-exceptions": "__VERSION__", +- "spdx-license-ids": "__VERSION__" +- } +- }, +- "node_modules/spdx-license-ids": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC0-1.0" +- }, +- "node_modules/stop-iteration-iterator": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "internal-slot": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/string-width": { + "version": "__VERSION__", + "dev": true, +@@ -5183,60 +1809,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/string.prototype.trim": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-data-property": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/string.prototype.trimend": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/string.prototype.trimstart": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, +@@ -5248,255 +1820,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/strip-bom": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/strip-json-comments": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/stylelint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-syntax-patches-for-csstree": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__", +- "@csstools/media-query-list-parser": "__VERSION__", +- "@csstools/selector-specificity": "__VERSION__", +- "@dual-bundle/import-meta-resolve": "__VERSION__", +- "balanced-match": "__VERSION__", +- "colord": "__VERSION__", +- "cosmiconfig": "__VERSION__", +- "css-functions-list": "__VERSION__", +- "css-tree": "__VERSION__", +- "debug": "__VERSION__", +- "fast-glob": "__VERSION__", +- "fastest-levenshtein": "__VERSION__", +- "file-entry-cache": "__VERSION__", +- "global-modules": "__VERSION__", +- "globby": "__VERSION__", +- "globjoin": "__VERSION__", +- "html-tags": "__VERSION__", +- "ignore": "__VERSION__", +- "imurmurhash": "__VERSION__", +- "is-plain-object": "__VERSION__", +- "known-css-properties": "__VERSION__", +- "mathml-tag-names": "__VERSION__", +- "meow": "__VERSION__", +- "micromatch": "__VERSION__", +- "normalize-path": "__VERSION__", +- "picocolors": "__VERSION__", +- "postcss": "__VERSION__", +- "postcss-resolve-nested-selector": "__VERSION__", +- "postcss-safe-parser": "__VERSION__", +- "postcss-selector-parser": "__VERSION__", +- "postcss-value-parser": "__VERSION__", +- "resolve-from": "__VERSION__", +- "string-width": "__VERSION__", +- "supports-hyperlinks": "__VERSION__", +- "svg-tags": "__VERSION__", +- "table": "__VERSION__", +- "write-file-atomic": "__VERSION__" +- }, +- "bin": { +- "stylelint": "bin/stylelint.mjs" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-recommended": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-recommended-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "postcss-scss": "__VERSION__", +- "stylelint-config-recommended": "__VERSION__", +- "stylelint-scss": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__", +- "stylelint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "postcss": { +- "optional": true +- } +- } +- }, +- "node_modules/stylelint-config-standard": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "stylelint-config-recommended": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-standard-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "stylelint-config-recommended-scss": "__VERSION__", +- "stylelint-config-standard": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__", +- "stylelint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "postcss": { +- "optional": true +- } +- } +- }, +- "node_modules/stylelint-order": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "postcss": "__VERSION__", +- "postcss-sorting": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__ || __VERSION__" +- } +- }, +- "node_modules/stylelint-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "css-tree": "__VERSION__", +- "is-plain-object": "__VERSION__", +- "known-css-properties": "__VERSION__", +- "mdn-data": "__VERSION__", +- "postcss-media-query-parser": "__VERSION__", +- "postcss-resolve-nested-selector": "__VERSION__", +- "postcss-selector-parser": "__VERSION__", +- "postcss-value-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/file-entry-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flat-cache": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/flat-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cacheable": "__VERSION__", +- "flatted": "__VERSION__", +- "hookified": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/ignore": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 4" +- } +- }, + "node_modules/supports-color": { + "version": "__VERSION__", + "dev": true, +@@ -5508,87 +1831,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/supports-hyperlinks": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-flag": "__VERSION__", +- "supports-color": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" +- } +- }, +- "node_modules/supports-preserve-symlinks-flag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/svg-tags": { +- "version": "__VERSION__", +- "dev": true +- }, +- "node_modules/synckit": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@pkgr/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/synckit" +- } +- }, +- "node_modules/table": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "ajv": "__VERSION__", +- "lodash.truncate": "__VERSION__", +- "slice-ansi": "__VERSION__", +- "string-width": "__VERSION__", +- "strip-ansi": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/table/node_modules/ajv": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-deep-equal": "__VERSION__", +- "fast-uri": "__VERSION__", +- "json-schema-traverse": "__VERSION__", +- "require-from-string": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/epoberezkin" +- } +- }, +- "node_modules/table/node_modules/json-schema-traverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/terser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/terser/-/terser-__VERSION__.tgz", +@@ -5676,130 +1918,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/to-valid-identifier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@sindresorhus/base62": "__VERSION__", +- "reserved-identifiers": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/tsconfig-paths": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/json5": "__VERSION__", +- "json5": "__VERSION__", +- "minimist": "__VERSION__", +- "strip-bom": "__VERSION__" +- } +- }, +- "node_modules/type-check": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prelude-ls": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/typed-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/typed-array-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "has-proto": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/typed-array-byte-offset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "has-proto": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "reflect.getprototypeof": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/typed-array-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "possible-typed-array-names": "__VERSION__", +- "reflect.getprototypeof": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/unbox-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-bigints": "__VERSION__", +- "has-symbols": "__VERSION__", +- "which-boxed-primitive": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/universalify": { + "version": "__VERSION__", + "dev": true, +@@ -5839,124 +1957,11 @@ + "browserslist": ">= __VERSION__" + } + }, +- "node_modules/uri-js": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "punycode": "__VERSION__" +- } +- }, +- "node_modules/util-deprecate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/which": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "isexe": "__VERSION__" +- }, +- "bin": { +- "which": "bin/which" +- } +- }, +- "node_modules/which-boxed-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-bigint": "__VERSION__", +- "is-boolean-object": "__VERSION__", +- "is-number-object": "__VERSION__", +- "is-string": "__VERSION__", +- "is-symbol": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-builtin-type": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "function.prototype.name": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "is-async-function": "__VERSION__", +- "is-date-object": "__VERSION__", +- "is-finalizationregistry": "__VERSION__", +- "is-generator-function": "__VERSION__", +- "is-regex": "__VERSION__", +- "is-weakref": "__VERSION__", +- "isarray": "__VERSION__", +- "which-boxed-primitive": "__VERSION__", +- "which-collection": "__VERSION__", +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-collection": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-map": "__VERSION__", +- "is-set": "__VERSION__", +- "is-weakmap": "__VERSION__", +- "is-weakset": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/which-module": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, +- "node_modules/which-typed-array": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "for-each": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/word-wrap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/wrap-ansi": { + "version": "__VERSION__", + "dev": true, +@@ -6039,20 +2044,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/write-file-atomic": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "imurmurhash": "__VERSION__", +- "signal-exit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/y18n": { + "version": "__VERSION__", + "dev": true, +@@ -6072,23 +2063,6 @@ + "url": "https://github.com/sponsors/eemeli" + } + }, +- "node_modules/yaml-eslint-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "eslint-visitor-keys": "__VERSION__", +- "yaml": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ota-meshi" +- } +- }, + "node_modules/yargs": { + "version": "__VERSION__", + "dev": true, +@@ -6214,17 +2188,6 @@ + }, + "engines": { + "node": "__VERSION__" +- } +- }, +- "node_modules/yocto-queue": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" + } + } + } diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/web/themes/custom/star_wars/package.json b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/web/themes/custom/star_wars/package.json new file mode 100644 index 0000000000..1fc10ca089 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint/web/themes/custom/star_wars/package.json @@ -0,0 +1,43 @@ +@@ -4,29 +4,12 @@ + "private": true, + "description": "NodeJS dependencies for star wars project", + "devDependencies": { +- "@eslint/compat": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@homer0/prettier-plugin-jsdoc": "__VERSION__", + "autoprefixer": "__VERSION__", + "chokidar-cli": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": "__VERSION__", +- "eslint-plugin-import": "__VERSION__", +- "eslint-plugin-jsdoc": "__VERSION__", +- "eslint-plugin-no-jquery": "__VERSION__", +- "eslint-plugin-prettier": "__VERSION__", +- "eslint-plugin-yml": "__VERSION__", +- "globals": "__VERSION__", + "patch-package": "__VERSION__", + "postcss": "__VERSION__", + "postcss-cli": "__VERSION__", +- "prettier": "__VERSION__", + "sass": "__VERSION__", +- "stylelint": "__VERSION__", +- "stylelint-config-standard": "__VERSION__", +- "stylelint-config-standard-scss": "__VERSION__", +- "stylelint-order": "__VERSION__", +- "stylelint-scss": "__VERSION__", + "terser": "__VERSION__" + }, + "browserslist": [ +@@ -42,12 +25,6 @@ + "copy": "npm run copy:images && npm run copy:fonts", + "copy:fonts": "mkdir -p build/fonts && cp -r fonts/* build/fonts/ 2>/dev/null || true", + "copy:images": "mkdir -p build/images && cp -r images/* build/images/ 2>/dev/null || true", +- "lint": "npm run lint-js && npm run lint-css", +- "lint-css": "stylelint 'scss/**/*.scss'", +- "lint-css-fix": "stylelint 'scss/**/*.scss' --fix", +- "lint-fix": "npm run lint-js-fix && npm run lint-css-fix", +- "lint-js": "eslint 'js/**/*.js' --ignore-pattern '*.min.js'", +- "lint-js-fix": "eslint 'js/**/*.js' --ignore-pattern '*.min.js' --fix", + "postcss:dev": "postcss build/css/star_wars.min.css -o build/css/star_wars.min.css --map", + "postcss:prod": "postcss build/css/star_wars.min.css -o build/css/star_wars.min.css --no-map", + "postinstall": "patch-package", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/-.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/-eslint.config.mjs similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/-.eslintrc.json rename to .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/-eslint.config.mjs diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/-.eslintignore b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/-package-lock.json similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/-.eslintignore rename to .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/-package-lock.json diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/.ahoy.yml index 61cad99d48..b569385e32 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/.ahoy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/.ahoy.yml @@ -1,27 +1,29 @@ -@@ -207,7 +207,6 @@ +@@ -207,8 +207,6 @@ usage: Lint front-end code. cmd: | ahoy cli vendor/bin/twig-cs-fixer lint -- ahoy cli "yarn run lint" - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" +- ahoy cli "npm run lint" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" lint-tests: -@@ -239,7 +238,6 @@ + usage: Lint tests code. +@@ -239,8 +237,6 @@ usage: Fix lint issues of front-end code. cmd: | ahoy cli vendor/bin/twig-cs-fixer lint --fix -- ahoy cli "yarn run lint-fix" - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" +- ahoy cli "npm run lint-fix" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" test: -@@ -262,10 +260,6 @@ + usage: Run all PHPUnit tests. +@@ -262,10 +258,6 @@ test-functional-javascript: usage: Run PHPUnit functional JavaScript tests. cmd: ahoy cli vendor/bin/phpunit --testsuite=functional-javascript "$@" - - test-js: - usage: Run Jest JavaScript unit tests. -- cmd: ahoy cli "yarn test" +- cmd: ahoy cli "npm test" test-bdd: usage: Run BDD tests. diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/.circleci/config.yml index 43be612aab..5b97ab3cd4 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/.circleci/config.yml @@ -164,12 +164,6 @@ jobs: name: Lint code with Gherkin Lint command: docker compose exec -T cli vendor/bin/gherkinlint lint tests/behat/features || [ "${VORTEX_CI_GHERKIN_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - - run: - name: Lint theme code with NodeJS linters - command: | - [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - # Audit job runs in its own workflow, independently of the commit workflow. audit: <<: *runner_config @@ -179,14 +173,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -201,6 +196,27 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -253,10 +269,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -306,7 +322,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -315,22 +331,22 @@ jobs: - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -339,14 +355,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -355,7 +371,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -367,10 +383,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -379,9 +396,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/web/themes/custom/star_wars/README.md b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/web/themes/custom/star_wars/README.md new file mode 100644 index 0000000000..3d20bae61b --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/web/themes/custom/star_wars/README.md @@ -0,0 +1,6 @@ +@@ -20,5 +20,3 @@ + | `npm run build` | Production build (minified, no source maps) | + | `npm run build-dev` | Development build (expanded, with source maps) | + | `npm run watch` | Watch for changes and rebuild automatically | +-| `npm run lint` | Check code style (JS and SCSS) | +-| `npm run lint-fix` | Fix code style issues automatically | diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/web/themes/custom/star_wars/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/web/themes/custom/star_wars/package-lock.json new file mode 100644 index 0000000000..b755e7a9be --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/web/themes/custom/star_wars/package-lock.json @@ -0,0 +1,4550 @@ +@@ -9,520 +9,15 @@ + "version": "__VERSION__", + "hasInstallScript": true, + "devDependencies": { +- "@eslint/compat": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@homer0/prettier-plugin-jsdoc": "__VERSION__", + "autoprefixer": "__VERSION__", + "chokidar-cli": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": "__VERSION__", +- "eslint-plugin-import": "__VERSION__", +- "eslint-plugin-jsdoc": "__VERSION__", +- "eslint-plugin-no-jquery": "__VERSION__", +- "eslint-plugin-prettier": "__VERSION__", +- "eslint-plugin-yml": "__VERSION__", +- "globals": "__VERSION__", + "patch-package": "__VERSION__", + "postcss": "__VERSION__", + "postcss-cli": "__VERSION__", +- "prettier": "__VERSION__", + "sass": "__VERSION__", +- "stylelint": "__VERSION__", +- "stylelint-config-standard": "__VERSION__", +- "stylelint-config-standard-scss": "__VERSION__", +- "stylelint-order": "__VERSION__", +- "stylelint-scss": "__VERSION__", + "terser": "__VERSION__" + } + }, +- "node_modules/@babel/code-frame": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-validator-identifier": "__VERSION__", +- "js-tokens": "__VERSION__", +- "picocolors": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/helper-validator-identifier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@cacheable/utils": "__VERSION__", +- "@keyv/bigmap": "__VERSION__", +- "hookified": "__VERSION__", +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hashery": "__VERSION__", +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": ">= 18" +- }, +- "peerDependencies": { +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hashery": "__VERSION__", +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/utils/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, +- "node_modules/@csstools/css-parser-algorithms": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@csstools/css-syntax-patches-for-csstree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT-0", +- "peerDependencies": { +- "css-tree": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "css-tree": { +- "optional": true +- } +- } +- }, +- "node_modules/@csstools/css-tokenizer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@csstools/media-query-list-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@csstools/selector-specificity": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT-0", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss-selector-parser": "__VERSION__" +- } +- }, +- "node_modules/@dual-bundle/import-meta-resolve": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/JounQin" +- } +- }, +- "node_modules/@es-joy/jsdoccomment": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/estree": "__VERSION__", +- "@typescript-eslint/types": "__VERSION__", +- "comment-parser": "__VERSION__", +- "esquery": "__VERSION__", +- "jsdoc-type-pratt-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- } +- }, +- "node_modules/@es-joy/resolve.exports": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@eslint-community/eslint-utils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint-community/regexpp": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/compat": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "peerDependencies": { +- "eslint": "^8.40 || 9 || 10" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- } +- } +- }, +- "node_modules/@eslint/compat/node_modules/@eslint/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@types/json-schema": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- } +- }, +- "node_modules/@eslint/config-array": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/object-schema": "__VERSION__", +- "debug": "__VERSION__", +- "minimatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/config-helpers": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@types/json-schema": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/eslintrc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ajv": "__VERSION__", +- "debug": "__VERSION__", +- "espree": "__VERSION__", +- "globals": "__VERSION__", +- "ignore": "__VERSION__", +- "import-fresh": "__VERSION__", +- "js-yaml": "__VERSION__", +- "minimatch": "__VERSION__", +- "strip-json-comments": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/@eslint/eslintrc/node_modules/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/@eslint/js": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://eslint.org/donate" +- } +- }, +- "node_modules/@eslint/object-schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/plugin-kit": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__", +- "levn": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@homer0/prettier-plugin-jsdoc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@homer0/prettier-plugin-jsdoc/-/prettier-plugin-jsdoc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "comment-parser": "__VERSION__", +- "ramda": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "prettier": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@humanfs/types": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/node": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@humanfs/core": "__VERSION__", +- "@humanfs/types": "__VERSION__", +- "@humanwhocodes/retry": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanwhocodes/module-importer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/nzakas" +- } +- }, +- "node_modules/@humanwhocodes/retry": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/nzakas" +- } +- }, + "node_modules/@jridgewell/gen-mapping": { + "version": "__VERSION__", + "dev": true, +@@ -563,51 +58,6 @@ + "@jridgewell/sourcemap-codec": "__VERSION__" + } + }, +- "node_modules/@keyv/serialize": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@nodelib/fs.scandir": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.stat": "__VERSION__", +- "run-parallel": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/@nodelib/fs.stat": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/@nodelib/fs.walk": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.scandir": "__VERSION__", +- "fastq": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, + "node_modules/@parcel/watcher": { + "version": "__VERSION__", + "dev": true, +@@ -944,64 +394,6 @@ + "url": "https://github.com/sponsors/jonschlinkert" + } + }, +- "node_modules/@pkgr/core": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/pkgr" +- } +- }, +- "node_modules/@rtsao/scc": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@sindresorhus/base62": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/@types/estree": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/json-schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/json5": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@typescript-eslint/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/typescript-eslint" +- } +- }, + "node_modules/@yarnpkg/lockfile": { + "version": "__VERSION__", + "dev": true, +@@ -1018,29 +410,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/acorn-jsx": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "acorn": "__VERSION__ || __VERSION__ || __VERSION__" +- } +- }, +- "node_modules/ajv": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-deep-equal": "__VERSION__", +- "fast-json-stable-stringify": "__VERSION__", +- "json-schema-traverse": "__VERSION__", +- "uri-js": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/epoberezkin" +- } +- }, + "node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, +@@ -1075,155 +444,6 @@ + "node": ">= 8" + } + }, +- "node_modules/are-docs-informative": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/argparse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Python-2.0" +- }, +- "node_modules/array-buffer-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "is-array-buffer": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array-includes": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-string": "__VERSION__", +- "math-intrinsics": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array-union": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/array-union/-/array-union-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/array.prototype.findlastindex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array.prototype.flat": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array.prototype.flatmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/arraybuffer.prototype.slice": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-buffer-byte-length": "__VERSION__", +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-array-buffer": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/astral-regex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/async-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/autoprefixer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-__VERSION__.tgz", +@@ -1261,27 +481,6 @@ + "postcss": "__VERSION__" + } + }, +- "node_modules/available-typed-arrays": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "possible-typed-array-names": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/balanced-match": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/baseline-browser-mapping": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-__VERSION__.tgz", +@@ -1306,20 +505,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/brace-expansion": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "balanced-match": "__VERSION__", +- "concat-map": "__VERSION__" +- } +- }, +- "node_modules/brace-expansion/node_modules/balanced-match": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/braces": { + "version": "__VERSION__", + "dev": true, +@@ -1370,30 +555,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/cacheable": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@cacheable/memory": "__VERSION__", +- "@cacheable/utils": "__VERSION__", +- "hookified": "__VERSION__", +- "keyv": "__VERSION__", +- "qified": "__VERSION__" +- } +- }, +- "node_modules/cacheable/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, + "node_modules/call-bind": { + "version": "__VERSION__", + "dev": true, +@@ -1438,14 +599,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/callsites": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/camelcase": { + "version": "__VERSION__", + "dev": true, +@@ -1617,56 +770,11 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/colord": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/commander": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/comment-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/concat-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/cosmiconfig": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "env-paths": "__VERSION__", +- "import-fresh": "__VERSION__", +- "js-yaml": "__VERSION__", +- "parse-json": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/d-fischer" +- }, +- "peerDependencies": { +- "typescript": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "typescript": { +- "optional": true +- } +- } +- }, + "node_modules/cross-spawn": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-__VERSION__.tgz", +@@ -1698,106 +806,6 @@ + "node": ">= 8" + } + }, +- "node_modules/css-functions-list": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/css-tree": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "mdn-data": "__VERSION__", +- "source-map-js": "__VERSION__" +- }, +- "engines": { +- "node": "^10 || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/css-tree/node_modules/mdn-data": { +- "version": "__VERSION__", +- "dev": true, +- "license": "CC0-1.0" +- }, +- "node_modules/cssesc": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "cssesc": "bin/cssesc" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/data-view-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/data-view-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/inspect-js" +- } +- }, +- "node_modules/data-view-byte-offset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "supports-color": { +- "optional": true +- } +- } +- }, + "node_modules/decamelize": { + "version": "__VERSION__", + "dev": true, +@@ -1806,11 +814,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/deep-is": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/define-data-property": { + "version": "__VERSION__", + "dev": true, +@@ -1827,22 +830,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/define-properties": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "object-keys": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/dependency-graph": { + "version": "__VERSION__", + "dev": true, +@@ -1860,40 +847,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/diff-sequences": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/dir-glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "path-type": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/doctrine": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "esutils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/dunder-proto": { + "version": "__VERSION__", + "dev": true, +@@ -1919,106 +872,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/env-paths": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/error-ex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-arrayish": "__VERSION__" +- } +- }, +- "node_modules/es-abstract": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-buffer-byte-length": "__VERSION__", +- "arraybuffer.prototype.slice": "__VERSION__", +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "data-view-buffer": "__VERSION__", +- "data-view-byte-length": "__VERSION__", +- "data-view-byte-offset": "__VERSION__", +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "es-set-tostringtag": "__VERSION__", +- "es-to-primitive": "__VERSION__", +- "function.prototype.name": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "get-proto": "__VERSION__", +- "get-symbol-description": "__VERSION__", +- "globalthis": "__VERSION__", +- "gopd": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "has-proto": "__VERSION__", +- "has-symbols": "__VERSION__", +- "hasown": "__VERSION__", +- "internal-slot": "__VERSION__", +- "is-array-buffer": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-data-view": "__VERSION__", +- "is-negative-zero": "__VERSION__", +- "is-regex": "__VERSION__", +- "is-set": "__VERSION__", +- "is-shared-array-buffer": "__VERSION__", +- "is-string": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "is-weakref": "__VERSION__", +- "math-intrinsics": "__VERSION__", +- "object-inspect": "__VERSION__", +- "object-keys": "__VERSION__", +- "object.assign": "__VERSION__", +- "own-keys": "__VERSION__", +- "regexp.prototype.flags": "__VERSION__", +- "safe-array-concat": "__VERSION__", +- "safe-push-apply": "__VERSION__", +- "safe-regex-test": "__VERSION__", +- "set-proto": "__VERSION__", +- "stop-iteration-iterator": "__VERSION__", +- "string.prototype.trim": "__VERSION__", +- "string.prototype.trimend": "__VERSION__", +- "string.prototype.trimstart": "__VERSION__", +- "typed-array-buffer": "__VERSION__", +- "typed-array-byte-length": "__VERSION__", +- "typed-array-byte-offset": "__VERSION__", +- "typed-array-length": "__VERSION__", +- "unbox-primitive": "__VERSION__", +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/es-abstract-get": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "is-callable": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/es-define-property": { + "version": "__VERSION__", + "dev": true, +@@ -2046,49 +899,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/es-set-tostringtag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-shim-unscopables": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-to-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-abstract-get": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-date-object": "__VERSION__", +- "is-symbol": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/escalade": { + "version": "__VERSION__", + "dev": true, +@@ -2097,547 +907,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/escape-string-regexp": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/eslint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint/-/eslint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@eslint-community/eslint-utils": "__VERSION__", +- "@eslint-community/regexpp": "__VERSION__", +- "@eslint/config-array": "__VERSION__", +- "@eslint/config-helpers": "__VERSION__", +- "@eslint/core": "__VERSION__", +- "@eslint/eslintrc": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@eslint/plugin-kit": "__VERSION__", +- "@humanfs/node": "__VERSION__", +- "@humanwhocodes/module-importer": "__VERSION__", +- "@humanwhocodes/retry": "__VERSION__", +- "@types/estree": "__VERSION__", +- "ajv": "__VERSION__", +- "chalk": "__VERSION__", +- "cross-spawn": "__VERSION__", +- "debug": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "eslint-scope": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__", +- "espree": "__VERSION__", +- "esquery": "__VERSION__", +- "esutils": "__VERSION__", +- "fast-deep-equal": "__VERSION__", +- "file-entry-cache": "__VERSION__", +- "find-up": "__VERSION__", +- "glob-parent": "__VERSION__", +- "ignore": "__VERSION__", +- "imurmurhash": "__VERSION__", +- "is-glob": "__VERSION__", +- "json-stable-stringify-without-jsonify": "__VERSION__", +- "lodash.merge": "__VERSION__", +- "minimatch": "__VERSION__", +- "natural-compare": "__VERSION__", +- "optionator": "__VERSION__" +- }, +- "bin": { +- "eslint": "bin/eslint.js" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://eslint.org/donate" +- }, +- "peerDependencies": { +- "jiti": "*" +- }, +- "peerDependenciesMeta": { +- "jiti": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-compat-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-compat-utils/node_modules/semver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/eslint-config-prettier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "eslint-config-prettier": "bin/cli.js" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint-config-prettier" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-import-resolver-node": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__", +- "is-core-module": "__VERSION__", +- "resolve": "__VERSION__" +- } +- }, +- "node_modules/eslint-import-resolver-node/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-module-utils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-module-utils/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-import": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@rtsao/scc": "__VERSION__", +- "array-includes": "__VERSION__", +- "array.prototype.findlastindex": "__VERSION__", +- "array.prototype.flat": "__VERSION__", +- "array.prototype.flatmap": "__VERSION__", +- "debug": "__VERSION__", +- "doctrine": "__VERSION__", +- "eslint-import-resolver-node": "__VERSION__", +- "eslint-module-utils": "__VERSION__", +- "hasown": "__VERSION__", +- "is-core-module": "__VERSION__", +- "is-glob": "__VERSION__", +- "minimatch": "__VERSION__", +- "object.fromentries": "__VERSION__", +- "object.groupby": "__VERSION__", +- "object.values": "__VERSION__", +- "semver": "__VERSION__", +- "string.prototype.trimend": "__VERSION__", +- "tsconfig-paths": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || __VERSION__ || ^8 || ^9" +- } +- }, +- "node_modules/eslint-plugin-import/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "@es-joy/jsdoccomment": "__VERSION__", +- "@es-joy/resolve.exports": "__VERSION__", +- "are-docs-informative": "__VERSION__", +- "comment-parser": "__VERSION__", +- "debug": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "espree": "__VERSION__", +- "esquery": "__VERSION__", +- "html-entities": "__VERSION__", +- "object-deep-merge": "__VERSION__", +- "parse-imports-exports": "__VERSION__", +- "semver": "__VERSION__", +- "spdx-expression-parse": "__VERSION__", +- "to-valid-identifier": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=24" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__ || __VERSION__ || __VERSION__ || __VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/espree": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "acorn": "__VERSION__", +- "acorn-jsx": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/semver": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-no-jquery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "eslint": "__VERSION__", +- "oxlint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- }, +- "oxlint": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-plugin-prettier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prettier-linter-helpers": "__VERSION__", +- "synckit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint-plugin-prettier" +- }, +- "peerDependencies": { +- "@types/eslint": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": ">= __VERSION__ <__VERSION__ || >=__VERSION__", +- "prettier": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "@types/eslint": { +- "optional": true +- }, +- "eslint-config-prettier": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-plugin-yml": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__", +- "diff-sequences": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "eslint-compat-utils": "__VERSION__", +- "natural-compare": "__VERSION__", +- "yaml-eslint-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ota-meshi" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-scope": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "esrecurse": "__VERSION__", +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint/node_modules/glob-parent": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "is-glob": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/espree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/espree/-/espree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "acorn": "__VERSION__", +- "acorn-jsx": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/espree/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/esquery": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/esrecurse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/estraverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/esutils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/fast-deep-equal": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/fast-diff": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0" +- }, +- "node_modules/fast-glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.stat": "__VERSION__", +- "@nodelib/fs.walk": "__VERSION__", +- "glob-parent": "__VERSION__", +- "merge2": "__VERSION__", +- "micromatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/fast-json-stable-stringify": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/fast-levenshtein": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/fast-uri": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/fastify" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/fastify" +- } +- ], +- "license": "BSD-3-Clause" +- }, +- "node_modules/fastest-levenshtein": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/fastq": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fastq/-/fastq-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "reusify": "__VERSION__" +- } +- }, +- "node_modules/file-entry-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flat-cache": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/fill-range": { + "version": "__VERSION__", + "dev": true, +@@ -2649,21 +918,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/find-up": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "locate-path": "__VERSION__", +- "path-exists": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/find-yarn-workspace-root": { + "version": "__VERSION__", + "dev": true, +@@ -2672,41 +926,6 @@ + "micromatch": "__VERSION__" + } + }, +- "node_modules/flat-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flatted": "__VERSION__", +- "keyv": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/flatted": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flatted/-/flatted-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC" +- }, +- "node_modules/for-each": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-callable": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/fraction.js": { + "version": "__VERSION__", + "dev": true, +@@ -2755,44 +974,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/function.prototype.name": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "functions-have-names": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "hasown": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-document.all": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/functions-have-names": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/generator-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/get-caller-file": { + "version": "__VERSION__", + "dev": true, +@@ -2836,22 +1017,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/get-symbol-description": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/glob-parent": { + "version": "__VERSION__", + "dev": true, +@@ -2863,94 +1028,6 @@ + "node": ">= 6" + } + }, +- "node_modules/global-modules": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "global-prefix": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/global-prefix": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ini": "__VERSION__", +- "kind-of": "__VERSION__", +- "which": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/globalthis": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-properties": "__VERSION__", +- "gopd": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/globby": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globby/-/globby-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-union": "__VERSION__", +- "dir-glob": "__VERSION__", +- "fast-glob": "__VERSION__", +- "ignore": "__VERSION__", +- "merge2": "__VERSION__", +- "slash": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/globby/node_modules/slash": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/slash/-/slash-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/globjoin": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/gopd": { + "version": "__VERSION__", + "dev": true, +@@ -2967,17 +1044,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/has-bigints": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/has-flag": { + "version": "__VERSION__", + "dev": true, +@@ -2997,20 +1063,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/has-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/has-symbols": { + "version": "__VERSION__", + "dev": true, +@@ -3022,33 +1074,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/has-tostringtag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-symbols": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/hashery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hashery/-/hashery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/hasown": { + "version": "__VERSION__", + "dev": true, +@@ -3060,156 +1085,11 @@ + "node": ">= 0.4" + } + }, +- "node_modules/hookified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/html-entities": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/mdevils" +- }, +- { +- "type": "patreon", +- "url": "https://patreon.com/mdevils" +- } +- ], +- "license": "MIT" +- }, +- "node_modules/html-tags": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/ignore": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 4" +- } +- }, + "node_modules/immutable": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/import-fresh": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "parent-module": "__VERSION__", +- "resolve-from": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/import-fresh/node_modules/resolve-from": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/imurmurhash": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/ini": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC" +- }, +- "node_modules/internal-slot": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "hasown": "__VERSION__", +- "side-channel": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/is-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-arrayish": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/is-async-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "async-function": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-proto": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-bigint": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-bigints": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-binary-path": { + "version": "__VERSION__", + "dev": true, +@@ -3221,77 +1101,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-boolean-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-callable": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-core-module": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-data-view": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-date-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-docker": { + "version": "__VERSION__", + "dev": true, +@@ -3306,20 +1115,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/is-document.all": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-extglob": { + "version": "__VERSION__", + "dev": true, +@@ -3328,20 +1123,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-finalizationregistry": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, +@@ -3350,24 +1131,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-generator-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "generator-function": "__VERSION__", +- "get-proto": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-glob": { + "version": "__VERSION__", + "dev": true, +@@ -3379,28 +1142,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-negative-zero": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-number": { + "version": "__VERSION__", + "dev": true, +@@ -3409,156 +1150,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-number-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-plain-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/is-regex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "gopd": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-set": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-shared-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-string": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-symbol": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-symbols": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-typed-array": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakref": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-wsl": { + "version": "__VERSION__", + "dev": true, +@@ -3580,61 +1171,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/js-tokens": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/js-yaml": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/puzrin" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/nodeca" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "argparse": "__VERSION__" +- }, +- "bin": { +- "js-yaml": "bin/js-yaml.js" +- } +- }, +- "node_modules/jsdoc-type-pratt-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/json-buffer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json-parse-even-better-errors": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json-schema-traverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/json-stable-stringify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-__VERSION__.tgz", +@@ -3655,22 +1191,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/json-stable-stringify-without-jsonify": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json5": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "minimist": "__VERSION__" +- }, +- "bin": { +- "json5": "lib/cli.js" +- } +- }, + "node_modules/jsonfile": { + "version": "__VERSION__", + "dev": true, +@@ -3692,24 +1212,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "json-buffer": "__VERSION__" +- } +- }, +- "node_modules/kind-of": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/klaw-sync": { + "version": "__VERSION__", + "dev": true, +@@ -3718,23 +1220,6 @@ + "graceful-fs": "__VERSION__" + } + }, +- "node_modules/known-css-properties": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/levn": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prelude-ls": "__VERSION__", +- "type-check": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, + "node_modules/lilconfig": { + "version": "__VERSION__", + "dev": true, +@@ -3746,45 +1231,16 @@ + "url": "https://github.com/sponsors/antonk52" + } + }, +- "node_modules/lines-and-columns": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/locate-path": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-locate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/lodash.debounce": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/lodash.merge": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/lodash.throttle": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/lodash.truncate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/math-intrinsics": { + "version": "__VERSION__", + "dev": true, +@@ -3793,47 +1249,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/mathml-tag-names": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/wooorm" +- } +- }, +- "node_modules/mdn-data": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC0-1.0" +- }, +- "node_modules/meow": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/meow/-/meow-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/merge2": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/merge2/-/merge2-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 8" +- } +- }, + "node_modules/micromatch": { + "version": "__VERSION__", + "dev": true, +@@ -3846,17 +1261,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/minimatch": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "brace-expansion": "__VERSION__" +- }, +- "engines": { +- "node": "*" +- } +- }, + "node_modules/minimist": { + "version": "__VERSION__", + "dev": true, +@@ -3865,11 +1269,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/ms": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/nanoid": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-__VERSION__.tgz", +@@ -3889,11 +1288,6 @@ + "node": "^10 || ^12 || ^13.7 || ^14 || >=__VERSION__" + } + }, +- "node_modules/natural-compare": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/node-addon-api": { + "version": "__VERSION__", + "dev": true, +@@ -3900,23 +1294,6 @@ + "license": "MIT", + "optional": true + }, +- "node_modules/node-exports-info": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array.prototype.flatmap": "__VERSION__", +- "es-errors": "__VERSION__", +- "object.entries": "__VERSION__", +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/node-releases": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-__VERSION__.tgz", +@@ -3935,22 +1312,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/object-deep-merge": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/object-inspect": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/object-keys": { + "version": "__VERSION__", + "dev": true, +@@ -3959,86 +1320,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/object.assign": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "has-symbols": "__VERSION__", +- "object-keys": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object.entries": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/object.fromentries": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object.groupby": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/object.values": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/open": { + "version": "__VERSION__", + "dev": true, +@@ -4054,66 +1335,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/optionator": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "deep-is": "__VERSION__", +- "fast-levenshtein": "__VERSION__", +- "levn": "__VERSION__", +- "prelude-ls": "__VERSION__", +- "type-check": "__VERSION__", +- "word-wrap": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/own-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "get-intrinsic": "__VERSION__", +- "object-keys": "__VERSION__", +- "safe-push-apply": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/p-limit": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "yocto-queue": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/p-locate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-limit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/p-try": { + "version": "__VERSION__", + "dev": true, +@@ -4122,47 +1343,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/parent-module": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "callsites": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/parse-imports-exports": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "parse-statements": "__VERSION__" +- } +- }, +- "node_modules/parse-json": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/code-frame": "__VERSION__", +- "error-ex": "__VERSION__", +- "json-parse-even-better-errors": "__VERSION__", +- "lines-and-columns": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/parse-statements": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/patch-package": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-__VERSION__.tgz", +@@ -4221,14 +1401,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/path-exists": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/path-key": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-__VERSION__.tgz", +@@ -4239,21 +1411,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/path-parse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/path-type": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/path-type/-/path-type-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/picocolors": { + "version": "__VERSION__", + "dev": true, +@@ -4278,14 +1435,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/possible-typed-array-names": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/postcss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-__VERSION__.tgz", +@@ -4453,13 +1602,6 @@ + } + } + }, +- "node_modules/postcss-media-query-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/postcss-reporter": { + "version": "__VERSION__", + "dev": true, +@@ -4485,125 +1627,11 @@ + "postcss": "__VERSION__" + } + }, +- "node_modules/postcss-resolve-nested-selector": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/postcss-safe-parser": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/postcss/" +- }, +- { +- "type": "tidelift", +- "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, +- "node_modules/postcss-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/postcss/" +- }, +- { +- "type": "tidelift", +- "url": "https://tidelift.com/funding/github/npm/postcss-scss" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, +- "node_modules/postcss-selector-parser": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cssesc": "__VERSION__", +- "util-deprecate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/postcss-sorting": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, + "node_modules/postcss-value-parser": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/prelude-ls": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/prettier": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/prettier/-/prettier-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "prettier": "bin/prettier.cjs" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/prettier/prettier?sponsor=1" +- } +- }, +- "node_modules/prettier-linter-helpers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-diff": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/pretty-hrtime": { + "version": "__VERSION__", + "dev": true, +@@ -4612,64 +1640,6 @@ + "node": ">= 0.8" + } + }, +- "node_modules/punycode": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/qified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/qified/-/qified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/qified/node_modules/hookified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/queue-microtask": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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/ramda": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/ramda" +- } +- }, + "node_modules/read-cache": { + "version": "__VERSION__", + "dev": true, +@@ -4689,46 +1659,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/reflect.getprototypeof": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "get-proto": "__VERSION__", +- "which-builtin-type": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/regexp.prototype.flags": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "set-function-name": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/require-directory": { + "version": "__VERSION__", + "dev": true, +@@ -4737,146 +1667,11 @@ + "node": "__VERSION__" + } + }, +- "node_modules/require-from-string": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/require-main-filename": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, +- "node_modules/reserved-identifiers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/resolve": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "is-core-module": "__VERSION__", +- "node-exports-info": "__VERSION__", +- "object-keys": "__VERSION__", +- "path-parse": "__VERSION__", +- "supports-preserve-symlinks-flag": "__VERSION__" +- }, +- "bin": { +- "resolve": "bin/resolve" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/resolve-from": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/reusify": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/reusify/-/reusify-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "iojs": "__VERSION__", +- "node": "__VERSION__" +- } +- }, +- "node_modules/run-parallel": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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": "__VERSION__" +- } +- }, +- "node_modules/safe-array-concat": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "has-symbols": "__VERSION__", +- "isarray": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/safe-push-apply": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "isarray": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/safe-regex-test": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-regex": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/sass": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/sass/-/sass-__VERSION__.tgz", +@@ -4924,14 +1719,6 @@ + "url": "https://paulmillr.com/funding/" + } + }, +- "node_modules/semver": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- } +- }, + "node_modules/set-blocking": { + "version": "__VERSION__", + "dev": true, +@@ -4953,33 +1740,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/set-function-name": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "functions-have-names": "__VERSION__", +- "has-property-descriptors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/set-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/shebang-command": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-__VERSION__.tgz", +@@ -5003,87 +1763,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/side-channel": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "object-inspect": "__VERSION__", +- "side-channel-list": "__VERSION__", +- "side-channel-map": "__VERSION__", +- "side-channel-weakmap": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-list": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-weakmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "object-inspect": "__VERSION__", +- "side-channel-map": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/signal-exit": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/isaacs" +- } +- }, + "node_modules/slash": { + "version": "__VERSION__", + "dev": true, +@@ -5092,22 +1771,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/slice-ansi": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ansi-styles": "__VERSION__", +- "astral-regex": "__VERSION__", +- "is-fullwidth-code-point": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/slice-ansi?sponsor=1" +- } +- }, + "node_modules/source-map": { + "version": "__VERSION__", + "dev": true, +@@ -5133,43 +1796,6 @@ + "source-map": "__VERSION__" + } + }, +- "node_modules/spdx-exceptions": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC-BY-3.0" +- }, +- "node_modules/spdx-expression-parse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "spdx-exceptions": "__VERSION__", +- "spdx-license-ids": "__VERSION__" +- } +- }, +- "node_modules/spdx-license-ids": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC0-1.0" +- }, +- "node_modules/stop-iteration-iterator": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "internal-slot": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/string-width": { + "version": "__VERSION__", + "dev": true, +@@ -5183,60 +1809,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/string.prototype.trim": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-data-property": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/string.prototype.trimend": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/string.prototype.trimstart": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, +@@ -5248,255 +1820,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/strip-bom": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/strip-json-comments": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/stylelint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-syntax-patches-for-csstree": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__", +- "@csstools/media-query-list-parser": "__VERSION__", +- "@csstools/selector-specificity": "__VERSION__", +- "@dual-bundle/import-meta-resolve": "__VERSION__", +- "balanced-match": "__VERSION__", +- "colord": "__VERSION__", +- "cosmiconfig": "__VERSION__", +- "css-functions-list": "__VERSION__", +- "css-tree": "__VERSION__", +- "debug": "__VERSION__", +- "fast-glob": "__VERSION__", +- "fastest-levenshtein": "__VERSION__", +- "file-entry-cache": "__VERSION__", +- "global-modules": "__VERSION__", +- "globby": "__VERSION__", +- "globjoin": "__VERSION__", +- "html-tags": "__VERSION__", +- "ignore": "__VERSION__", +- "imurmurhash": "__VERSION__", +- "is-plain-object": "__VERSION__", +- "known-css-properties": "__VERSION__", +- "mathml-tag-names": "__VERSION__", +- "meow": "__VERSION__", +- "micromatch": "__VERSION__", +- "normalize-path": "__VERSION__", +- "picocolors": "__VERSION__", +- "postcss": "__VERSION__", +- "postcss-resolve-nested-selector": "__VERSION__", +- "postcss-safe-parser": "__VERSION__", +- "postcss-selector-parser": "__VERSION__", +- "postcss-value-parser": "__VERSION__", +- "resolve-from": "__VERSION__", +- "string-width": "__VERSION__", +- "supports-hyperlinks": "__VERSION__", +- "svg-tags": "__VERSION__", +- "table": "__VERSION__", +- "write-file-atomic": "__VERSION__" +- }, +- "bin": { +- "stylelint": "bin/stylelint.mjs" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-recommended": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-recommended-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "postcss-scss": "__VERSION__", +- "stylelint-config-recommended": "__VERSION__", +- "stylelint-scss": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__", +- "stylelint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "postcss": { +- "optional": true +- } +- } +- }, +- "node_modules/stylelint-config-standard": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "stylelint-config-recommended": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-standard-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "stylelint-config-recommended-scss": "__VERSION__", +- "stylelint-config-standard": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__", +- "stylelint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "postcss": { +- "optional": true +- } +- } +- }, +- "node_modules/stylelint-order": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "postcss": "__VERSION__", +- "postcss-sorting": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__ || __VERSION__" +- } +- }, +- "node_modules/stylelint-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "css-tree": "__VERSION__", +- "is-plain-object": "__VERSION__", +- "known-css-properties": "__VERSION__", +- "mdn-data": "__VERSION__", +- "postcss-media-query-parser": "__VERSION__", +- "postcss-resolve-nested-selector": "__VERSION__", +- "postcss-selector-parser": "__VERSION__", +- "postcss-value-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/file-entry-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flat-cache": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/flat-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cacheable": "__VERSION__", +- "flatted": "__VERSION__", +- "hookified": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/ignore": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 4" +- } +- }, + "node_modules/supports-color": { + "version": "__VERSION__", + "dev": true, +@@ -5508,87 +1831,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/supports-hyperlinks": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-flag": "__VERSION__", +- "supports-color": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" +- } +- }, +- "node_modules/supports-preserve-symlinks-flag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/svg-tags": { +- "version": "__VERSION__", +- "dev": true +- }, +- "node_modules/synckit": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@pkgr/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/synckit" +- } +- }, +- "node_modules/table": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "ajv": "__VERSION__", +- "lodash.truncate": "__VERSION__", +- "slice-ansi": "__VERSION__", +- "string-width": "__VERSION__", +- "strip-ansi": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/table/node_modules/ajv": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-deep-equal": "__VERSION__", +- "fast-uri": "__VERSION__", +- "json-schema-traverse": "__VERSION__", +- "require-from-string": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/epoberezkin" +- } +- }, +- "node_modules/table/node_modules/json-schema-traverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/terser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/terser/-/terser-__VERSION__.tgz", +@@ -5676,130 +1918,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/to-valid-identifier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@sindresorhus/base62": "__VERSION__", +- "reserved-identifiers": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/tsconfig-paths": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/json5": "__VERSION__", +- "json5": "__VERSION__", +- "minimist": "__VERSION__", +- "strip-bom": "__VERSION__" +- } +- }, +- "node_modules/type-check": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prelude-ls": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/typed-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/typed-array-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "has-proto": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/typed-array-byte-offset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "has-proto": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "reflect.getprototypeof": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/typed-array-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "possible-typed-array-names": "__VERSION__", +- "reflect.getprototypeof": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/unbox-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-bigints": "__VERSION__", +- "has-symbols": "__VERSION__", +- "which-boxed-primitive": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/universalify": { + "version": "__VERSION__", + "dev": true, +@@ -5839,124 +1957,11 @@ + "browserslist": ">= __VERSION__" + } + }, +- "node_modules/uri-js": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "punycode": "__VERSION__" +- } +- }, +- "node_modules/util-deprecate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/which": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "isexe": "__VERSION__" +- }, +- "bin": { +- "which": "bin/which" +- } +- }, +- "node_modules/which-boxed-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-bigint": "__VERSION__", +- "is-boolean-object": "__VERSION__", +- "is-number-object": "__VERSION__", +- "is-string": "__VERSION__", +- "is-symbol": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-builtin-type": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "function.prototype.name": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "is-async-function": "__VERSION__", +- "is-date-object": "__VERSION__", +- "is-finalizationregistry": "__VERSION__", +- "is-generator-function": "__VERSION__", +- "is-regex": "__VERSION__", +- "is-weakref": "__VERSION__", +- "isarray": "__VERSION__", +- "which-boxed-primitive": "__VERSION__", +- "which-collection": "__VERSION__", +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-collection": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-map": "__VERSION__", +- "is-set": "__VERSION__", +- "is-weakmap": "__VERSION__", +- "is-weakset": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/which-module": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, +- "node_modules/which-typed-array": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "for-each": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/word-wrap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/wrap-ansi": { + "version": "__VERSION__", + "dev": true, +@@ -6039,20 +2044,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/write-file-atomic": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "imurmurhash": "__VERSION__", +- "signal-exit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/y18n": { + "version": "__VERSION__", + "dev": true, +@@ -6072,23 +2063,6 @@ + "url": "https://github.com/sponsors/eemeli" + } + }, +- "node_modules/yaml-eslint-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "eslint-visitor-keys": "__VERSION__", +- "yaml": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ota-meshi" +- } +- }, + "node_modules/yargs": { + "version": "__VERSION__", + "dev": true, +@@ -6214,17 +2188,6 @@ + }, + "engines": { + "node": "__VERSION__" +- } +- }, +- "node_modules/yocto-queue": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" + } + } + } diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/web/themes/custom/star_wars/package.json b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/web/themes/custom/star_wars/package.json new file mode 100644 index 0000000000..1fc10ca089 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/web/themes/custom/star_wars/package.json @@ -0,0 +1,43 @@ +@@ -4,29 +4,12 @@ + "private": true, + "description": "NodeJS dependencies for star wars project", + "devDependencies": { +- "@eslint/compat": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@homer0/prettier-plugin-jsdoc": "__VERSION__", + "autoprefixer": "__VERSION__", + "chokidar-cli": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": "__VERSION__", +- "eslint-plugin-import": "__VERSION__", +- "eslint-plugin-jsdoc": "__VERSION__", +- "eslint-plugin-no-jquery": "__VERSION__", +- "eslint-plugin-prettier": "__VERSION__", +- "eslint-plugin-yml": "__VERSION__", +- "globals": "__VERSION__", + "patch-package": "__VERSION__", + "postcss": "__VERSION__", + "postcss-cli": "__VERSION__", +- "prettier": "__VERSION__", + "sass": "__VERSION__", +- "stylelint": "__VERSION__", +- "stylelint-config-standard": "__VERSION__", +- "stylelint-config-standard-scss": "__VERSION__", +- "stylelint-order": "__VERSION__", +- "stylelint-scss": "__VERSION__", + "terser": "__VERSION__" + }, + "browserslist": [ +@@ -42,12 +25,6 @@ + "copy": "npm run copy:images && npm run copy:fonts", + "copy:fonts": "mkdir -p build/fonts && cp -r fonts/* build/fonts/ 2>/dev/null || true", + "copy:images": "mkdir -p build/images && cp -r images/* build/images/ 2>/dev/null || true", +- "lint": "npm run lint-js && npm run lint-css", +- "lint-css": "stylelint 'scss/**/*.scss'", +- "lint-css-fix": "stylelint 'scss/**/*.scss' --fix", +- "lint-fix": "npm run lint-js-fix && npm run lint-css-fix", +- "lint-js": "eslint 'js/**/*.js' --ignore-pattern '*.min.js'", +- "lint-js-fix": "eslint 'js/**/*.js' --ignore-pattern '*.min.js' --fix", + "postcss:dev": "postcss build/css/star_wars.min.css -o build/css/star_wars.min.css --map", + "postcss:prod": "postcss build/css/star_wars.min.css -o build/css/star_wars.min.css --no-map", + "postinstall": "patch-package", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/-.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/-eslint.config.mjs similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/-.eslintrc.json rename to .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/-eslint.config.mjs diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/web/themes/custom/star_wars/-.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/-package-lock.json similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/web/themes/custom/star_wars/-.eslintrc.json rename to .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/-package-lock.json diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/.ahoy.yml index 04e6b410ea..e93ba29a66 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/.ahoy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/.ahoy.yml @@ -15,25 +15,25 @@ - usage: Install front-end assets. - aliases: [fe-install] - cmd: | -- ahoy cli "yarn install --frozen-lockfile" -- ahoy cli "yarn --cwd=${WEBROOT}/themes/custom/${DRUPAL_THEME} install --frozen-lockfile" +- ahoy cli "npm ci" +- ahoy cli "npm --prefix=${WEBROOT}/themes/custom/${DRUPAL_THEME} ci" - - fe: - usage: Build front-end assets. - aliases: [fe-build] -- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run build" +- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run build" - - fed: - usage: Build front-end assets for development. - aliases: [fe-build-dev] -- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run build-dev" +- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run build-dev" - - few: - usage: Watch front-end assets during development. - aliases: [fe-watch] - cmd: | - ahoy cli "pkill -9 -f grunt" || true -- ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run watch" +- ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run watch" - lint: usage: Lint back-end and front-end code. @@ -42,8 +42,8 @@ usage: Lint front-end code. cmd: | ahoy cli vendor/bin/twig-cs-fixer lint -- ahoy cli "yarn run lint" -- ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" +- ahoy cli "npm run lint" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" lint-tests: usage: Lint tests code. @@ -66,8 +66,8 @@ usage: Fix lint issues of front-end code. cmd: | ahoy cli vendor/bin/twig-cs-fixer lint --fix -- ahoy cli "yarn run lint-fix" -- ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" +- ahoy cli "npm run lint-fix" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" test: usage: Run all PHPUnit tests. @@ -78,7 +78,7 @@ - - test-js: - usage: Run Jest JavaScript unit tests. -- cmd: ahoy cli "yarn test" +- cmd: ahoy cli "npm test" test-bdd: usage: Run BDD tests. diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/.docker/cli.dockerfile b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/.docker/cli.dockerfile index 4abfebbece..573ef6b35d 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/.docker/cli.dockerfile +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/.docker/cli.dockerfile @@ -7,16 +7,17 @@ ENV DRUPAL_THEME=${DRUPAL_THEME} ARG VORTEX_FRONTEND_BUILD_SKIP="0" -@@ -94,12 +94,5 @@ +@@ -94,13 +94,5 @@ # Create file directories and set correct permissions. # hadolint ignore=SC2174 # only the leaf directory needs the mode RUN mkdir -p -m 2775 "/app/${WEBROOT}/${DRUPAL_PUBLIC_FILES}" "/app/${WEBROOT}/${DRUPAL_PRIVATE_FILES}" "${DRUPAL_TEMPORARY_FILES}" - -RUN if [ "${VORTEX_FRONTEND_BUILD_SKIP}" != "1" ]; then \ - theme_path="/app/${WEBROOT}/themes/custom/${DRUPAL_THEME}"; \ -- yarn --cwd="${theme_path}" install --frozen-lockfile --no-progress && \ -- yarn --cwd="${theme_path}" run build && \ -- yarn cache clean; \ +- export npm_config_cache=/tmp/npm-cache; \ +- npm --prefix="${theme_path}" ci --no-progress --no-audit --no-fund && \ +- npm --prefix="${theme_path}" run build && \ +- rm -rf /tmp/npm-cache; \ - fi WORKDIR /app diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/.github/workflows/build-test-deploy.yml index ae395247d0..44b0263aa9 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/.github/workflows/build-test-deploy.yml @@ -2,7 +2,7 @@ docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" -- docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" +- docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - name: Validate Composer configuration is normalized run: docker compose exec -T cli composer normalize --dry-run @@ -11,44 +11,54 @@ continue-on-error: ${{ vars.VORTEX_CI_GHERKIN_LINT_IGNORE_FAILURE == '1' }} - - name: Lint module code with NodeJS linters -- run: docker compose exec -T cli bash -c "yarn run lint" +- run: docker compose exec -T cli bash -c "npm run lint" - continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} - - - name: Lint theme code with NodeJS linters - if: ${{ vars.VORTEX_FRONTEND_BUILD_SKIP != '1' }} -- run: docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" +- run: docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" - continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} - test: runs-on: ubuntu-latest if: ${{ !inputs.deploy_target && (github.event_name == 'push' || !startsWith(github.head_ref, 'project/')) }} -@@ -290,7 +280,6 @@ +@@ -199,9 +189,7 @@ + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + VORTEX_CI_RUNNER_INDEX: ${{ strategy.job-index }} + VORTEX_CI_RUNNER_TOTAL: ${{ strategy.job-total }} +- VORTEX_CI_IS_JEST_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + VORTEX_CI_IS_PHPUNIT_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- VORTEX_CI_IS_SDC_DEVEL_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + # Runs on every instance, using the `p` profile. + VORTEX_CI_IS_BEHAT_RUNNER: true + # Subtracted from the instance index to derive the profile number. Raise +@@ -316,7 +304,6 @@ docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" -- docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" +- docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - name: Provision site run: | -@@ -304,11 +293,6 @@ +@@ -330,11 +317,6 @@ docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision timeout-minutes: 30 - - name: Test with Jest -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} -- run: docker compose exec -T cli bash -c "yarn test" +- if: ${{ env.VORTEX_CI_IS_JEST_RUNNER == 'true' }} +- run: docker compose exec -T cli bash -c "npm test" - continue-on-error: ${{ vars.VORTEX_CI_JEST_IGNORE_FAILURE == '1' }} - - name: Test with PHPUnit - if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} run: docker compose exec -T cli vendor/bin/phpunit -@@ -368,18 +352,6 @@ +@@ -394,18 +376,6 @@ fi env: VORTEX_CI_CODE_COVERAGE_THRESHOLD: ${{ vars.VORTEX_CI_CODE_COVERAGE_THRESHOLD || '90' }} - - - name: Validate Single Directory Components -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- if: ${{ env.VORTEX_CI_IS_SDC_DEVEL_RUNNER == 'true' }} - run: | - [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) @@ -60,4 +70,4 @@ - continue-on-error: ${{ vars.VORTEX_CI_SDC_DEVEL_IGNORE_FAILURE == '1' }} - name: Test with Behat - run: | + if: ${{ env.VORTEX_CI_IS_BEHAT_RUNNER == 'true' }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/web/themes/custom/star_wars/-.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/web/themes/custom/star_wars/-eslint.config.mjs similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/web/themes/custom/star_wars/-.eslintrc.json rename to .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/web/themes/custom/star_wars/-eslint.config.mjs diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_none/-.eslintignore b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/web/themes/custom/star_wars/-package-lock.json similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/tools_none/-.eslintignore rename to .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/web/themes/custom/star_wars/-package-lock.json diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_none/-.eslintrc.json b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/-eslint.config.mjs similarity index 100% rename from .vortex/cli/tests/Fixtures/handler_process/tools_none/-.eslintrc.json rename to .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/-eslint.config.mjs diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/-package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/-package-lock.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/.ahoy.yml index 04e6b410ea..e93ba29a66 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/.ahoy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/.ahoy.yml @@ -15,25 +15,25 @@ - usage: Install front-end assets. - aliases: [fe-install] - cmd: | -- ahoy cli "yarn install --frozen-lockfile" -- ahoy cli "yarn --cwd=${WEBROOT}/themes/custom/${DRUPAL_THEME} install --frozen-lockfile" +- ahoy cli "npm ci" +- ahoy cli "npm --prefix=${WEBROOT}/themes/custom/${DRUPAL_THEME} ci" - - fe: - usage: Build front-end assets. - aliases: [fe-build] -- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run build" +- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run build" - - fed: - usage: Build front-end assets for development. - aliases: [fe-build-dev] -- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run build-dev" +- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run build-dev" - - few: - usage: Watch front-end assets during development. - aliases: [fe-watch] - cmd: | - ahoy cli "pkill -9 -f grunt" || true -- ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run watch" +- ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run watch" - lint: usage: Lint back-end and front-end code. @@ -42,8 +42,8 @@ usage: Lint front-end code. cmd: | ahoy cli vendor/bin/twig-cs-fixer lint -- ahoy cli "yarn run lint" -- ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" +- ahoy cli "npm run lint" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" lint-tests: usage: Lint tests code. @@ -66,8 +66,8 @@ usage: Fix lint issues of front-end code. cmd: | ahoy cli vendor/bin/twig-cs-fixer lint --fix -- ahoy cli "yarn run lint-fix" -- ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" +- ahoy cli "npm run lint-fix" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" test: usage: Run all PHPUnit tests. @@ -78,7 +78,7 @@ - - test-js: - usage: Run Jest JavaScript unit tests. -- cmd: ahoy cli "yarn test" +- cmd: ahoy cli "npm test" test-bdd: usage: Run BDD tests. diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/.circleci/config.yml index 5ff7bcc1c0..fbe4970945 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/.circleci/config.yml @@ -173,14 +173,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -195,6 +196,26 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -247,10 +268,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -300,7 +321,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -309,22 +330,22 @@ jobs: - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -333,14 +354,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -349,10 +370,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -361,9 +383,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/.docker/cli.dockerfile b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/.docker/cli.dockerfile index 4abfebbece..573ef6b35d 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/.docker/cli.dockerfile +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/.docker/cli.dockerfile @@ -7,16 +7,17 @@ ENV DRUPAL_THEME=${DRUPAL_THEME} ARG VORTEX_FRONTEND_BUILD_SKIP="0" -@@ -94,12 +94,5 @@ +@@ -94,13 +94,5 @@ # Create file directories and set correct permissions. # hadolint ignore=SC2174 # only the leaf directory needs the mode RUN mkdir -p -m 2775 "/app/${WEBROOT}/${DRUPAL_PUBLIC_FILES}" "/app/${WEBROOT}/${DRUPAL_PRIVATE_FILES}" "${DRUPAL_TEMPORARY_FILES}" - -RUN if [ "${VORTEX_FRONTEND_BUILD_SKIP}" != "1" ]; then \ - theme_path="/app/${WEBROOT}/themes/custom/${DRUPAL_THEME}"; \ -- yarn --cwd="${theme_path}" install --frozen-lockfile --no-progress && \ -- yarn --cwd="${theme_path}" run build && \ -- yarn cache clean; \ +- export npm_config_cache=/tmp/npm-cache; \ +- npm --prefix="${theme_path}" ci --no-progress --no-audit --no-fund && \ +- npm --prefix="${theme_path}" run build && \ +- rm -rf /tmp/npm-cache; \ - fi WORKDIR /app diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/web/themes/custom/star_wars/-eslint.config.mjs b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/web/themes/custom/star_wars/-eslint.config.mjs new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/web/themes/custom/star_wars/-package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/web/themes/custom/star_wars/-package-lock.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat/.ahoy.yml index 41a28c2e78..7aae8e5eca 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat/.ahoy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat/.ahoy.yml @@ -18,7 +18,7 @@ @@ -266,11 +263,6 @@ test-js: usage: Run Jest JavaScript unit tests. - cmd: ahoy cli "yarn test" + cmd: ahoy cli "npm test" - - test-bdd: - usage: Run BDD tests. diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat/.github/workflows/build-test-deploy.yml index a6c331ab08..27e48cd819 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat/.github/workflows/build-test-deploy.yml @@ -7,24 +7,36 @@ - continue-on-error: ${{ vars.VORTEX_CI_GHERKIN_LINT_IGNORE_FAILURE == '1' }} - - name: Lint module code with NodeJS linters - run: docker compose exec -T cli bash -c "yarn run lint" + run: docker compose exec -T cli bash -c "npm run lint" continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} -@@ -380,20 +376,6 @@ +@@ -202,12 +198,6 @@ + VORTEX_CI_IS_JEST_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + VORTEX_CI_IS_PHPUNIT_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + VORTEX_CI_IS_SDC_DEVEL_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- # Runs on every instance, using the `p` profile. +- VORTEX_CI_IS_BEHAT_RUNNER: true +- # Subtracted from the instance index to derive the profile number. Raise +- # it by one for every leading instance that does not run Behat, so the +- # first Behat instance still selects the `p0` catch-all profile. +- VORTEX_CI_BEHAT_PROFILE_OFFSET: 0 + + steps: + # Frees disk space by removing preinstalled toolchains unused by this project. +@@ -406,19 +396,6 @@ exit 1 fi continue-on-error: ${{ vars.VORTEX_CI_SDC_DEVEL_IGNORE_FAILURE == '1' }} - - - name: Test with Behat +- if: ${{ env.VORTEX_CI_IS_BEHAT_RUNNER == 'true' }} - run: | - # shellcheck disable=SC2170 -- if [ "${STRATEGY_JOB_TOTAL}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${STRATEGY_JOB_INDEX}}"; fi +- if [ "${VORTEX_CI_RUNNER_TOTAL}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi - echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" -- docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ -- docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" +- docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ +- docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" - env: - VORTEX_CI_BEHAT_PROFILE: ${{ vars.VORTEX_CI_BEHAT_PROFILE }} -- STRATEGY_JOB_TOTAL: ${{ strategy.job-total }} -- STRATEGY_JOB_INDEX: ${{ strategy.job-index }} - continue-on-error: ${{ vars.VORTEX_CI_BEHAT_IGNORE_FAILURE == '1' }} - timeout-minutes: 30 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat/docs/testing.md b/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat/docs/testing.md index aa80aff6de..7bf3299f8b 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat/docs/testing.md +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat/docs/testing.md @@ -7,7 +7,7 @@ - -BDD end-to-end tests. - --See [documentation](https://www.vortextemplate.com/docs/development/behat) +-See [documentation](https://www.vortextemplate.com/docs/development/testing/behat) -on how to run Behat tests, configure environment variables, and use test reports -in continuous integration pipeline. - diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat/tests/behat/features/-password_reset.feature b/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat/tests/behat/features/-password_reset.feature new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat/tests/behat/features/-redirect.feature b/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat/tests/behat/features/-redirect.feature new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat/tests/behat/fixtures/-response.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat/tests/behat/fixtures/-response.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat/tests/behat/fixtures/-response.xml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat/tests/behat/fixtures/-response.xml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat_circleci/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat_circleci/.ahoy.yml index 41a28c2e78..7aae8e5eca 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat_circleci/.ahoy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat_circleci/.ahoy.yml @@ -18,7 +18,7 @@ @@ -266,11 +263,6 @@ test-js: usage: Run Jest JavaScript unit tests. - cmd: ahoy cli "yarn test" + cmd: ahoy cli "npm test" - - test-bdd: - usage: Run BDD tests. diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat_circleci/.circleci/config.yml index d1fcc73997..7574fbb61c 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat_circleci/.circleci/config.yml @@ -139,7 +139,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -163,13 +163,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -180,14 +180,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -202,6 +203,21 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -254,10 +270,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -299,7 +315,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -308,7 +324,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -316,27 +332,29 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -345,14 +363,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -361,7 +379,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -375,9 +393,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat_circleci/docs/testing.md b/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat_circleci/docs/testing.md index aa80aff6de..7bf3299f8b 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat_circleci/docs/testing.md +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat_circleci/docs/testing.md @@ -7,7 +7,7 @@ - -BDD end-to-end tests. - --See [documentation](https://www.vortextemplate.com/docs/development/behat) +-See [documentation](https://www.vortextemplate.com/docs/development/testing/behat) -on how to run Behat tests, configure environment variables, and use test reports -in continuous integration pipeline. - diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat_circleci/tests/behat/features/-password_reset.feature b/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat_circleci/tests/behat/features/-password_reset.feature new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat_circleci/tests/behat/features/-redirect.feature b/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat_circleci/tests/behat/features/-redirect.feature new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat_circleci/tests/behat/fixtures/-response.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat_circleci/tests/behat/fixtures/-response.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat_circleci/tests/behat/fixtures/-response.xml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_behat_circleci/tests/behat/fixtures/-response.xml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_dclint_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_dclint_circleci/.circleci/config.yml index 1cea0d3ad5..54ec866461 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_dclint_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_dclint_circleci/.circleci/config.yml @@ -135,7 +135,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -163,13 +163,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -180,14 +180,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -202,6 +203,28 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -254,10 +277,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -299,7 +322,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -308,7 +331,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -316,27 +339,29 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -345,14 +370,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -361,7 +386,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -373,10 +398,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -385,9 +411,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_docker_linters_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_docker_linters_circleci/.circleci/config.yml index 28df24e669..69241f3714 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_docker_linters_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_docker_linters_circleci/.circleci/config.yml @@ -128,7 +128,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -156,13 +156,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -173,14 +173,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -195,6 +196,28 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -247,10 +270,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -292,7 +315,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -301,7 +324,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -309,27 +332,29 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -338,14 +363,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -354,7 +379,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -366,10 +391,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -378,9 +404,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/-eslint.config.mjs b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/-eslint.config.mjs new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/.github/workflows/build-test-deploy.yml index d597ac219e..b3d87d9217 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/.github/workflows/build-test-deploy.yml @@ -2,18 +2,23 @@ docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" -- docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" +- docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - name: Validate Composer configuration is normalized run: docker compose exec -T cli composer normalize --dry-run -@@ -150,10 +149,6 @@ +@@ -150,15 +149,6 @@ - name: Lint code with Gherkin Lint run: docker compose exec -T cli vendor/bin/gherkinlint lint tests/behat/features continue-on-error: ${{ vars.VORTEX_CI_GHERKIN_LINT_IGNORE_FAILURE == '1' }} - - - name: Lint module code with NodeJS linters -- run: docker compose exec -T cli bash -c "yarn run lint" +- run: docker compose exec -T cli bash -c "npm run lint" +- continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} +- +- - name: Lint theme code with NodeJS linters +- if: ${{ vars.VORTEX_FRONTEND_BUILD_SKIP != '1' }} +- run: docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" - continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} - - name: Lint theme code with NodeJS linters - if: ${{ vars.VORTEX_FRONTEND_BUILD_SKIP != '1' }} + test: + runs-on: ubuntu-latest diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/package-lock.json new file mode 100644 index 0000000000..51325322d4 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/package-lock.json @@ -0,0 +1,3437 @@ +@@ -7,20 +7,8 @@ + "name": "star_wars", + "license": "proprietary", + "devDependencies": { +- "@eslint/compat": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@homer0/prettier-plugin-jsdoc": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": "__VERSION__", +- "eslint-plugin-import": "__VERSION__", +- "eslint-plugin-jsdoc": "__VERSION__", +- "eslint-plugin-no-jquery": "__VERSION__", +- "eslint-plugin-prettier": "__VERSION__", +- "eslint-plugin-yml": "__VERSION__", +- "globals": "__VERSION__", + "jest": "__VERSION__", + "jest-environment-jsdom": "__VERSION__", +- "prettier": "__VERSION__", + "stylelint": "__VERSION__", + "stylelint-config-standard": "__VERSION__", + "stylelint-order": "__VERSION__" +@@ -939,215 +927,6 @@ + "tslib": "__VERSION__" + } + }, +- "node_modules/@es-joy/jsdoccomment": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/estree": "__VERSION__", +- "@typescript-eslint/types": "__VERSION__", +- "comment-parser": "__VERSION__", +- "esquery": "__VERSION__", +- "jsdoc-type-pratt-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- } +- }, +- "node_modules/@es-joy/jsdoccomment/node_modules/comment-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/@es-joy/resolve.exports": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@eslint-community/eslint-utils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint-community/regexpp": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/compat": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "peerDependencies": { +- "eslint": "^8.40 || 9 || 10" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- } +- } +- }, +- "node_modules/@eslint/compat/node_modules/@eslint/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@types/json-schema": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- } +- }, +- "node_modules/@eslint/config-array": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/object-schema": "__VERSION__", +- "debug": "__VERSION__", +- "minimatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/config-helpers": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@types/json-schema": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/eslintrc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ajv": "__VERSION__", +- "debug": "__VERSION__", +- "espree": "__VERSION__", +- "globals": "__VERSION__", +- "ignore": "__VERSION__", +- "import-fresh": "__VERSION__", +- "js-yaml": "__VERSION__", +- "minimatch": "__VERSION__", +- "strip-json-comments": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/@eslint/eslintrc/node_modules/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/@eslint/js": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://eslint.org/donate" +- } +- }, +- "node_modules/@eslint/object-schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/plugin-kit": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__", +- "levn": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/@exodus/bytes": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-__VERSION__.tgz", +@@ -1166,87 +945,6 @@ + } + } + }, +- "node_modules/@homer0/prettier-plugin-jsdoc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@homer0/prettier-plugin-jsdoc/-/prettier-plugin-jsdoc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "comment-parser": "__VERSION__", +- "ramda": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "prettier": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@humanfs/types": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/node": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@humanfs/core": "__VERSION__", +- "@humanfs/types": "__VERSION__", +- "@humanwhocodes/retry": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanwhocodes/module-importer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/nzakas" +- } +- }, +- "node_modules/@humanwhocodes/retry": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/nzakas" +- } +- }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-__VERSION__.tgz", +@@ -1797,11 +1495,6 @@ + "url": "https://opencollective.com/pkgr" + } + }, +- "node_modules/@rtsao/scc": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@sinclair/typebox": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-__VERSION__.tgz", +@@ -1809,17 +1502,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/@sindresorhus/base62": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/@sinonjs/commons": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-__VERSION__.tgz", +@@ -1896,13 +1578,6 @@ + "@babel/types": "__VERSION__" + } + }, +- "node_modules/@types/estree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-__VERSION__.tgz", +@@ -1942,18 +1617,6 @@ + "parse5": "__VERSION__" + } + }, +- "node_modules/@types/json-schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/json5": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@types/node": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/node/-/node-__VERSION__.tgz", +@@ -1995,20 +1658,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/@typescript-eslint/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/typescript-eslint" +- } +- }, + "node_modules/@ungap/structured-clone": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-__VERSION__.tgz", +@@ -2359,46 +2008,6 @@ + "win32" + ] + }, +- "node_modules/acorn": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/acorn/-/acorn-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "acorn": "bin/acorn" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/acorn-jsx": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "acorn": "__VERSION__ || __VERSION__ || __VERSION__" +- } +- }, +- "node_modules/ajv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/ajv/-/ajv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-deep-equal": "__VERSION__", +- "fast-json-stable-stringify": "__VERSION__", +- "json-schema-traverse": "__VERSION__", +- "uri-js": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/epoberezkin" +- } +- }, + "node_modules/ansi-escapes": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-__VERSION__.tgz", +@@ -2464,14 +2073,6 @@ + "url": "https://github.com/sponsors/jonschlinkert" + } + }, +- "node_modules/are-docs-informative": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/argparse": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-__VERSION__.tgz", +@@ -2479,42 +2080,6 @@ + "dev": true, + "license": "Python-2.0" + }, +- "node_modules/array-buffer-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "is-array-buffer": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array-includes": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-string": "__VERSION__", +- "math-intrinsics": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/array-union": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-__VERSION__.tgz", +@@ -2525,80 +2090,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/array.prototype.findlastindex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array.prototype.flat": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array.prototype.flatmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/arraybuffer.prototype.slice": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-buffer-byte-length": "__VERSION__", +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-array-buffer": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/astral-regex": { + "version": "__VERSION__", + "dev": true, +@@ -2607,28 +2098,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/async-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/available-typed-arrays": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "possible-typed-array-names": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/babel-jest": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-__VERSION__.tgz", +@@ -2728,13 +2197,6 @@ + "@babel/core": "__VERSION__ || __VERSION__" + } + }, +- "node_modules/balanced-match": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/baseline-browser-mapping": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-__VERSION__.tgz", +@@ -2758,15 +2220,6 @@ + "require-from-string": "__VERSION__" + } + }, +- "node_modules/brace-expansion": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "balanced-match": "__VERSION__", +- "concat-map": "__VERSION__" +- } +- }, + "node_modules/braces": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/braces/-/braces-__VERSION__.tgz", +@@ -2855,50 +2308,6 @@ + "@keyv/serialize": "__VERSION__" + } + }, +- "node_modules/call-bind": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind-apply-helpers": "__VERSION__", +- "es-define-property": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "set-function-length": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/call-bind-apply-helpers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "function-bind": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/call-bound": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind-apply-helpers": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/callsites": { + "version": "__VERSION__", + "dev": true, +@@ -3058,21 +2467,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/comment-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/concat-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/convert-source-map": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-__VERSION__.tgz", +@@ -3169,54 +2563,6 @@ + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/data-view-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/data-view-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/inspect-js" +- } +- }, +- "node_modules/data-view-byte-offset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/debug": { + "version": "__VERSION__", + "dev": true, +@@ -3255,11 +2601,6 @@ + } + } + }, +- "node_modules/deep-is": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/deepmerge": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-__VERSION__.tgz", +@@ -3270,38 +2611,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/define-data-property": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "gopd": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/define-properties": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "object-keys": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/detect-newline": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-__VERSION__.tgz", +@@ -3312,16 +2621,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/diff-sequences": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/dir-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-__VERSION__.tgz", +@@ -3335,30 +2634,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/doctrine": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "esutils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/dunder-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind-apply-helpers": "__VERSION__", +- "es-errors": "__VERSION__", +- "gopd": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/electron-to-chromium": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-__VERSION__.tgz", +@@ -3417,141 +2692,6 @@ + "is-arrayish": "__VERSION__" + } + }, +- "node_modules/es-abstract": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-buffer-byte-length": "__VERSION__", +- "arraybuffer.prototype.slice": "__VERSION__", +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "data-view-buffer": "__VERSION__", +- "data-view-byte-length": "__VERSION__", +- "data-view-byte-offset": "__VERSION__", +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "es-set-tostringtag": "__VERSION__", +- "es-to-primitive": "__VERSION__", +- "function.prototype.name": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "get-proto": "__VERSION__", +- "get-symbol-description": "__VERSION__", +- "globalthis": "__VERSION__", +- "gopd": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "has-proto": "__VERSION__", +- "has-symbols": "__VERSION__", +- "hasown": "__VERSION__", +- "internal-slot": "__VERSION__", +- "is-array-buffer": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-data-view": "__VERSION__", +- "is-negative-zero": "__VERSION__", +- "is-regex": "__VERSION__", +- "is-set": "__VERSION__", +- "is-shared-array-buffer": "__VERSION__", +- "is-string": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "is-weakref": "__VERSION__", +- "math-intrinsics": "__VERSION__", +- "object-inspect": "__VERSION__", +- "object-keys": "__VERSION__", +- "object.assign": "__VERSION__", +- "own-keys": "__VERSION__", +- "regexp.prototype.flags": "__VERSION__", +- "safe-array-concat": "__VERSION__", +- "safe-push-apply": "__VERSION__", +- "safe-regex-test": "__VERSION__", +- "set-proto": "__VERSION__", +- "stop-iteration-iterator": "__VERSION__", +- "string.prototype.trim": "__VERSION__", +- "string.prototype.trimend": "__VERSION__", +- "string.prototype.trimstart": "__VERSION__", +- "typed-array-buffer": "__VERSION__", +- "typed-array-byte-length": "__VERSION__", +- "typed-array-byte-offset": "__VERSION__", +- "typed-array-length": "__VERSION__", +- "unbox-primitive": "__VERSION__", +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/es-define-property": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-errors": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-object-atoms": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-set-tostringtag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-shim-unscopables": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-to-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-callable": "__VERSION__", +- "is-date-object": "__VERSION__", +- "is-symbol": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/escalade": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-__VERSION__.tgz", +@@ -3562,474 +2702,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/escape-string-regexp": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/eslint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint/-/eslint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@eslint-community/eslint-utils": "__VERSION__", +- "@eslint-community/regexpp": "__VERSION__", +- "@eslint/config-array": "__VERSION__", +- "@eslint/config-helpers": "__VERSION__", +- "@eslint/core": "__VERSION__", +- "@eslint/eslintrc": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@eslint/plugin-kit": "__VERSION__", +- "@humanfs/node": "__VERSION__", +- "@humanwhocodes/module-importer": "__VERSION__", +- "@humanwhocodes/retry": "__VERSION__", +- "@types/estree": "__VERSION__", +- "ajv": "__VERSION__", +- "chalk": "__VERSION__", +- "cross-spawn": "__VERSION__", +- "debug": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "eslint-scope": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__", +- "espree": "__VERSION__", +- "esquery": "__VERSION__", +- "esutils": "__VERSION__", +- "fast-deep-equal": "__VERSION__", +- "file-entry-cache": "__VERSION__", +- "find-up": "__VERSION__", +- "glob-parent": "__VERSION__", +- "ignore": "__VERSION__", +- "imurmurhash": "__VERSION__", +- "is-glob": "__VERSION__", +- "json-stable-stringify-without-jsonify": "__VERSION__", +- "lodash.merge": "__VERSION__", +- "minimatch": "__VERSION__", +- "natural-compare": "__VERSION__", +- "optionator": "__VERSION__" +- }, +- "bin": { +- "eslint": "bin/eslint.js" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://eslint.org/donate" +- }, +- "peerDependencies": { +- "jiti": "*" +- }, +- "peerDependenciesMeta": { +- "jiti": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-compat-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-compat-utils/node_modules/semver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/eslint-config-prettier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "eslint-config-prettier": "bin/cli.js" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint-config-prettier" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-import-resolver-node": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__", +- "is-core-module": "__VERSION__", +- "resolve": "__VERSION__" +- } +- }, +- "node_modules/eslint-import-resolver-node/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-module-utils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-module-utils/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-import": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@rtsao/scc": "__VERSION__", +- "array-includes": "__VERSION__", +- "array.prototype.findlastindex": "__VERSION__", +- "array.prototype.flat": "__VERSION__", +- "array.prototype.flatmap": "__VERSION__", +- "debug": "__VERSION__", +- "doctrine": "__VERSION__", +- "eslint-import-resolver-node": "__VERSION__", +- "eslint-module-utils": "__VERSION__", +- "hasown": "__VERSION__", +- "is-core-module": "__VERSION__", +- "is-glob": "__VERSION__", +- "minimatch": "__VERSION__", +- "object.fromentries": "__VERSION__", +- "object.groupby": "__VERSION__", +- "object.values": "__VERSION__", +- "semver": "__VERSION__", +- "string.prototype.trimend": "__VERSION__", +- "tsconfig-paths": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || __VERSION__ || ^8 || ^9" +- } +- }, +- "node_modules/eslint-plugin-import/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "@es-joy/jsdoccomment": "__VERSION__", +- "@es-joy/resolve.exports": "__VERSION__", +- "are-docs-informative": "__VERSION__", +- "comment-parser": "__VERSION__", +- "debug": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "espree": "__VERSION__", +- "esquery": "__VERSION__", +- "html-entities": "__VERSION__", +- "object-deep-merge": "__VERSION__", +- "parse-imports-exports": "__VERSION__", +- "semver": "__VERSION__", +- "spdx-expression-parse": "__VERSION__", +- "to-valid-identifier": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=24" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__ || __VERSION__ || __VERSION__ || __VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/comment-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/espree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/espree/-/espree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "acorn": "__VERSION__", +- "acorn-jsx": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/semver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-no-jquery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "eslint": "__VERSION__", +- "oxlint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- }, +- "oxlint": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-plugin-prettier": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prettier-linter-helpers": "__VERSION__", +- "synckit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint-plugin-prettier" +- }, +- "peerDependencies": { +- "@types/eslint": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": ">= __VERSION__ <__VERSION__ || >=__VERSION__", +- "prettier": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "@types/eslint": { +- "optional": true +- }, +- "eslint-config-prettier": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-plugin-yml": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__", +- "diff-sequences": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "eslint-compat-utils": "__VERSION__", +- "natural-compare": "__VERSION__", +- "yaml-eslint-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ota-meshi" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-scope": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "esrecurse": "__VERSION__", +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint/node_modules/find-up": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "locate-path": "__VERSION__", +- "path-exists": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/eslint/node_modules/locate-path": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-locate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/eslint/node_modules/p-locate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-limit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/espree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/espree/-/espree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "acorn": "__VERSION__", +- "acorn-jsx": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/espree/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, + "node_modules/esprima": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-__VERSION__.tgz", +@@ -4044,46 +2716,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/esquery": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/esrecurse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/estraverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/esutils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/execa": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/execa/-/execa-__VERSION__.tgz", +@@ -4148,11 +2780,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/fast-diff": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0" +- }, + "node_modules/fast-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-__VERSION__.tgz", +@@ -4190,11 +2817,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/fast-levenshtein": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/fast-uri": { + "version": "__VERSION__", + "dev": true, +@@ -4238,19 +2860,6 @@ + "bser": "__VERSION__" + } + }, +- "node_modules/file-entry-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flat-cache": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/fill-range": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-__VERSION__.tgz", +@@ -4278,20 +2887,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/flat-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flatted": "__VERSION__", +- "keyv": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/flatted": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-__VERSION__.tgz", +@@ -4299,20 +2894,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/for-each": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-callable": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/fsevents": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-__VERSION__.tgz", +@@ -4328,49 +2909,6 @@ + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/function-bind": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/function.prototype.name": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "functions-have-names": "__VERSION__", +- "hasown": "__VERSION__", +- "is-callable": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/functions-have-names": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/generator-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/gensync": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-__VERSION__", +@@ -4391,29 +2929,6 @@ + "node": "6.* || 8.* || >= 10.*" + } + }, +- "node_modules/get-intrinsic": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind-apply-helpers": "__VERSION__", +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "function-bind": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "has-symbols": "__VERSION__", +- "hasown": "__VERSION__", +- "math-intrinsics": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/get-package-type": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-__VERSION__.tgz", +@@ -4424,18 +2939,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/get-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/get-stream": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-__VERSION__.tgz", +@@ -4449,22 +2952,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/get-symbol-description": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/glob/-/glob-__VERSION__.tgz", +@@ -4483,17 +2970,6 @@ + "url": "https://github.com/sponsors/isaacs" + } + }, +- "node_modules/glob-parent": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "is-glob": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/glob/node_modules/balanced-match": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +@@ -4568,34 +3044,6 @@ + "which": "bin/which" + } + }, +- "node_modules/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/globalthis": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-properties": "__VERSION__", +- "gopd": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/globby": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globby/-/globby-__VERSION__.tgz", +@@ -4622,17 +3070,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/gopd": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/graceful-fs": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-__VERSION__.tgz", +@@ -4640,17 +3077,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/has-bigints": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/has-flag": { + "version": "__VERSION__", + "dev": true, +@@ -4659,56 +3085,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/has-property-descriptors": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-define-property": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/has-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/has-symbols": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/has-tostringtag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-symbols": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/hashery": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-__VERSION__.tgz", +@@ -4722,17 +3098,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/hasown": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "function-bind": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/hookified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +@@ -4753,21 +3118,6 @@ + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/html-entities": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/mdevils" +- }, +- { +- "type": "patreon", +- "url": "https://patreon.com/mdevils" +- } +- ], +- "license": "MIT" +- }, + "node_modules/html-escaper": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-__VERSION__.tgz", +@@ -4862,35 +3212,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/internal-slot": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "hasown": "__VERSION__", +- "side-channel": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/is-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-arrayish": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-__VERSION__.tgz", +@@ -4898,109 +3219,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/is-async-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "async-function": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-proto": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-bigint": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-bigints": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-boolean-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-callable": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-core-module": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-data-view": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-date-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-extglob": { + "version": "__VERSION__", + "dev": true, +@@ -5009,20 +3227,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-finalizationregistry": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, +@@ -5041,24 +3245,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-generator-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "generator-function": "__VERSION__", +- "get-proto": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-glob": { + "version": "__VERSION__", + "dev": true, +@@ -5070,28 +3256,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-negative-zero": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-number": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-__VERSION__.tgz", +@@ -5102,21 +3266,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-number-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-plain-object": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-__VERSION__.tgz", +@@ -5134,48 +3283,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/is-regex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "gopd": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-set": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-shared-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-stream": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-__VERSION__.tgz", +@@ -5189,96 +3296,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/is-string": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-symbol": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-symbols": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-typed-array": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakref": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/isarray": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/isexe": { + "version": "__VERSION__", + "dev": true, +@@ -6024,16 +4041,6 @@ + "js-yaml": "bin/js-yaml.js" + } + }, +- "node_modules/jsdoc-type-pratt-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/jsdom": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-__VERSION__.tgz", +@@ -6124,13 +4131,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/json-buffer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/json-parse-even-better-errors": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-__VERSION__.tgz", +@@ -6138,39 +4138,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/json-schema-traverse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json-stable-stringify-without-jsonify": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json5": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "minimist": "__VERSION__" +- }, +- "bin": { +- "json5": "lib/cli.js" +- } +- }, +- "node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "json-buffer": "__VERSION__" +- } +- }, + "node_modules/kind-of": { + "version": "__VERSION__", + "dev": true, +@@ -6196,18 +4163,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/levn": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prelude-ls": "__VERSION__", +- "type-check": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, + "node_modules/lines-and-columns": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-__VERSION__.tgz", +@@ -6228,11 +4183,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/lodash.merge": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/lodash.truncate": { + "version": "__VERSION__", + "dev": true, +@@ -6287,14 +4237,6 @@ + "tmpl": "__VERSION__" + } + }, +- "node_modules/math-intrinsics": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/mathml-tag-names": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-__VERSION__.tgz", +@@ -6380,27 +4322,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/minimatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "brace-expansion": "__VERSION__" +- }, +- "engines": { +- "node": "*" +- } +- }, +- "node_modules/minimist": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/minipass": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-__VERSION__.tgz", +@@ -6494,98 +4415,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/object-deep-merge": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/object-deep-merge/-/object-deep-merge-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/object-inspect": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/object.assign": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "has-symbols": "__VERSION__", +- "object-keys": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object.fromentries": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object.groupby": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/object.values": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/onetime": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-__VERSION__.tgz", +@@ -6602,38 +4431,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/optionator": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "deep-is": "__VERSION__", +- "fast-levenshtein": "__VERSION__", +- "levn": "__VERSION__", +- "prelude-ls": "__VERSION__", +- "type-check": "__VERSION__", +- "word-wrap": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/own-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "get-intrinsic": "__VERSION__", +- "object-keys": "__VERSION__", +- "safe-push-apply": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/p-limit": { + "version": "__VERSION__", + "dev": true, +@@ -6698,14 +4495,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/parse-imports-exports": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "parse-statements": "__VERSION__" +- } +- }, + "node_modules/parse-json": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-__VERSION__.tgz", +@@ -6725,11 +4514,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/parse-statements": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/parse5": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-__VERSION__.tgz", +@@ -6759,11 +4543,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/path-parse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/path-scurry": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-__VERSION__.tgz", +@@ -6842,14 +4621,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/possible-typed-array-names": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/postcss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-__VERSION__.tgz", +@@ -6940,41 +4711,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/prelude-ls": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/prettier": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/prettier/-/prettier-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "prettier": "bin/prettier.cjs" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/prettier/prettier?sponsor=1" +- } +- }, +- "node_modules/prettier-linter-helpers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-diff": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/pretty-format": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-__VERSION__.tgz", +@@ -7072,15 +4808,6 @@ + ], + "license": "MIT" + }, +- "node_modules/ramda": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/ramda" +- } +- }, + "node_modules/react-is-18": { + "name": "react-is", + "version": "__VERSION__", +@@ -7097,46 +4824,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/reflect.getprototypeof": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "get-proto": "__VERSION__", +- "which-builtin-type": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/regexp.prototype.flags": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "set-function-name": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/require-directory": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-__VERSION__.tgz", +@@ -7155,36 +4842,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/reserved-identifiers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/resolve": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-core-module": "__VERSION__", +- "path-parse": "__VERSION__", +- "supports-preserve-symlinks-flag": "__VERSION__" +- }, +- "bin": { +- "resolve": "bin/resolve" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/resolve-cwd": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-__VERSION__.tgz", +@@ -7243,55 +4900,6 @@ + "queue-microtask": "__VERSION__" + } + }, +- "node_modules/safe-array-concat": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "has-symbols": "__VERSION__", +- "isarray": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/safe-push-apply": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "isarray": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/safe-regex-test": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-regex": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/saxes": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-__VERSION__.tgz", +@@ -7313,49 +4921,6 @@ + "semver": "bin/semver.js" + } + }, +- "node_modules/set-function-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "function-bind": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "gopd": "__VERSION__", +- "has-property-descriptors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/set-function-name": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "functions-have-names": "__VERSION__", +- "has-property-descriptors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/set-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/shebang-command": { + "version": "__VERSION__", + "dev": true, +@@ -7375,74 +4940,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/side-channel": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "object-inspect": "__VERSION__", +- "side-channel-list": "__VERSION__", +- "side-channel-map": "__VERSION__", +- "side-channel-weakmap": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-list": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-weakmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "object-inspect": "__VERSION__", +- "side-channel-map": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/signal-exit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-__VERSION__.tgz", +@@ -7511,31 +5008,6 @@ + "source-map": "__VERSION__" + } + }, +- "node_modules/spdx-exceptions": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC-BY-3.0" +- }, +- "node_modules/spdx-expression-parse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "spdx-exceptions": "__VERSION__", +- "spdx-license-ids": "__VERSION__" +- } +- }, +- "node_modules/spdx-license-ids": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC0-1.0" +- }, + "node_modules/sprintf-js": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-__VERSION__.tgz", +@@ -7566,18 +5038,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/stop-iteration-iterator": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "internal-slot": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/string-length": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-__VERSION__.tgz", +@@ -7605,59 +5065,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/string.prototype.trim": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-data-property": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "has-property-descriptors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/string.prototype.trimend": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/string.prototype.trimstart": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, +@@ -7669,14 +5076,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/strip-bom": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/strip-final-newline": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-__VERSION__.tgz", +@@ -7893,17 +5292,6 @@ + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + } + }, +- "node_modules/supports-preserve-symlinks-flag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/svg-tags": { + "version": "__VERSION__", + "dev": true +@@ -8060,21 +5448,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/to-valid-identifier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@sindresorhus/base62": "__VERSION__", +- "reserved-identifiers": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/tough-cookie": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-__VERSION__.tgz", +@@ -8101,17 +5474,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/tsconfig-paths": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/json5": "__VERSION__", +- "json5": "__VERSION__", +- "minimist": "__VERSION__", +- "strip-bom": "__VERSION__" +- } +- }, + "node_modules/tslib": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-__VERSION__.tgz", +@@ -8120,17 +5482,6 @@ + "license": "0BSD", + "optional": true + }, +- "node_modules/type-check": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prelude-ls": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, + "node_modules/type-detect": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-__VERSION__.tgz", +@@ -8154,93 +5505,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/typed-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/typed-array-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "has-proto": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/typed-array-byte-offset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "has-proto": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "reflect.getprototypeof": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/typed-array-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "possible-typed-array-names": "__VERSION__", +- "reflect.getprototypeof": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/unbox-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-bigints": "__VERSION__", +- "has-symbols": "__VERSION__", +- "which-boxed-primitive": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/undici": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/undici/-/undici-__VERSION__.tgz", +@@ -8327,16 +5591,6 @@ + "browserslist": ">= __VERSION__" + } + }, +- "node_modules/uri-js": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "punycode": "__VERSION__" +- } +- }, + "node_modules/util-deprecate": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-__VERSION__.tgz", +@@ -8431,95 +5685,6 @@ + "node": ">= 8" + } + }, +- "node_modules/which-boxed-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-bigint": "__VERSION__", +- "is-boolean-object": "__VERSION__", +- "is-number-object": "__VERSION__", +- "is-string": "__VERSION__", +- "is-symbol": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-builtin-type": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "function.prototype.name": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "is-async-function": "__VERSION__", +- "is-date-object": "__VERSION__", +- "is-finalizationregistry": "__VERSION__", +- "is-generator-function": "__VERSION__", +- "is-regex": "__VERSION__", +- "is-weakref": "__VERSION__", +- "isarray": "__VERSION__", +- "which-boxed-primitive": "__VERSION__", +- "which-collection": "__VERSION__", +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-collection": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-map": "__VERSION__", +- "is-set": "__VERSION__", +- "is-weakmap": "__VERSION__", +- "is-weakset": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-typed-array": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "for-each": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/word-wrap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/write-file-atomic": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-__VERSION__.tgz", +@@ -8567,39 +5732,6 @@ + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC" +- }, +- "node_modules/yaml": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/yaml/-/yaml-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "yaml": "bin.mjs" +- }, +- "engines": { +- "node": ">= 14.6" +- }, +- "funding": { +- "url": "https://github.com/sponsors/eemeli" +- } +- }, +- "node_modules/yaml-eslint-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "eslint-visitor-keys": "__VERSION__", +- "yaml": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ota-meshi" +- } + }, + "node_modules/yargs": { + "version": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/package.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/package.json index dd522cfd39..8c48b1ed8c 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/package.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/package.json @@ -1,29 +1,31 @@ -@@ -8,27 +8,15 @@ +@@ -8,29 +8,15 @@ "node": ">= __VERSION__" }, "scripts": { -- "lint-js": "eslint web/modules/custom --ext .js --max-warnings=0 --no-error-on-unmatched-pattern", +- "lint-js": "eslint web/modules/custom --max-warnings=0 --no-error-on-unmatched-pattern", "lint-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\"", -- "lint": "yarn run lint-js && yarn run lint-css", -- "lint-fix-js": "eslint web/modules/custom --ext .js --no-error-on-unmatched-pattern --fix", -+ "lint": "yarn run lint-css", +- "lint": "npm run lint-js && npm run lint-css", +- "lint-fix-js": "eslint web/modules/custom --no-error-on-unmatched-pattern --fix", ++ "lint": "npm run lint-css", "lint-fix-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\" --fix", -- "lint-fix": "yarn run lint-fix-js && yarn run lint-fix-css", -+ "lint-fix": "yarn run lint-fix-css", +- "lint-fix": "npm run lint-fix-js && npm run lint-fix-css", ++ "lint-fix": "npm run lint-fix-css", "test": "jest --coverage --passWithNoTests" }, "devDependencies": { +- "@eslint/compat": "__VERSION__", +- "@eslint/js": "__VERSION__", - "@homer0/prettier-plugin-jsdoc": "__VERSION__", "jest": "__VERSION__", "jest-environment-jsdom": "__VERSION__", - "eslint": "__VERSION__", -- "eslint-config-airbnb-base": "__VERSION__", - "eslint-config-prettier": "__VERSION__", - "eslint-plugin-import": "__VERSION__", - "eslint-plugin-jsdoc": "__VERSION__", - "eslint-plugin-no-jquery": "__VERSION__", - "eslint-plugin-prettier": "__VERSION__", - "eslint-plugin-yml": "__VERSION__", +- "globals": "__VERSION__", - "prettier": "__VERSION__", "stylelint": "__VERSION__", "stylelint-config-standard": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/web/themes/custom/star_wars/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/web/themes/custom/star_wars/package-lock.json new file mode 100644 index 0000000000..e46996d210 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/web/themes/custom/star_wars/package-lock.json @@ -0,0 +1,3272 @@ +@@ -9,23 +9,11 @@ + "version": "__VERSION__", + "hasInstallScript": true, + "devDependencies": { +- "@eslint/compat": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@homer0/prettier-plugin-jsdoc": "__VERSION__", + "autoprefixer": "__VERSION__", + "chokidar-cli": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": "__VERSION__", +- "eslint-plugin-import": "__VERSION__", +- "eslint-plugin-jsdoc": "__VERSION__", +- "eslint-plugin-no-jquery": "__VERSION__", +- "eslint-plugin-prettier": "__VERSION__", +- "eslint-plugin-yml": "__VERSION__", +- "globals": "__VERSION__", + "patch-package": "__VERSION__", + "postcss": "__VERSION__", + "postcss-cli": "__VERSION__", +- "prettier": "__VERSION__", + "sass": "__VERSION__", + "stylelint": "__VERSION__", + "stylelint-config-standard": "__VERSION__", +@@ -243,286 +231,6 @@ + "url": "https://github.com/sponsors/JounQin" + } + }, +- "node_modules/@es-joy/jsdoccomment": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/estree": "__VERSION__", +- "@typescript-eslint/types": "__VERSION__", +- "comment-parser": "__VERSION__", +- "esquery": "__VERSION__", +- "jsdoc-type-pratt-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- } +- }, +- "node_modules/@es-joy/resolve.exports": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@eslint-community/eslint-utils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint-community/regexpp": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/compat": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "peerDependencies": { +- "eslint": "^8.40 || 9 || 10" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- } +- } +- }, +- "node_modules/@eslint/compat/node_modules/@eslint/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@types/json-schema": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- } +- }, +- "node_modules/@eslint/config-array": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/object-schema": "__VERSION__", +- "debug": "__VERSION__", +- "minimatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/config-helpers": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@types/json-schema": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/eslintrc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ajv": "__VERSION__", +- "debug": "__VERSION__", +- "espree": "__VERSION__", +- "globals": "__VERSION__", +- "ignore": "__VERSION__", +- "import-fresh": "__VERSION__", +- "js-yaml": "__VERSION__", +- "minimatch": "__VERSION__", +- "strip-json-comments": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/@eslint/eslintrc/node_modules/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/@eslint/js": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://eslint.org/donate" +- } +- }, +- "node_modules/@eslint/object-schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/plugin-kit": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__", +- "levn": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@homer0/prettier-plugin-jsdoc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@homer0/prettier-plugin-jsdoc/-/prettier-plugin-jsdoc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "comment-parser": "__VERSION__", +- "ramda": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "prettier": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@humanfs/types": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/node": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@humanfs/core": "__VERSION__", +- "@humanfs/types": "__VERSION__", +- "@humanwhocodes/retry": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanwhocodes/module-importer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/nzakas" +- } +- }, +- "node_modules/@humanwhocodes/retry": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/nzakas" +- } +- }, + "node_modules/@jridgewell/gen-mapping": { + "version": "__VERSION__", + "dev": true, +@@ -944,64 +652,6 @@ + "url": "https://github.com/sponsors/jonschlinkert" + } + }, +- "node_modules/@pkgr/core": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/pkgr" +- } +- }, +- "node_modules/@rtsao/scc": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@sindresorhus/base62": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/@types/estree": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/json-schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/json5": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@typescript-eslint/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/typescript-eslint" +- } +- }, + "node_modules/@yarnpkg/lockfile": { + "version": "__VERSION__", + "dev": true, +@@ -1018,29 +668,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/acorn-jsx": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "acorn": "__VERSION__ || __VERSION__ || __VERSION__" +- } +- }, +- "node_modules/ajv": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-deep-equal": "__VERSION__", +- "fast-json-stable-stringify": "__VERSION__", +- "json-schema-traverse": "__VERSION__", +- "uri-js": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/epoberezkin" +- } +- }, + "node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, +@@ -1075,55 +702,11 @@ + "node": ">= 8" + } + }, +- "node_modules/are-docs-informative": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/argparse": { + "version": "__VERSION__", + "dev": true, + "license": "Python-2.0" + }, +- "node_modules/array-buffer-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "is-array-buffer": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array-includes": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-string": "__VERSION__", +- "math-intrinsics": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/array-union": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-__VERSION__.tgz", +@@ -1134,80 +717,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/array.prototype.findlastindex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array.prototype.flat": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array.prototype.flatmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/arraybuffer.prototype.slice": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-buffer-byte-length": "__VERSION__", +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-array-buffer": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/astral-regex": { + "version": "__VERSION__", + "dev": true, +@@ -1216,14 +725,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/async-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/autoprefixer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-__VERSION__.tgz", +@@ -1261,20 +762,6 @@ + "postcss": "__VERSION__" + } + }, +- "node_modules/available-typed-arrays": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "possible-typed-array-names": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/balanced-match": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +@@ -1306,20 +793,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/brace-expansion": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "balanced-match": "__VERSION__", +- "concat-map": "__VERSION__" +- } +- }, +- "node_modules/brace-expansion/node_modules/balanced-match": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/braces": { + "version": "__VERSION__", + "dev": true, +@@ -1627,21 +1100,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/comment-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/concat-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/cosmiconfig": { + "version": "__VERSION__", + "dev": true, +@@ -1734,54 +1192,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/data-view-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/data-view-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/inspect-js" +- } +- }, +- "node_modules/data-view-byte-offset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/debug": { + "version": "__VERSION__", + "dev": true, +@@ -1806,11 +1216,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/deep-is": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/define-data-property": { + "version": "__VERSION__", + "dev": true, +@@ -1827,22 +1232,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/define-properties": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "object-keys": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/dependency-graph": { + "version": "__VERSION__", + "dev": true, +@@ -1860,16 +1249,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/diff-sequences": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/dir-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-__VERSION__.tgz", +@@ -1883,17 +1262,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/doctrine": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "esutils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/dunder-proto": { + "version": "__VERSION__", + "dev": true, +@@ -1935,90 +1303,6 @@ + "is-arrayish": "__VERSION__" + } + }, +- "node_modules/es-abstract": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-buffer-byte-length": "__VERSION__", +- "arraybuffer.prototype.slice": "__VERSION__", +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "data-view-buffer": "__VERSION__", +- "data-view-byte-length": "__VERSION__", +- "data-view-byte-offset": "__VERSION__", +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "es-set-tostringtag": "__VERSION__", +- "es-to-primitive": "__VERSION__", +- "function.prototype.name": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "get-proto": "__VERSION__", +- "get-symbol-description": "__VERSION__", +- "globalthis": "__VERSION__", +- "gopd": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "has-proto": "__VERSION__", +- "has-symbols": "__VERSION__", +- "hasown": "__VERSION__", +- "internal-slot": "__VERSION__", +- "is-array-buffer": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-data-view": "__VERSION__", +- "is-negative-zero": "__VERSION__", +- "is-regex": "__VERSION__", +- "is-set": "__VERSION__", +- "is-shared-array-buffer": "__VERSION__", +- "is-string": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "is-weakref": "__VERSION__", +- "math-intrinsics": "__VERSION__", +- "object-inspect": "__VERSION__", +- "object-keys": "__VERSION__", +- "object.assign": "__VERSION__", +- "own-keys": "__VERSION__", +- "regexp.prototype.flags": "__VERSION__", +- "safe-array-concat": "__VERSION__", +- "safe-push-apply": "__VERSION__", +- "safe-regex-test": "__VERSION__", +- "set-proto": "__VERSION__", +- "stop-iteration-iterator": "__VERSION__", +- "string.prototype.trim": "__VERSION__", +- "string.prototype.trimend": "__VERSION__", +- "string.prototype.trimstart": "__VERSION__", +- "typed-array-buffer": "__VERSION__", +- "typed-array-byte-length": "__VERSION__", +- "typed-array-byte-offset": "__VERSION__", +- "typed-array-length": "__VERSION__", +- "unbox-primitive": "__VERSION__", +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/es-abstract-get": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "is-callable": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/es-define-property": { + "version": "__VERSION__", + "dev": true, +@@ -2046,49 +1330,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/es-set-tostringtag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-shim-unscopables": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-to-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-abstract-get": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-date-object": "__VERSION__", +- "is-symbol": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/escalade": { + "version": "__VERSION__", + "dev": true, +@@ -2097,474 +1338,11 @@ + "node": "__VERSION__" + } + }, +- "node_modules/escape-string-regexp": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/eslint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint/-/eslint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@eslint-community/eslint-utils": "__VERSION__", +- "@eslint-community/regexpp": "__VERSION__", +- "@eslint/config-array": "__VERSION__", +- "@eslint/config-helpers": "__VERSION__", +- "@eslint/core": "__VERSION__", +- "@eslint/eslintrc": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@eslint/plugin-kit": "__VERSION__", +- "@humanfs/node": "__VERSION__", +- "@humanwhocodes/module-importer": "__VERSION__", +- "@humanwhocodes/retry": "__VERSION__", +- "@types/estree": "__VERSION__", +- "ajv": "__VERSION__", +- "chalk": "__VERSION__", +- "cross-spawn": "__VERSION__", +- "debug": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "eslint-scope": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__", +- "espree": "__VERSION__", +- "esquery": "__VERSION__", +- "esutils": "__VERSION__", +- "fast-deep-equal": "__VERSION__", +- "file-entry-cache": "__VERSION__", +- "find-up": "__VERSION__", +- "glob-parent": "__VERSION__", +- "ignore": "__VERSION__", +- "imurmurhash": "__VERSION__", +- "is-glob": "__VERSION__", +- "json-stable-stringify-without-jsonify": "__VERSION__", +- "lodash.merge": "__VERSION__", +- "minimatch": "__VERSION__", +- "natural-compare": "__VERSION__", +- "optionator": "__VERSION__" +- }, +- "bin": { +- "eslint": "bin/eslint.js" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://eslint.org/donate" +- }, +- "peerDependencies": { +- "jiti": "*" +- }, +- "peerDependenciesMeta": { +- "jiti": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-compat-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-compat-utils/node_modules/semver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/eslint-config-prettier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "eslint-config-prettier": "bin/cli.js" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint-config-prettier" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-import-resolver-node": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__", +- "is-core-module": "__VERSION__", +- "resolve": "__VERSION__" +- } +- }, +- "node_modules/eslint-import-resolver-node/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-module-utils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-module-utils/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-import": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@rtsao/scc": "__VERSION__", +- "array-includes": "__VERSION__", +- "array.prototype.findlastindex": "__VERSION__", +- "array.prototype.flat": "__VERSION__", +- "array.prototype.flatmap": "__VERSION__", +- "debug": "__VERSION__", +- "doctrine": "__VERSION__", +- "eslint-import-resolver-node": "__VERSION__", +- "eslint-module-utils": "__VERSION__", +- "hasown": "__VERSION__", +- "is-core-module": "__VERSION__", +- "is-glob": "__VERSION__", +- "minimatch": "__VERSION__", +- "object.fromentries": "__VERSION__", +- "object.groupby": "__VERSION__", +- "object.values": "__VERSION__", +- "semver": "__VERSION__", +- "string.prototype.trimend": "__VERSION__", +- "tsconfig-paths": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || __VERSION__ || ^8 || ^9" +- } +- }, +- "node_modules/eslint-plugin-import/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "@es-joy/jsdoccomment": "__VERSION__", +- "@es-joy/resolve.exports": "__VERSION__", +- "are-docs-informative": "__VERSION__", +- "comment-parser": "__VERSION__", +- "debug": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "espree": "__VERSION__", +- "esquery": "__VERSION__", +- "html-entities": "__VERSION__", +- "object-deep-merge": "__VERSION__", +- "parse-imports-exports": "__VERSION__", +- "semver": "__VERSION__", +- "spdx-expression-parse": "__VERSION__", +- "to-valid-identifier": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=24" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__ || __VERSION__ || __VERSION__ || __VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/espree": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "acorn": "__VERSION__", +- "acorn-jsx": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/semver": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-no-jquery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "eslint": "__VERSION__", +- "oxlint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- }, +- "oxlint": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-plugin-prettier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prettier-linter-helpers": "__VERSION__", +- "synckit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint-plugin-prettier" +- }, +- "peerDependencies": { +- "@types/eslint": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": ">= __VERSION__ <__VERSION__ || >=__VERSION__", +- "prettier": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "@types/eslint": { +- "optional": true +- }, +- "eslint-config-prettier": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-plugin-yml": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__", +- "diff-sequences": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "eslint-compat-utils": "__VERSION__", +- "natural-compare": "__VERSION__", +- "yaml-eslint-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ota-meshi" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-scope": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "esrecurse": "__VERSION__", +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint/node_modules/glob-parent": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "is-glob": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/espree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/espree/-/espree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "acorn": "__VERSION__", +- "acorn-jsx": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/espree/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/esquery": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/esrecurse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/estraverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/esutils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/fast-deep-equal": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/fast-diff": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0" +- }, + "node_modules/fast-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-__VERSION__.tgz", +@@ -2582,16 +1360,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/fast-json-stable-stringify": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/fast-levenshtein": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/fast-uri": { + "version": "__VERSION__", + "dev": true, +@@ -2625,19 +1393,6 @@ + "reusify": "__VERSION__" + } + }, +- "node_modules/file-entry-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flat-cache": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/fill-range": { + "version": "__VERSION__", + "dev": true, +@@ -2649,21 +1404,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/find-up": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "locate-path": "__VERSION__", +- "path-exists": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/find-yarn-workspace-root": { + "version": "__VERSION__", + "dev": true, +@@ -2672,20 +1412,6 @@ + "micromatch": "__VERSION__" + } + }, +- "node_modules/flat-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flatted": "__VERSION__", +- "keyv": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/flatted": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-__VERSION__.tgz", +@@ -2693,20 +1419,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/for-each": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-callable": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/fraction.js": { + "version": "__VERSION__", + "dev": true, +@@ -2755,44 +1467,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/function.prototype.name": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "functions-have-names": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "hasown": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-document.all": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/functions-have-names": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/generator-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/get-caller-file": { + "version": "__VERSION__", + "dev": true, +@@ -2836,22 +1510,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/get-symbol-description": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/glob-parent": { + "version": "__VERSION__", + "dev": true, +@@ -2887,34 +1545,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/globalthis": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-properties": "__VERSION__", +- "gopd": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/globby": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globby/-/globby-__VERSION__.tgz", +@@ -2967,17 +1597,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/has-bigints": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/has-flag": { + "version": "__VERSION__", + "dev": true, +@@ -2997,20 +1616,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/has-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/has-symbols": { + "version": "__VERSION__", + "dev": true, +@@ -3022,20 +1627,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/has-tostringtag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-symbols": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/hashery": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-__VERSION__.tgz", +@@ -3067,21 +1658,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/html-entities": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/mdevils" +- }, +- { +- "type": "patreon", +- "url": "https://patreon.com/mdevils" +- } +- ], +- "license": "MIT" +- }, + "node_modules/html-tags": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-__VERSION__.tgz", +@@ -3144,72 +1720,11 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/internal-slot": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "hasown": "__VERSION__", +- "side-channel": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/is-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-arrayish": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/is-async-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "async-function": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-proto": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-bigint": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-bigints": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-binary-path": { + "version": "__VERSION__", + "dev": true, +@@ -3221,77 +1736,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-boolean-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-callable": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-core-module": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-data-view": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-date-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-docker": { + "version": "__VERSION__", + "dev": true, +@@ -3306,20 +1750,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/is-document.all": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-extglob": { + "version": "__VERSION__", + "dev": true, +@@ -3328,20 +1758,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-finalizationregistry": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, +@@ -3350,24 +1766,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-generator-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "generator-function": "__VERSION__", +- "get-proto": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-glob": { + "version": "__VERSION__", + "dev": true, +@@ -3379,28 +1777,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-negative-zero": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-number": { + "version": "__VERSION__", + "dev": true, +@@ -3409,21 +1785,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-number-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-plain-object": { + "version": "__VERSION__", + "dev": true, +@@ -3432,133 +1793,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-regex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "gopd": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-set": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-shared-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-string": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-symbol": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-symbols": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-typed-array": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakref": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-wsl": { + "version": "__VERSION__", + "dev": true, +@@ -3608,33 +1842,11 @@ + "js-yaml": "bin/js-yaml.js" + } + }, +- "node_modules/jsdoc-type-pratt-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/json-buffer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/json-parse-even-better-errors": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/json-schema-traverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/json-stable-stringify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-__VERSION__.tgz", +@@ -3655,22 +1867,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/json-stable-stringify-without-jsonify": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json5": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "minimist": "__VERSION__" +- }, +- "bin": { +- "json5": "lib/cli.js" +- } +- }, + "node_modules/jsonfile": { + "version": "__VERSION__", + "dev": true, +@@ -3692,16 +1888,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "json-buffer": "__VERSION__" +- } +- }, + "node_modules/kind-of": { + "version": "__VERSION__", + "dev": true, +@@ -3723,18 +1909,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/levn": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prelude-ls": "__VERSION__", +- "type-check": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, + "node_modules/lilconfig": { + "version": "__VERSION__", + "dev": true, +@@ -3751,30 +1925,11 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/locate-path": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-locate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/lodash.debounce": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/lodash.merge": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/lodash.throttle": { + "version": "__VERSION__", + "dev": true, +@@ -3846,17 +2001,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/minimatch": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "brace-expansion": "__VERSION__" +- }, +- "engines": { +- "node": "*" +- } +- }, + "node_modules/minimist": { + "version": "__VERSION__", + "dev": true, +@@ -3889,11 +2033,6 @@ + "node": "^10 || ^12 || ^13.7 || ^14 || >=__VERSION__" + } + }, +- "node_modules/natural-compare": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/node-addon-api": { + "version": "__VERSION__", + "dev": true, +@@ -3900,23 +2039,6 @@ + "license": "MIT", + "optional": true + }, +- "node_modules/node-exports-info": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array.prototype.flatmap": "__VERSION__", +- "es-errors": "__VERSION__", +- "object.entries": "__VERSION__", +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/node-releases": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-__VERSION__.tgz", +@@ -3935,22 +2057,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/object-deep-merge": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/object-inspect": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/object-keys": { + "version": "__VERSION__", + "dev": true, +@@ -3959,86 +2065,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/object.assign": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "has-symbols": "__VERSION__", +- "object-keys": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object.entries": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/object.fromentries": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object.groupby": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/object.values": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/open": { + "version": "__VERSION__", + "dev": true, +@@ -4054,66 +2080,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/optionator": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "deep-is": "__VERSION__", +- "fast-levenshtein": "__VERSION__", +- "levn": "__VERSION__", +- "prelude-ls": "__VERSION__", +- "type-check": "__VERSION__", +- "word-wrap": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/own-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "get-intrinsic": "__VERSION__", +- "object-keys": "__VERSION__", +- "safe-push-apply": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/p-limit": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "yocto-queue": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/p-locate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-limit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/p-try": { + "version": "__VERSION__", + "dev": true, +@@ -4133,14 +2099,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/parse-imports-exports": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "parse-statements": "__VERSION__" +- } +- }, + "node_modules/parse-json": { + "version": "__VERSION__", + "dev": true, +@@ -4158,11 +2116,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/parse-statements": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/patch-package": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-__VERSION__.tgz", +@@ -4221,14 +2174,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/path-exists": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/path-key": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-__VERSION__.tgz", +@@ -4239,11 +2184,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/path-parse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/path-type": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-__VERSION__.tgz", +@@ -4278,14 +2218,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/possible-typed-array-names": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/postcss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-__VERSION__.tgz", +@@ -4569,41 +2501,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/prelude-ls": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/prettier": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/prettier/-/prettier-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "prettier": "bin/prettier.cjs" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/prettier/prettier?sponsor=1" +- } +- }, +- "node_modules/prettier-linter-helpers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-diff": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/pretty-hrtime": { + "version": "__VERSION__", + "dev": true, +@@ -4612,14 +2509,6 @@ + "node": ">= 0.8" + } + }, +- "node_modules/punycode": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/qified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/qified/-/qified-__VERSION__.tgz", +@@ -4661,15 +2550,6 @@ + ], + "license": "MIT" + }, +- "node_modules/ramda": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/ramda" +- } +- }, + "node_modules/read-cache": { + "version": "__VERSION__", + "dev": true, +@@ -4689,46 +2569,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/reflect.getprototypeof": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "get-proto": "__VERSION__", +- "which-builtin-type": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/regexp.prototype.flags": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "set-function-name": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/require-directory": { + "version": "__VERSION__", + "dev": true, +@@ -4750,39 +2590,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/reserved-identifiers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/resolve": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "is-core-module": "__VERSION__", +- "node-exports-info": "__VERSION__", +- "object-keys": "__VERSION__", +- "path-parse": "__VERSION__", +- "supports-preserve-symlinks-flag": "__VERSION__" +- }, +- "bin": { +- "resolve": "bin/resolve" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/resolve-from": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-__VERSION__.tgz", +@@ -4828,55 +2635,6 @@ + "queue-microtask": "__VERSION__" + } + }, +- "node_modules/safe-array-concat": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "has-symbols": "__VERSION__", +- "isarray": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/safe-push-apply": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "isarray": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/safe-regex-test": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-regex": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/sass": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/sass/-/sass-__VERSION__.tgz", +@@ -4924,14 +2682,6 @@ + "url": "https://paulmillr.com/funding/" + } + }, +- "node_modules/semver": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- } +- }, + "node_modules/set-blocking": { + "version": "__VERSION__", + "dev": true, +@@ -4953,33 +2703,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/set-function-name": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "functions-have-names": "__VERSION__", +- "has-property-descriptors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/set-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/shebang-command": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-__VERSION__.tgz", +@@ -5003,74 +2726,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/side-channel": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "object-inspect": "__VERSION__", +- "side-channel-list": "__VERSION__", +- "side-channel-map": "__VERSION__", +- "side-channel-weakmap": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-list": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-weakmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "object-inspect": "__VERSION__", +- "side-channel-map": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/signal-exit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-__VERSION__.tgz", +@@ -5133,43 +2788,6 @@ + "source-map": "__VERSION__" + } + }, +- "node_modules/spdx-exceptions": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC-BY-3.0" +- }, +- "node_modules/spdx-expression-parse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "spdx-exceptions": "__VERSION__", +- "spdx-license-ids": "__VERSION__" +- } +- }, +- "node_modules/spdx-license-ids": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC0-1.0" +- }, +- "node_modules/stop-iteration-iterator": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "internal-slot": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/string-width": { + "version": "__VERSION__", + "dev": true, +@@ -5183,60 +2801,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/string.prototype.trim": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-data-property": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/string.prototype.trimend": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/string.prototype.trimstart": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, +@@ -5248,25 +2812,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/strip-bom": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/strip-json-comments": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/stylelint": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-__VERSION__.tgz", +@@ -5525,35 +3070,10 @@ + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + } + }, +- "node_modules/supports-preserve-symlinks-flag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/svg-tags": { + "version": "__VERSION__", + "dev": true + }, +- "node_modules/synckit": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@pkgr/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/synckit" +- } +- }, + "node_modules/table": { + "version": "__VERSION__", + "dev": true, +@@ -5676,130 +3196,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/to-valid-identifier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@sindresorhus/base62": "__VERSION__", +- "reserved-identifiers": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/tsconfig-paths": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/json5": "__VERSION__", +- "json5": "__VERSION__", +- "minimist": "__VERSION__", +- "strip-bom": "__VERSION__" +- } +- }, +- "node_modules/type-check": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prelude-ls": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/typed-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/typed-array-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "has-proto": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/typed-array-byte-offset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "has-proto": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "reflect.getprototypeof": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/typed-array-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "possible-typed-array-names": "__VERSION__", +- "reflect.getprototypeof": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/unbox-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-bigints": "__VERSION__", +- "has-symbols": "__VERSION__", +- "which-boxed-primitive": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/universalify": { + "version": "__VERSION__", + "dev": true, +@@ -5839,14 +3235,6 @@ + "browserslist": ">= __VERSION__" + } + }, +- "node_modules/uri-js": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "punycode": "__VERSION__" +- } +- }, + "node_modules/util-deprecate": { + "version": "__VERSION__", + "dev": true, +@@ -5863,100 +3251,11 @@ + "which": "bin/which" + } + }, +- "node_modules/which-boxed-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-bigint": "__VERSION__", +- "is-boolean-object": "__VERSION__", +- "is-number-object": "__VERSION__", +- "is-string": "__VERSION__", +- "is-symbol": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-builtin-type": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "function.prototype.name": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "is-async-function": "__VERSION__", +- "is-date-object": "__VERSION__", +- "is-finalizationregistry": "__VERSION__", +- "is-generator-function": "__VERSION__", +- "is-regex": "__VERSION__", +- "is-weakref": "__VERSION__", +- "isarray": "__VERSION__", +- "which-boxed-primitive": "__VERSION__", +- "which-collection": "__VERSION__", +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-collection": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-map": "__VERSION__", +- "is-set": "__VERSION__", +- "is-weakmap": "__VERSION__", +- "is-weakset": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/which-module": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, +- "node_modules/which-typed-array": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "for-each": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/word-wrap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/wrap-ansi": { + "version": "__VERSION__", + "dev": true, +@@ -6072,23 +3371,6 @@ + "url": "https://github.com/sponsors/eemeli" + } + }, +- "node_modules/yaml-eslint-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "eslint-visitor-keys": "__VERSION__", +- "yaml": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ota-meshi" +- } +- }, + "node_modules/yargs": { + "version": "__VERSION__", + "dev": true, +@@ -6214,17 +3496,6 @@ + }, + "engines": { + "node": "__VERSION__" +- } +- }, +- "node_modules/yocto-queue": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" + } + } + } diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/web/themes/custom/star_wars/package.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/web/themes/custom/star_wars/package.json new file mode 100644 index 0000000000..89c2302583 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint/web/themes/custom/star_wars/package.json @@ -0,0 +1,39 @@ +@@ -4,23 +4,11 @@ + "private": true, + "description": "NodeJS dependencies for star wars project", + "devDependencies": { +- "@eslint/compat": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@homer0/prettier-plugin-jsdoc": "__VERSION__", + "autoprefixer": "__VERSION__", + "chokidar-cli": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": "__VERSION__", +- "eslint-plugin-import": "__VERSION__", +- "eslint-plugin-jsdoc": "__VERSION__", +- "eslint-plugin-no-jquery": "__VERSION__", +- "eslint-plugin-prettier": "__VERSION__", +- "eslint-plugin-yml": "__VERSION__", +- "globals": "__VERSION__", + "patch-package": "__VERSION__", + "postcss": "__VERSION__", + "postcss-cli": "__VERSION__", +- "prettier": "__VERSION__", + "sass": "__VERSION__", + "stylelint": "__VERSION__", + "stylelint-config-standard": "__VERSION__", +@@ -42,12 +30,10 @@ + "copy": "npm run copy:images && npm run copy:fonts", + "copy:fonts": "mkdir -p build/fonts && cp -r fonts/* build/fonts/ 2>/dev/null || true", + "copy:images": "mkdir -p build/images && cp -r images/* build/images/ 2>/dev/null || true", +- "lint": "npm run lint-js && npm run lint-css", ++ "lint": "npm run lint-css", + "lint-css": "stylelint 'scss/**/*.scss'", + "lint-css-fix": "stylelint 'scss/**/*.scss' --fix", +- "lint-fix": "npm run lint-js-fix && npm run lint-css-fix", +- "lint-js": "eslint 'js/**/*.js' --ignore-pattern '*.min.js'", +- "lint-js-fix": "eslint 'js/**/*.js' --ignore-pattern '*.min.js' --fix", ++ "lint-fix": "npm run lint-css-fix", + "postcss:dev": "postcss build/css/star_wars.min.css -o build/css/star_wars.min.css --map", + "postcss:prod": "postcss build/css/star_wars.min.css -o build/css/star_wars.min.css --no-map", + "postinstall": "patch-package", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/-eslint.config.mjs b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/-eslint.config.mjs new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/.circleci/config.yml index b0a43a4f35..908c0584df 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/.circleci/config.yml @@ -164,12 +164,6 @@ jobs: name: Lint code with Gherkin Lint command: docker compose exec -T cli vendor/bin/gherkinlint lint tests/behat/features || [ "${VORTEX_CI_GHERKIN_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - - run: - name: Lint theme code with NodeJS linters - command: | - [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - # Audit job runs in its own workflow, independently of the commit workflow. audit: <<: *runner_config @@ -179,14 +173,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -201,6 +196,28 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -253,10 +270,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -298,7 +315,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -307,7 +324,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -315,27 +332,29 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -344,14 +363,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -360,7 +379,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -372,10 +391,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -384,9 +404,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/package-lock.json new file mode 100644 index 0000000000..51325322d4 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/package-lock.json @@ -0,0 +1,3437 @@ +@@ -7,20 +7,8 @@ + "name": "star_wars", + "license": "proprietary", + "devDependencies": { +- "@eslint/compat": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@homer0/prettier-plugin-jsdoc": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": "__VERSION__", +- "eslint-plugin-import": "__VERSION__", +- "eslint-plugin-jsdoc": "__VERSION__", +- "eslint-plugin-no-jquery": "__VERSION__", +- "eslint-plugin-prettier": "__VERSION__", +- "eslint-plugin-yml": "__VERSION__", +- "globals": "__VERSION__", + "jest": "__VERSION__", + "jest-environment-jsdom": "__VERSION__", +- "prettier": "__VERSION__", + "stylelint": "__VERSION__", + "stylelint-config-standard": "__VERSION__", + "stylelint-order": "__VERSION__" +@@ -939,215 +927,6 @@ + "tslib": "__VERSION__" + } + }, +- "node_modules/@es-joy/jsdoccomment": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/estree": "__VERSION__", +- "@typescript-eslint/types": "__VERSION__", +- "comment-parser": "__VERSION__", +- "esquery": "__VERSION__", +- "jsdoc-type-pratt-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- } +- }, +- "node_modules/@es-joy/jsdoccomment/node_modules/comment-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/@es-joy/resolve.exports": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@eslint-community/eslint-utils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint-community/regexpp": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/compat": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "peerDependencies": { +- "eslint": "^8.40 || 9 || 10" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- } +- } +- }, +- "node_modules/@eslint/compat/node_modules/@eslint/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@types/json-schema": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- } +- }, +- "node_modules/@eslint/config-array": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/object-schema": "__VERSION__", +- "debug": "__VERSION__", +- "minimatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/config-helpers": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@types/json-schema": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/eslintrc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ajv": "__VERSION__", +- "debug": "__VERSION__", +- "espree": "__VERSION__", +- "globals": "__VERSION__", +- "ignore": "__VERSION__", +- "import-fresh": "__VERSION__", +- "js-yaml": "__VERSION__", +- "minimatch": "__VERSION__", +- "strip-json-comments": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/@eslint/eslintrc/node_modules/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/@eslint/js": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://eslint.org/donate" +- } +- }, +- "node_modules/@eslint/object-schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/plugin-kit": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__", +- "levn": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/@exodus/bytes": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-__VERSION__.tgz", +@@ -1166,87 +945,6 @@ + } + } + }, +- "node_modules/@homer0/prettier-plugin-jsdoc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@homer0/prettier-plugin-jsdoc/-/prettier-plugin-jsdoc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "comment-parser": "__VERSION__", +- "ramda": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "prettier": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@humanfs/types": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/node": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@humanfs/core": "__VERSION__", +- "@humanfs/types": "__VERSION__", +- "@humanwhocodes/retry": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanwhocodes/module-importer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/nzakas" +- } +- }, +- "node_modules/@humanwhocodes/retry": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/nzakas" +- } +- }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-__VERSION__.tgz", +@@ -1797,11 +1495,6 @@ + "url": "https://opencollective.com/pkgr" + } + }, +- "node_modules/@rtsao/scc": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@sinclair/typebox": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-__VERSION__.tgz", +@@ -1809,17 +1502,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/@sindresorhus/base62": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/@sinonjs/commons": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-__VERSION__.tgz", +@@ -1896,13 +1578,6 @@ + "@babel/types": "__VERSION__" + } + }, +- "node_modules/@types/estree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-__VERSION__.tgz", +@@ -1942,18 +1617,6 @@ + "parse5": "__VERSION__" + } + }, +- "node_modules/@types/json-schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/json5": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@types/node": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/node/-/node-__VERSION__.tgz", +@@ -1995,20 +1658,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/@typescript-eslint/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/typescript-eslint" +- } +- }, + "node_modules/@ungap/structured-clone": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-__VERSION__.tgz", +@@ -2359,46 +2008,6 @@ + "win32" + ] + }, +- "node_modules/acorn": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/acorn/-/acorn-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "acorn": "bin/acorn" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/acorn-jsx": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "acorn": "__VERSION__ || __VERSION__ || __VERSION__" +- } +- }, +- "node_modules/ajv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/ajv/-/ajv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-deep-equal": "__VERSION__", +- "fast-json-stable-stringify": "__VERSION__", +- "json-schema-traverse": "__VERSION__", +- "uri-js": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/epoberezkin" +- } +- }, + "node_modules/ansi-escapes": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-__VERSION__.tgz", +@@ -2464,14 +2073,6 @@ + "url": "https://github.com/sponsors/jonschlinkert" + } + }, +- "node_modules/are-docs-informative": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/argparse": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-__VERSION__.tgz", +@@ -2479,42 +2080,6 @@ + "dev": true, + "license": "Python-2.0" + }, +- "node_modules/array-buffer-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "is-array-buffer": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array-includes": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-string": "__VERSION__", +- "math-intrinsics": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/array-union": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-__VERSION__.tgz", +@@ -2525,80 +2090,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/array.prototype.findlastindex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array.prototype.flat": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array.prototype.flatmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/arraybuffer.prototype.slice": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-buffer-byte-length": "__VERSION__", +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-array-buffer": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/astral-regex": { + "version": "__VERSION__", + "dev": true, +@@ -2607,28 +2098,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/async-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/available-typed-arrays": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "possible-typed-array-names": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/babel-jest": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-__VERSION__.tgz", +@@ -2728,13 +2197,6 @@ + "@babel/core": "__VERSION__ || __VERSION__" + } + }, +- "node_modules/balanced-match": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/baseline-browser-mapping": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-__VERSION__.tgz", +@@ -2758,15 +2220,6 @@ + "require-from-string": "__VERSION__" + } + }, +- "node_modules/brace-expansion": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "balanced-match": "__VERSION__", +- "concat-map": "__VERSION__" +- } +- }, + "node_modules/braces": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/braces/-/braces-__VERSION__.tgz", +@@ -2855,50 +2308,6 @@ + "@keyv/serialize": "__VERSION__" + } + }, +- "node_modules/call-bind": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind-apply-helpers": "__VERSION__", +- "es-define-property": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "set-function-length": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/call-bind-apply-helpers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "function-bind": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/call-bound": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind-apply-helpers": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/callsites": { + "version": "__VERSION__", + "dev": true, +@@ -3058,21 +2467,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/comment-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/concat-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/convert-source-map": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-__VERSION__.tgz", +@@ -3169,54 +2563,6 @@ + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/data-view-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/data-view-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/inspect-js" +- } +- }, +- "node_modules/data-view-byte-offset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/debug": { + "version": "__VERSION__", + "dev": true, +@@ -3255,11 +2601,6 @@ + } + } + }, +- "node_modules/deep-is": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/deepmerge": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-__VERSION__.tgz", +@@ -3270,38 +2611,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/define-data-property": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "gopd": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/define-properties": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "object-keys": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/detect-newline": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-__VERSION__.tgz", +@@ -3312,16 +2621,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/diff-sequences": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/dir-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-__VERSION__.tgz", +@@ -3335,30 +2634,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/doctrine": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "esutils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/dunder-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind-apply-helpers": "__VERSION__", +- "es-errors": "__VERSION__", +- "gopd": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/electron-to-chromium": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-__VERSION__.tgz", +@@ -3417,141 +2692,6 @@ + "is-arrayish": "__VERSION__" + } + }, +- "node_modules/es-abstract": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-buffer-byte-length": "__VERSION__", +- "arraybuffer.prototype.slice": "__VERSION__", +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "data-view-buffer": "__VERSION__", +- "data-view-byte-length": "__VERSION__", +- "data-view-byte-offset": "__VERSION__", +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "es-set-tostringtag": "__VERSION__", +- "es-to-primitive": "__VERSION__", +- "function.prototype.name": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "get-proto": "__VERSION__", +- "get-symbol-description": "__VERSION__", +- "globalthis": "__VERSION__", +- "gopd": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "has-proto": "__VERSION__", +- "has-symbols": "__VERSION__", +- "hasown": "__VERSION__", +- "internal-slot": "__VERSION__", +- "is-array-buffer": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-data-view": "__VERSION__", +- "is-negative-zero": "__VERSION__", +- "is-regex": "__VERSION__", +- "is-set": "__VERSION__", +- "is-shared-array-buffer": "__VERSION__", +- "is-string": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "is-weakref": "__VERSION__", +- "math-intrinsics": "__VERSION__", +- "object-inspect": "__VERSION__", +- "object-keys": "__VERSION__", +- "object.assign": "__VERSION__", +- "own-keys": "__VERSION__", +- "regexp.prototype.flags": "__VERSION__", +- "safe-array-concat": "__VERSION__", +- "safe-push-apply": "__VERSION__", +- "safe-regex-test": "__VERSION__", +- "set-proto": "__VERSION__", +- "stop-iteration-iterator": "__VERSION__", +- "string.prototype.trim": "__VERSION__", +- "string.prototype.trimend": "__VERSION__", +- "string.prototype.trimstart": "__VERSION__", +- "typed-array-buffer": "__VERSION__", +- "typed-array-byte-length": "__VERSION__", +- "typed-array-byte-offset": "__VERSION__", +- "typed-array-length": "__VERSION__", +- "unbox-primitive": "__VERSION__", +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/es-define-property": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-errors": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-object-atoms": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-set-tostringtag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-shim-unscopables": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-to-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-callable": "__VERSION__", +- "is-date-object": "__VERSION__", +- "is-symbol": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/escalade": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-__VERSION__.tgz", +@@ -3562,474 +2702,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/escape-string-regexp": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/eslint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint/-/eslint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@eslint-community/eslint-utils": "__VERSION__", +- "@eslint-community/regexpp": "__VERSION__", +- "@eslint/config-array": "__VERSION__", +- "@eslint/config-helpers": "__VERSION__", +- "@eslint/core": "__VERSION__", +- "@eslint/eslintrc": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@eslint/plugin-kit": "__VERSION__", +- "@humanfs/node": "__VERSION__", +- "@humanwhocodes/module-importer": "__VERSION__", +- "@humanwhocodes/retry": "__VERSION__", +- "@types/estree": "__VERSION__", +- "ajv": "__VERSION__", +- "chalk": "__VERSION__", +- "cross-spawn": "__VERSION__", +- "debug": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "eslint-scope": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__", +- "espree": "__VERSION__", +- "esquery": "__VERSION__", +- "esutils": "__VERSION__", +- "fast-deep-equal": "__VERSION__", +- "file-entry-cache": "__VERSION__", +- "find-up": "__VERSION__", +- "glob-parent": "__VERSION__", +- "ignore": "__VERSION__", +- "imurmurhash": "__VERSION__", +- "is-glob": "__VERSION__", +- "json-stable-stringify-without-jsonify": "__VERSION__", +- "lodash.merge": "__VERSION__", +- "minimatch": "__VERSION__", +- "natural-compare": "__VERSION__", +- "optionator": "__VERSION__" +- }, +- "bin": { +- "eslint": "bin/eslint.js" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://eslint.org/donate" +- }, +- "peerDependencies": { +- "jiti": "*" +- }, +- "peerDependenciesMeta": { +- "jiti": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-compat-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-compat-utils/node_modules/semver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/eslint-config-prettier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "eslint-config-prettier": "bin/cli.js" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint-config-prettier" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-import-resolver-node": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__", +- "is-core-module": "__VERSION__", +- "resolve": "__VERSION__" +- } +- }, +- "node_modules/eslint-import-resolver-node/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-module-utils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-module-utils/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-import": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@rtsao/scc": "__VERSION__", +- "array-includes": "__VERSION__", +- "array.prototype.findlastindex": "__VERSION__", +- "array.prototype.flat": "__VERSION__", +- "array.prototype.flatmap": "__VERSION__", +- "debug": "__VERSION__", +- "doctrine": "__VERSION__", +- "eslint-import-resolver-node": "__VERSION__", +- "eslint-module-utils": "__VERSION__", +- "hasown": "__VERSION__", +- "is-core-module": "__VERSION__", +- "is-glob": "__VERSION__", +- "minimatch": "__VERSION__", +- "object.fromentries": "__VERSION__", +- "object.groupby": "__VERSION__", +- "object.values": "__VERSION__", +- "semver": "__VERSION__", +- "string.prototype.trimend": "__VERSION__", +- "tsconfig-paths": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || __VERSION__ || ^8 || ^9" +- } +- }, +- "node_modules/eslint-plugin-import/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "@es-joy/jsdoccomment": "__VERSION__", +- "@es-joy/resolve.exports": "__VERSION__", +- "are-docs-informative": "__VERSION__", +- "comment-parser": "__VERSION__", +- "debug": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "espree": "__VERSION__", +- "esquery": "__VERSION__", +- "html-entities": "__VERSION__", +- "object-deep-merge": "__VERSION__", +- "parse-imports-exports": "__VERSION__", +- "semver": "__VERSION__", +- "spdx-expression-parse": "__VERSION__", +- "to-valid-identifier": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=24" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__ || __VERSION__ || __VERSION__ || __VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/comment-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/espree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/espree/-/espree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "acorn": "__VERSION__", +- "acorn-jsx": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/semver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-no-jquery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "eslint": "__VERSION__", +- "oxlint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- }, +- "oxlint": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-plugin-prettier": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prettier-linter-helpers": "__VERSION__", +- "synckit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint-plugin-prettier" +- }, +- "peerDependencies": { +- "@types/eslint": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": ">= __VERSION__ <__VERSION__ || >=__VERSION__", +- "prettier": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "@types/eslint": { +- "optional": true +- }, +- "eslint-config-prettier": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-plugin-yml": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__", +- "diff-sequences": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "eslint-compat-utils": "__VERSION__", +- "natural-compare": "__VERSION__", +- "yaml-eslint-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ota-meshi" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-scope": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "esrecurse": "__VERSION__", +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint/node_modules/find-up": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "locate-path": "__VERSION__", +- "path-exists": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/eslint/node_modules/locate-path": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-locate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/eslint/node_modules/p-locate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-limit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/espree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/espree/-/espree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "acorn": "__VERSION__", +- "acorn-jsx": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/espree/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, + "node_modules/esprima": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-__VERSION__.tgz", +@@ -4044,46 +2716,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/esquery": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/esrecurse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/estraverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/esutils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/execa": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/execa/-/execa-__VERSION__.tgz", +@@ -4148,11 +2780,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/fast-diff": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0" +- }, + "node_modules/fast-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-__VERSION__.tgz", +@@ -4190,11 +2817,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/fast-levenshtein": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/fast-uri": { + "version": "__VERSION__", + "dev": true, +@@ -4238,19 +2860,6 @@ + "bser": "__VERSION__" + } + }, +- "node_modules/file-entry-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flat-cache": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/fill-range": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-__VERSION__.tgz", +@@ -4278,20 +2887,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/flat-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flatted": "__VERSION__", +- "keyv": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/flatted": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-__VERSION__.tgz", +@@ -4299,20 +2894,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/for-each": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-callable": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/fsevents": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-__VERSION__.tgz", +@@ -4328,49 +2909,6 @@ + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/function-bind": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/function.prototype.name": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "functions-have-names": "__VERSION__", +- "hasown": "__VERSION__", +- "is-callable": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/functions-have-names": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/generator-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/gensync": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-__VERSION__", +@@ -4391,29 +2929,6 @@ + "node": "6.* || 8.* || >= 10.*" + } + }, +- "node_modules/get-intrinsic": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind-apply-helpers": "__VERSION__", +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "function-bind": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "has-symbols": "__VERSION__", +- "hasown": "__VERSION__", +- "math-intrinsics": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/get-package-type": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-__VERSION__.tgz", +@@ -4424,18 +2939,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/get-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/get-stream": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-__VERSION__.tgz", +@@ -4449,22 +2952,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/get-symbol-description": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/glob/-/glob-__VERSION__.tgz", +@@ -4483,17 +2970,6 @@ + "url": "https://github.com/sponsors/isaacs" + } + }, +- "node_modules/glob-parent": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "is-glob": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/glob/node_modules/balanced-match": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +@@ -4568,34 +3044,6 @@ + "which": "bin/which" + } + }, +- "node_modules/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/globalthis": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-properties": "__VERSION__", +- "gopd": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/globby": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globby/-/globby-__VERSION__.tgz", +@@ -4622,17 +3070,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/gopd": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/graceful-fs": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-__VERSION__.tgz", +@@ -4640,17 +3077,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/has-bigints": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/has-flag": { + "version": "__VERSION__", + "dev": true, +@@ -4659,56 +3085,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/has-property-descriptors": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-define-property": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/has-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/has-symbols": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/has-tostringtag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-symbols": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/hashery": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-__VERSION__.tgz", +@@ -4722,17 +3098,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/hasown": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "function-bind": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/hookified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +@@ -4753,21 +3118,6 @@ + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/html-entities": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/mdevils" +- }, +- { +- "type": "patreon", +- "url": "https://patreon.com/mdevils" +- } +- ], +- "license": "MIT" +- }, + "node_modules/html-escaper": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-__VERSION__.tgz", +@@ -4862,35 +3212,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/internal-slot": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "hasown": "__VERSION__", +- "side-channel": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/is-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-arrayish": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-__VERSION__.tgz", +@@ -4898,109 +3219,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/is-async-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "async-function": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-proto": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-bigint": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-bigints": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-boolean-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-callable": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-core-module": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-data-view": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-date-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-extglob": { + "version": "__VERSION__", + "dev": true, +@@ -5009,20 +3227,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-finalizationregistry": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, +@@ -5041,24 +3245,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-generator-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "generator-function": "__VERSION__", +- "get-proto": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-glob": { + "version": "__VERSION__", + "dev": true, +@@ -5070,28 +3256,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-negative-zero": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-number": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-__VERSION__.tgz", +@@ -5102,21 +3266,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-number-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-plain-object": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-__VERSION__.tgz", +@@ -5134,48 +3283,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/is-regex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "gopd": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-set": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-shared-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-stream": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-__VERSION__.tgz", +@@ -5189,96 +3296,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/is-string": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-symbol": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-symbols": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-typed-array": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakref": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/isarray": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/isexe": { + "version": "__VERSION__", + "dev": true, +@@ -6024,16 +4041,6 @@ + "js-yaml": "bin/js-yaml.js" + } + }, +- "node_modules/jsdoc-type-pratt-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/jsdom": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-__VERSION__.tgz", +@@ -6124,13 +4131,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/json-buffer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/json-parse-even-better-errors": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-__VERSION__.tgz", +@@ -6138,39 +4138,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/json-schema-traverse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json-stable-stringify-without-jsonify": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json5": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "minimist": "__VERSION__" +- }, +- "bin": { +- "json5": "lib/cli.js" +- } +- }, +- "node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "json-buffer": "__VERSION__" +- } +- }, + "node_modules/kind-of": { + "version": "__VERSION__", + "dev": true, +@@ -6196,18 +4163,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/levn": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prelude-ls": "__VERSION__", +- "type-check": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, + "node_modules/lines-and-columns": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-__VERSION__.tgz", +@@ -6228,11 +4183,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/lodash.merge": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/lodash.truncate": { + "version": "__VERSION__", + "dev": true, +@@ -6287,14 +4237,6 @@ + "tmpl": "__VERSION__" + } + }, +- "node_modules/math-intrinsics": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/mathml-tag-names": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-__VERSION__.tgz", +@@ -6380,27 +4322,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/minimatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "brace-expansion": "__VERSION__" +- }, +- "engines": { +- "node": "*" +- } +- }, +- "node_modules/minimist": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/minipass": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-__VERSION__.tgz", +@@ -6494,98 +4415,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/object-deep-merge": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/object-deep-merge/-/object-deep-merge-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/object-inspect": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/object.assign": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "has-symbols": "__VERSION__", +- "object-keys": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object.fromentries": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object.groupby": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/object.values": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/onetime": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-__VERSION__.tgz", +@@ -6602,38 +4431,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/optionator": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "deep-is": "__VERSION__", +- "fast-levenshtein": "__VERSION__", +- "levn": "__VERSION__", +- "prelude-ls": "__VERSION__", +- "type-check": "__VERSION__", +- "word-wrap": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/own-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "get-intrinsic": "__VERSION__", +- "object-keys": "__VERSION__", +- "safe-push-apply": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/p-limit": { + "version": "__VERSION__", + "dev": true, +@@ -6698,14 +4495,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/parse-imports-exports": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "parse-statements": "__VERSION__" +- } +- }, + "node_modules/parse-json": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-__VERSION__.tgz", +@@ -6725,11 +4514,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/parse-statements": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/parse5": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-__VERSION__.tgz", +@@ -6759,11 +4543,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/path-parse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/path-scurry": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-__VERSION__.tgz", +@@ -6842,14 +4621,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/possible-typed-array-names": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/postcss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-__VERSION__.tgz", +@@ -6940,41 +4711,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/prelude-ls": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/prettier": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/prettier/-/prettier-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "prettier": "bin/prettier.cjs" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/prettier/prettier?sponsor=1" +- } +- }, +- "node_modules/prettier-linter-helpers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-diff": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/pretty-format": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-__VERSION__.tgz", +@@ -7072,15 +4808,6 @@ + ], + "license": "MIT" + }, +- "node_modules/ramda": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/ramda" +- } +- }, + "node_modules/react-is-18": { + "name": "react-is", + "version": "__VERSION__", +@@ -7097,46 +4824,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/reflect.getprototypeof": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "get-proto": "__VERSION__", +- "which-builtin-type": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/regexp.prototype.flags": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "set-function-name": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/require-directory": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-__VERSION__.tgz", +@@ -7155,36 +4842,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/reserved-identifiers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/resolve": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-core-module": "__VERSION__", +- "path-parse": "__VERSION__", +- "supports-preserve-symlinks-flag": "__VERSION__" +- }, +- "bin": { +- "resolve": "bin/resolve" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/resolve-cwd": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-__VERSION__.tgz", +@@ -7243,55 +4900,6 @@ + "queue-microtask": "__VERSION__" + } + }, +- "node_modules/safe-array-concat": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "has-symbols": "__VERSION__", +- "isarray": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/safe-push-apply": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "isarray": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/safe-regex-test": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-regex": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/saxes": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-__VERSION__.tgz", +@@ -7313,49 +4921,6 @@ + "semver": "bin/semver.js" + } + }, +- "node_modules/set-function-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "function-bind": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "gopd": "__VERSION__", +- "has-property-descriptors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/set-function-name": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "functions-have-names": "__VERSION__", +- "has-property-descriptors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/set-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/shebang-command": { + "version": "__VERSION__", + "dev": true, +@@ -7375,74 +4940,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/side-channel": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "object-inspect": "__VERSION__", +- "side-channel-list": "__VERSION__", +- "side-channel-map": "__VERSION__", +- "side-channel-weakmap": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-list": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-weakmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "object-inspect": "__VERSION__", +- "side-channel-map": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/signal-exit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-__VERSION__.tgz", +@@ -7511,31 +5008,6 @@ + "source-map": "__VERSION__" + } + }, +- "node_modules/spdx-exceptions": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC-BY-3.0" +- }, +- "node_modules/spdx-expression-parse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "spdx-exceptions": "__VERSION__", +- "spdx-license-ids": "__VERSION__" +- } +- }, +- "node_modules/spdx-license-ids": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC0-1.0" +- }, + "node_modules/sprintf-js": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-__VERSION__.tgz", +@@ -7566,18 +5038,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/stop-iteration-iterator": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "internal-slot": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/string-length": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-__VERSION__.tgz", +@@ -7605,59 +5065,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/string.prototype.trim": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-data-property": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "has-property-descriptors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/string.prototype.trimend": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/string.prototype.trimstart": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, +@@ -7669,14 +5076,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/strip-bom": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/strip-final-newline": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-__VERSION__.tgz", +@@ -7893,17 +5292,6 @@ + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + } + }, +- "node_modules/supports-preserve-symlinks-flag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/svg-tags": { + "version": "__VERSION__", + "dev": true +@@ -8060,21 +5448,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/to-valid-identifier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@sindresorhus/base62": "__VERSION__", +- "reserved-identifiers": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/tough-cookie": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-__VERSION__.tgz", +@@ -8101,17 +5474,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/tsconfig-paths": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/json5": "__VERSION__", +- "json5": "__VERSION__", +- "minimist": "__VERSION__", +- "strip-bom": "__VERSION__" +- } +- }, + "node_modules/tslib": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-__VERSION__.tgz", +@@ -8120,17 +5482,6 @@ + "license": "0BSD", + "optional": true + }, +- "node_modules/type-check": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prelude-ls": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, + "node_modules/type-detect": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-__VERSION__.tgz", +@@ -8154,93 +5505,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/typed-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/typed-array-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "has-proto": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/typed-array-byte-offset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "has-proto": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "reflect.getprototypeof": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/typed-array-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "possible-typed-array-names": "__VERSION__", +- "reflect.getprototypeof": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/unbox-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-bigints": "__VERSION__", +- "has-symbols": "__VERSION__", +- "which-boxed-primitive": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/undici": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/undici/-/undici-__VERSION__.tgz", +@@ -8327,16 +5591,6 @@ + "browserslist": ">= __VERSION__" + } + }, +- "node_modules/uri-js": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "punycode": "__VERSION__" +- } +- }, + "node_modules/util-deprecate": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-__VERSION__.tgz", +@@ -8431,95 +5685,6 @@ + "node": ">= 8" + } + }, +- "node_modules/which-boxed-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-bigint": "__VERSION__", +- "is-boolean-object": "__VERSION__", +- "is-number-object": "__VERSION__", +- "is-string": "__VERSION__", +- "is-symbol": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-builtin-type": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "function.prototype.name": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "is-async-function": "__VERSION__", +- "is-date-object": "__VERSION__", +- "is-finalizationregistry": "__VERSION__", +- "is-generator-function": "__VERSION__", +- "is-regex": "__VERSION__", +- "is-weakref": "__VERSION__", +- "isarray": "__VERSION__", +- "which-boxed-primitive": "__VERSION__", +- "which-collection": "__VERSION__", +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-collection": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-map": "__VERSION__", +- "is-set": "__VERSION__", +- "is-weakmap": "__VERSION__", +- "is-weakset": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-typed-array": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "for-each": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/word-wrap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/write-file-atomic": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-__VERSION__.tgz", +@@ -8567,39 +5732,6 @@ + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC" +- }, +- "node_modules/yaml": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/yaml/-/yaml-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "yaml": "bin.mjs" +- }, +- "engines": { +- "node": ">= 14.6" +- }, +- "funding": { +- "url": "https://github.com/sponsors/eemeli" +- } +- }, +- "node_modules/yaml-eslint-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "eslint-visitor-keys": "__VERSION__", +- "yaml": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ota-meshi" +- } + }, + "node_modules/yargs": { + "version": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/package.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/package.json index dd522cfd39..8c48b1ed8c 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/package.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/package.json @@ -1,29 +1,31 @@ -@@ -8,27 +8,15 @@ +@@ -8,29 +8,15 @@ "node": ">= __VERSION__" }, "scripts": { -- "lint-js": "eslint web/modules/custom --ext .js --max-warnings=0 --no-error-on-unmatched-pattern", +- "lint-js": "eslint web/modules/custom --max-warnings=0 --no-error-on-unmatched-pattern", "lint-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\"", -- "lint": "yarn run lint-js && yarn run lint-css", -- "lint-fix-js": "eslint web/modules/custom --ext .js --no-error-on-unmatched-pattern --fix", -+ "lint": "yarn run lint-css", +- "lint": "npm run lint-js && npm run lint-css", +- "lint-fix-js": "eslint web/modules/custom --no-error-on-unmatched-pattern --fix", ++ "lint": "npm run lint-css", "lint-fix-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\" --fix", -- "lint-fix": "yarn run lint-fix-js && yarn run lint-fix-css", -+ "lint-fix": "yarn run lint-fix-css", +- "lint-fix": "npm run lint-fix-js && npm run lint-fix-css", ++ "lint-fix": "npm run lint-fix-css", "test": "jest --coverage --passWithNoTests" }, "devDependencies": { +- "@eslint/compat": "__VERSION__", +- "@eslint/js": "__VERSION__", - "@homer0/prettier-plugin-jsdoc": "__VERSION__", "jest": "__VERSION__", "jest-environment-jsdom": "__VERSION__", - "eslint": "__VERSION__", -- "eslint-config-airbnb-base": "__VERSION__", - "eslint-config-prettier": "__VERSION__", - "eslint-plugin-import": "__VERSION__", - "eslint-plugin-jsdoc": "__VERSION__", - "eslint-plugin-no-jquery": "__VERSION__", - "eslint-plugin-prettier": "__VERSION__", - "eslint-plugin-yml": "__VERSION__", +- "globals": "__VERSION__", - "prettier": "__VERSION__", "stylelint": "__VERSION__", "stylelint-config-standard": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/web/themes/custom/star_wars/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/web/themes/custom/star_wars/package-lock.json new file mode 100644 index 0000000000..e46996d210 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/web/themes/custom/star_wars/package-lock.json @@ -0,0 +1,3272 @@ +@@ -9,23 +9,11 @@ + "version": "__VERSION__", + "hasInstallScript": true, + "devDependencies": { +- "@eslint/compat": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@homer0/prettier-plugin-jsdoc": "__VERSION__", + "autoprefixer": "__VERSION__", + "chokidar-cli": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": "__VERSION__", +- "eslint-plugin-import": "__VERSION__", +- "eslint-plugin-jsdoc": "__VERSION__", +- "eslint-plugin-no-jquery": "__VERSION__", +- "eslint-plugin-prettier": "__VERSION__", +- "eslint-plugin-yml": "__VERSION__", +- "globals": "__VERSION__", + "patch-package": "__VERSION__", + "postcss": "__VERSION__", + "postcss-cli": "__VERSION__", +- "prettier": "__VERSION__", + "sass": "__VERSION__", + "stylelint": "__VERSION__", + "stylelint-config-standard": "__VERSION__", +@@ -243,286 +231,6 @@ + "url": "https://github.com/sponsors/JounQin" + } + }, +- "node_modules/@es-joy/jsdoccomment": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/estree": "__VERSION__", +- "@typescript-eslint/types": "__VERSION__", +- "comment-parser": "__VERSION__", +- "esquery": "__VERSION__", +- "jsdoc-type-pratt-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- } +- }, +- "node_modules/@es-joy/resolve.exports": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@eslint-community/eslint-utils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint-community/regexpp": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/compat": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "peerDependencies": { +- "eslint": "^8.40 || 9 || 10" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- } +- } +- }, +- "node_modules/@eslint/compat/node_modules/@eslint/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@types/json-schema": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- } +- }, +- "node_modules/@eslint/config-array": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/object-schema": "__VERSION__", +- "debug": "__VERSION__", +- "minimatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/config-helpers": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@types/json-schema": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/eslintrc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ajv": "__VERSION__", +- "debug": "__VERSION__", +- "espree": "__VERSION__", +- "globals": "__VERSION__", +- "ignore": "__VERSION__", +- "import-fresh": "__VERSION__", +- "js-yaml": "__VERSION__", +- "minimatch": "__VERSION__", +- "strip-json-comments": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/@eslint/eslintrc/node_modules/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/@eslint/js": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://eslint.org/donate" +- } +- }, +- "node_modules/@eslint/object-schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/plugin-kit": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__", +- "levn": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@homer0/prettier-plugin-jsdoc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@homer0/prettier-plugin-jsdoc/-/prettier-plugin-jsdoc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "comment-parser": "__VERSION__", +- "ramda": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "prettier": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@humanfs/types": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/node": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@humanfs/core": "__VERSION__", +- "@humanfs/types": "__VERSION__", +- "@humanwhocodes/retry": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanwhocodes/module-importer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/nzakas" +- } +- }, +- "node_modules/@humanwhocodes/retry": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/nzakas" +- } +- }, + "node_modules/@jridgewell/gen-mapping": { + "version": "__VERSION__", + "dev": true, +@@ -944,64 +652,6 @@ + "url": "https://github.com/sponsors/jonschlinkert" + } + }, +- "node_modules/@pkgr/core": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/pkgr" +- } +- }, +- "node_modules/@rtsao/scc": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@sindresorhus/base62": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/@types/estree": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/json-schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/json5": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@typescript-eslint/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/typescript-eslint" +- } +- }, + "node_modules/@yarnpkg/lockfile": { + "version": "__VERSION__", + "dev": true, +@@ -1018,29 +668,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/acorn-jsx": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "acorn": "__VERSION__ || __VERSION__ || __VERSION__" +- } +- }, +- "node_modules/ajv": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-deep-equal": "__VERSION__", +- "fast-json-stable-stringify": "__VERSION__", +- "json-schema-traverse": "__VERSION__", +- "uri-js": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/epoberezkin" +- } +- }, + "node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, +@@ -1075,55 +702,11 @@ + "node": ">= 8" + } + }, +- "node_modules/are-docs-informative": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/argparse": { + "version": "__VERSION__", + "dev": true, + "license": "Python-2.0" + }, +- "node_modules/array-buffer-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "is-array-buffer": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array-includes": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-string": "__VERSION__", +- "math-intrinsics": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/array-union": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-__VERSION__.tgz", +@@ -1134,80 +717,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/array.prototype.findlastindex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array.prototype.flat": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array.prototype.flatmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/arraybuffer.prototype.slice": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-buffer-byte-length": "__VERSION__", +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-array-buffer": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/astral-regex": { + "version": "__VERSION__", + "dev": true, +@@ -1216,14 +725,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/async-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/autoprefixer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-__VERSION__.tgz", +@@ -1261,20 +762,6 @@ + "postcss": "__VERSION__" + } + }, +- "node_modules/available-typed-arrays": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "possible-typed-array-names": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/balanced-match": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +@@ -1306,20 +793,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/brace-expansion": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "balanced-match": "__VERSION__", +- "concat-map": "__VERSION__" +- } +- }, +- "node_modules/brace-expansion/node_modules/balanced-match": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/braces": { + "version": "__VERSION__", + "dev": true, +@@ -1627,21 +1100,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/comment-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/concat-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/cosmiconfig": { + "version": "__VERSION__", + "dev": true, +@@ -1734,54 +1192,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/data-view-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/data-view-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/inspect-js" +- } +- }, +- "node_modules/data-view-byte-offset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/debug": { + "version": "__VERSION__", + "dev": true, +@@ -1806,11 +1216,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/deep-is": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/define-data-property": { + "version": "__VERSION__", + "dev": true, +@@ -1827,22 +1232,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/define-properties": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "object-keys": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/dependency-graph": { + "version": "__VERSION__", + "dev": true, +@@ -1860,16 +1249,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/diff-sequences": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/dir-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-__VERSION__.tgz", +@@ -1883,17 +1262,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/doctrine": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "esutils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/dunder-proto": { + "version": "__VERSION__", + "dev": true, +@@ -1935,90 +1303,6 @@ + "is-arrayish": "__VERSION__" + } + }, +- "node_modules/es-abstract": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-buffer-byte-length": "__VERSION__", +- "arraybuffer.prototype.slice": "__VERSION__", +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "data-view-buffer": "__VERSION__", +- "data-view-byte-length": "__VERSION__", +- "data-view-byte-offset": "__VERSION__", +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "es-set-tostringtag": "__VERSION__", +- "es-to-primitive": "__VERSION__", +- "function.prototype.name": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "get-proto": "__VERSION__", +- "get-symbol-description": "__VERSION__", +- "globalthis": "__VERSION__", +- "gopd": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "has-proto": "__VERSION__", +- "has-symbols": "__VERSION__", +- "hasown": "__VERSION__", +- "internal-slot": "__VERSION__", +- "is-array-buffer": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-data-view": "__VERSION__", +- "is-negative-zero": "__VERSION__", +- "is-regex": "__VERSION__", +- "is-set": "__VERSION__", +- "is-shared-array-buffer": "__VERSION__", +- "is-string": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "is-weakref": "__VERSION__", +- "math-intrinsics": "__VERSION__", +- "object-inspect": "__VERSION__", +- "object-keys": "__VERSION__", +- "object.assign": "__VERSION__", +- "own-keys": "__VERSION__", +- "regexp.prototype.flags": "__VERSION__", +- "safe-array-concat": "__VERSION__", +- "safe-push-apply": "__VERSION__", +- "safe-regex-test": "__VERSION__", +- "set-proto": "__VERSION__", +- "stop-iteration-iterator": "__VERSION__", +- "string.prototype.trim": "__VERSION__", +- "string.prototype.trimend": "__VERSION__", +- "string.prototype.trimstart": "__VERSION__", +- "typed-array-buffer": "__VERSION__", +- "typed-array-byte-length": "__VERSION__", +- "typed-array-byte-offset": "__VERSION__", +- "typed-array-length": "__VERSION__", +- "unbox-primitive": "__VERSION__", +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/es-abstract-get": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "is-callable": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/es-define-property": { + "version": "__VERSION__", + "dev": true, +@@ -2046,49 +1330,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/es-set-tostringtag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-shim-unscopables": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-to-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-abstract-get": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-date-object": "__VERSION__", +- "is-symbol": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/escalade": { + "version": "__VERSION__", + "dev": true, +@@ -2097,474 +1338,11 @@ + "node": "__VERSION__" + } + }, +- "node_modules/escape-string-regexp": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/eslint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint/-/eslint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@eslint-community/eslint-utils": "__VERSION__", +- "@eslint-community/regexpp": "__VERSION__", +- "@eslint/config-array": "__VERSION__", +- "@eslint/config-helpers": "__VERSION__", +- "@eslint/core": "__VERSION__", +- "@eslint/eslintrc": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@eslint/plugin-kit": "__VERSION__", +- "@humanfs/node": "__VERSION__", +- "@humanwhocodes/module-importer": "__VERSION__", +- "@humanwhocodes/retry": "__VERSION__", +- "@types/estree": "__VERSION__", +- "ajv": "__VERSION__", +- "chalk": "__VERSION__", +- "cross-spawn": "__VERSION__", +- "debug": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "eslint-scope": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__", +- "espree": "__VERSION__", +- "esquery": "__VERSION__", +- "esutils": "__VERSION__", +- "fast-deep-equal": "__VERSION__", +- "file-entry-cache": "__VERSION__", +- "find-up": "__VERSION__", +- "glob-parent": "__VERSION__", +- "ignore": "__VERSION__", +- "imurmurhash": "__VERSION__", +- "is-glob": "__VERSION__", +- "json-stable-stringify-without-jsonify": "__VERSION__", +- "lodash.merge": "__VERSION__", +- "minimatch": "__VERSION__", +- "natural-compare": "__VERSION__", +- "optionator": "__VERSION__" +- }, +- "bin": { +- "eslint": "bin/eslint.js" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://eslint.org/donate" +- }, +- "peerDependencies": { +- "jiti": "*" +- }, +- "peerDependenciesMeta": { +- "jiti": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-compat-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-compat-utils/node_modules/semver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/eslint-config-prettier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "eslint-config-prettier": "bin/cli.js" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint-config-prettier" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-import-resolver-node": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__", +- "is-core-module": "__VERSION__", +- "resolve": "__VERSION__" +- } +- }, +- "node_modules/eslint-import-resolver-node/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-module-utils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-module-utils/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-import": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@rtsao/scc": "__VERSION__", +- "array-includes": "__VERSION__", +- "array.prototype.findlastindex": "__VERSION__", +- "array.prototype.flat": "__VERSION__", +- "array.prototype.flatmap": "__VERSION__", +- "debug": "__VERSION__", +- "doctrine": "__VERSION__", +- "eslint-import-resolver-node": "__VERSION__", +- "eslint-module-utils": "__VERSION__", +- "hasown": "__VERSION__", +- "is-core-module": "__VERSION__", +- "is-glob": "__VERSION__", +- "minimatch": "__VERSION__", +- "object.fromentries": "__VERSION__", +- "object.groupby": "__VERSION__", +- "object.values": "__VERSION__", +- "semver": "__VERSION__", +- "string.prototype.trimend": "__VERSION__", +- "tsconfig-paths": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || __VERSION__ || ^8 || ^9" +- } +- }, +- "node_modules/eslint-plugin-import/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "@es-joy/jsdoccomment": "__VERSION__", +- "@es-joy/resolve.exports": "__VERSION__", +- "are-docs-informative": "__VERSION__", +- "comment-parser": "__VERSION__", +- "debug": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "espree": "__VERSION__", +- "esquery": "__VERSION__", +- "html-entities": "__VERSION__", +- "object-deep-merge": "__VERSION__", +- "parse-imports-exports": "__VERSION__", +- "semver": "__VERSION__", +- "spdx-expression-parse": "__VERSION__", +- "to-valid-identifier": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=24" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__ || __VERSION__ || __VERSION__ || __VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/espree": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "acorn": "__VERSION__", +- "acorn-jsx": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/semver": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-no-jquery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "eslint": "__VERSION__", +- "oxlint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- }, +- "oxlint": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-plugin-prettier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prettier-linter-helpers": "__VERSION__", +- "synckit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint-plugin-prettier" +- }, +- "peerDependencies": { +- "@types/eslint": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": ">= __VERSION__ <__VERSION__ || >=__VERSION__", +- "prettier": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "@types/eslint": { +- "optional": true +- }, +- "eslint-config-prettier": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-plugin-yml": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__", +- "diff-sequences": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "eslint-compat-utils": "__VERSION__", +- "natural-compare": "__VERSION__", +- "yaml-eslint-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ota-meshi" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-scope": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "esrecurse": "__VERSION__", +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint/node_modules/glob-parent": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "is-glob": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/espree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/espree/-/espree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "acorn": "__VERSION__", +- "acorn-jsx": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/espree/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/esquery": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/esrecurse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/estraverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/esutils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/fast-deep-equal": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/fast-diff": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0" +- }, + "node_modules/fast-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-__VERSION__.tgz", +@@ -2582,16 +1360,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/fast-json-stable-stringify": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/fast-levenshtein": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/fast-uri": { + "version": "__VERSION__", + "dev": true, +@@ -2625,19 +1393,6 @@ + "reusify": "__VERSION__" + } + }, +- "node_modules/file-entry-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flat-cache": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/fill-range": { + "version": "__VERSION__", + "dev": true, +@@ -2649,21 +1404,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/find-up": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "locate-path": "__VERSION__", +- "path-exists": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/find-yarn-workspace-root": { + "version": "__VERSION__", + "dev": true, +@@ -2672,20 +1412,6 @@ + "micromatch": "__VERSION__" + } + }, +- "node_modules/flat-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flatted": "__VERSION__", +- "keyv": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/flatted": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-__VERSION__.tgz", +@@ -2693,20 +1419,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/for-each": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-callable": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/fraction.js": { + "version": "__VERSION__", + "dev": true, +@@ -2755,44 +1467,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/function.prototype.name": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "functions-have-names": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "hasown": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-document.all": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/functions-have-names": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/generator-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/get-caller-file": { + "version": "__VERSION__", + "dev": true, +@@ -2836,22 +1510,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/get-symbol-description": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/glob-parent": { + "version": "__VERSION__", + "dev": true, +@@ -2887,34 +1545,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/globalthis": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-properties": "__VERSION__", +- "gopd": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/globby": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globby/-/globby-__VERSION__.tgz", +@@ -2967,17 +1597,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/has-bigints": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/has-flag": { + "version": "__VERSION__", + "dev": true, +@@ -2997,20 +1616,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/has-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/has-symbols": { + "version": "__VERSION__", + "dev": true, +@@ -3022,20 +1627,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/has-tostringtag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-symbols": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/hashery": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-__VERSION__.tgz", +@@ -3067,21 +1658,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/html-entities": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/mdevils" +- }, +- { +- "type": "patreon", +- "url": "https://patreon.com/mdevils" +- } +- ], +- "license": "MIT" +- }, + "node_modules/html-tags": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-__VERSION__.tgz", +@@ -3144,72 +1720,11 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/internal-slot": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "hasown": "__VERSION__", +- "side-channel": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/is-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-arrayish": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/is-async-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "async-function": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-proto": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-bigint": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-bigints": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-binary-path": { + "version": "__VERSION__", + "dev": true, +@@ -3221,77 +1736,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-boolean-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-callable": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-core-module": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-data-view": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-date-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-docker": { + "version": "__VERSION__", + "dev": true, +@@ -3306,20 +1750,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/is-document.all": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-extglob": { + "version": "__VERSION__", + "dev": true, +@@ -3328,20 +1758,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-finalizationregistry": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, +@@ -3350,24 +1766,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-generator-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "generator-function": "__VERSION__", +- "get-proto": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-glob": { + "version": "__VERSION__", + "dev": true, +@@ -3379,28 +1777,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-negative-zero": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-number": { + "version": "__VERSION__", + "dev": true, +@@ -3409,21 +1785,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-number-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-plain-object": { + "version": "__VERSION__", + "dev": true, +@@ -3432,133 +1793,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-regex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "gopd": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-set": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-shared-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-string": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-symbol": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-symbols": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-typed-array": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakref": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-wsl": { + "version": "__VERSION__", + "dev": true, +@@ -3608,33 +1842,11 @@ + "js-yaml": "bin/js-yaml.js" + } + }, +- "node_modules/jsdoc-type-pratt-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/json-buffer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/json-parse-even-better-errors": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/json-schema-traverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/json-stable-stringify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-__VERSION__.tgz", +@@ -3655,22 +1867,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/json-stable-stringify-without-jsonify": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json5": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "minimist": "__VERSION__" +- }, +- "bin": { +- "json5": "lib/cli.js" +- } +- }, + "node_modules/jsonfile": { + "version": "__VERSION__", + "dev": true, +@@ -3692,16 +1888,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "json-buffer": "__VERSION__" +- } +- }, + "node_modules/kind-of": { + "version": "__VERSION__", + "dev": true, +@@ -3723,18 +1909,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/levn": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prelude-ls": "__VERSION__", +- "type-check": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, + "node_modules/lilconfig": { + "version": "__VERSION__", + "dev": true, +@@ -3751,30 +1925,11 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/locate-path": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-locate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/lodash.debounce": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/lodash.merge": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/lodash.throttle": { + "version": "__VERSION__", + "dev": true, +@@ -3846,17 +2001,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/minimatch": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "brace-expansion": "__VERSION__" +- }, +- "engines": { +- "node": "*" +- } +- }, + "node_modules/minimist": { + "version": "__VERSION__", + "dev": true, +@@ -3889,11 +2033,6 @@ + "node": "^10 || ^12 || ^13.7 || ^14 || >=__VERSION__" + } + }, +- "node_modules/natural-compare": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/node-addon-api": { + "version": "__VERSION__", + "dev": true, +@@ -3900,23 +2039,6 @@ + "license": "MIT", + "optional": true + }, +- "node_modules/node-exports-info": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array.prototype.flatmap": "__VERSION__", +- "es-errors": "__VERSION__", +- "object.entries": "__VERSION__", +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/node-releases": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-__VERSION__.tgz", +@@ -3935,22 +2057,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/object-deep-merge": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/object-inspect": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/object-keys": { + "version": "__VERSION__", + "dev": true, +@@ -3959,86 +2065,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/object.assign": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "has-symbols": "__VERSION__", +- "object-keys": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object.entries": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/object.fromentries": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object.groupby": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/object.values": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/open": { + "version": "__VERSION__", + "dev": true, +@@ -4054,66 +2080,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/optionator": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "deep-is": "__VERSION__", +- "fast-levenshtein": "__VERSION__", +- "levn": "__VERSION__", +- "prelude-ls": "__VERSION__", +- "type-check": "__VERSION__", +- "word-wrap": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/own-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "get-intrinsic": "__VERSION__", +- "object-keys": "__VERSION__", +- "safe-push-apply": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/p-limit": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "yocto-queue": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/p-locate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-limit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/p-try": { + "version": "__VERSION__", + "dev": true, +@@ -4133,14 +2099,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/parse-imports-exports": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "parse-statements": "__VERSION__" +- } +- }, + "node_modules/parse-json": { + "version": "__VERSION__", + "dev": true, +@@ -4158,11 +2116,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/parse-statements": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/patch-package": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-__VERSION__.tgz", +@@ -4221,14 +2174,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/path-exists": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/path-key": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-__VERSION__.tgz", +@@ -4239,11 +2184,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/path-parse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/path-type": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-__VERSION__.tgz", +@@ -4278,14 +2218,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/possible-typed-array-names": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/postcss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-__VERSION__.tgz", +@@ -4569,41 +2501,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/prelude-ls": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/prettier": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/prettier/-/prettier-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "prettier": "bin/prettier.cjs" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/prettier/prettier?sponsor=1" +- } +- }, +- "node_modules/prettier-linter-helpers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-diff": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/pretty-hrtime": { + "version": "__VERSION__", + "dev": true, +@@ -4612,14 +2509,6 @@ + "node": ">= 0.8" + } + }, +- "node_modules/punycode": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/qified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/qified/-/qified-__VERSION__.tgz", +@@ -4661,15 +2550,6 @@ + ], + "license": "MIT" + }, +- "node_modules/ramda": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/ramda" +- } +- }, + "node_modules/read-cache": { + "version": "__VERSION__", + "dev": true, +@@ -4689,46 +2569,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/reflect.getprototypeof": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "get-proto": "__VERSION__", +- "which-builtin-type": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/regexp.prototype.flags": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "set-function-name": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/require-directory": { + "version": "__VERSION__", + "dev": true, +@@ -4750,39 +2590,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/reserved-identifiers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/resolve": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "is-core-module": "__VERSION__", +- "node-exports-info": "__VERSION__", +- "object-keys": "__VERSION__", +- "path-parse": "__VERSION__", +- "supports-preserve-symlinks-flag": "__VERSION__" +- }, +- "bin": { +- "resolve": "bin/resolve" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/resolve-from": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-__VERSION__.tgz", +@@ -4828,55 +2635,6 @@ + "queue-microtask": "__VERSION__" + } + }, +- "node_modules/safe-array-concat": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "has-symbols": "__VERSION__", +- "isarray": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/safe-push-apply": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "isarray": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/safe-regex-test": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-regex": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/sass": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/sass/-/sass-__VERSION__.tgz", +@@ -4924,14 +2682,6 @@ + "url": "https://paulmillr.com/funding/" + } + }, +- "node_modules/semver": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- } +- }, + "node_modules/set-blocking": { + "version": "__VERSION__", + "dev": true, +@@ -4953,33 +2703,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/set-function-name": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "functions-have-names": "__VERSION__", +- "has-property-descriptors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/set-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/shebang-command": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-__VERSION__.tgz", +@@ -5003,74 +2726,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/side-channel": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "object-inspect": "__VERSION__", +- "side-channel-list": "__VERSION__", +- "side-channel-map": "__VERSION__", +- "side-channel-weakmap": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-list": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-weakmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "object-inspect": "__VERSION__", +- "side-channel-map": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/signal-exit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-__VERSION__.tgz", +@@ -5133,43 +2788,6 @@ + "source-map": "__VERSION__" + } + }, +- "node_modules/spdx-exceptions": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC-BY-3.0" +- }, +- "node_modules/spdx-expression-parse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "spdx-exceptions": "__VERSION__", +- "spdx-license-ids": "__VERSION__" +- } +- }, +- "node_modules/spdx-license-ids": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC0-1.0" +- }, +- "node_modules/stop-iteration-iterator": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "internal-slot": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/string-width": { + "version": "__VERSION__", + "dev": true, +@@ -5183,60 +2801,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/string.prototype.trim": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-data-property": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/string.prototype.trimend": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/string.prototype.trimstart": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, +@@ -5248,25 +2812,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/strip-bom": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/strip-json-comments": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/stylelint": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-__VERSION__.tgz", +@@ -5525,35 +3070,10 @@ + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + } + }, +- "node_modules/supports-preserve-symlinks-flag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/svg-tags": { + "version": "__VERSION__", + "dev": true + }, +- "node_modules/synckit": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@pkgr/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/synckit" +- } +- }, + "node_modules/table": { + "version": "__VERSION__", + "dev": true, +@@ -5676,130 +3196,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/to-valid-identifier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@sindresorhus/base62": "__VERSION__", +- "reserved-identifiers": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/tsconfig-paths": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/json5": "__VERSION__", +- "json5": "__VERSION__", +- "minimist": "__VERSION__", +- "strip-bom": "__VERSION__" +- } +- }, +- "node_modules/type-check": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prelude-ls": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/typed-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/typed-array-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "has-proto": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/typed-array-byte-offset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "has-proto": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "reflect.getprototypeof": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/typed-array-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "possible-typed-array-names": "__VERSION__", +- "reflect.getprototypeof": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/unbox-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-bigints": "__VERSION__", +- "has-symbols": "__VERSION__", +- "which-boxed-primitive": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/universalify": { + "version": "__VERSION__", + "dev": true, +@@ -5839,14 +3235,6 @@ + "browserslist": ">= __VERSION__" + } + }, +- "node_modules/uri-js": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "punycode": "__VERSION__" +- } +- }, + "node_modules/util-deprecate": { + "version": "__VERSION__", + "dev": true, +@@ -5863,100 +3251,11 @@ + "which": "bin/which" + } + }, +- "node_modules/which-boxed-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-bigint": "__VERSION__", +- "is-boolean-object": "__VERSION__", +- "is-number-object": "__VERSION__", +- "is-string": "__VERSION__", +- "is-symbol": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-builtin-type": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "function.prototype.name": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "is-async-function": "__VERSION__", +- "is-date-object": "__VERSION__", +- "is-finalizationregistry": "__VERSION__", +- "is-generator-function": "__VERSION__", +- "is-regex": "__VERSION__", +- "is-weakref": "__VERSION__", +- "isarray": "__VERSION__", +- "which-boxed-primitive": "__VERSION__", +- "which-collection": "__VERSION__", +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-collection": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-map": "__VERSION__", +- "is-set": "__VERSION__", +- "is-weakmap": "__VERSION__", +- "is-weakset": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/which-module": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, +- "node_modules/which-typed-array": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "for-each": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/word-wrap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/wrap-ansi": { + "version": "__VERSION__", + "dev": true, +@@ -6072,23 +3371,6 @@ + "url": "https://github.com/sponsors/eemeli" + } + }, +- "node_modules/yaml-eslint-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "eslint-visitor-keys": "__VERSION__", +- "yaml": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ota-meshi" +- } +- }, + "node_modules/yargs": { + "version": "__VERSION__", + "dev": true, +@@ -6214,17 +3496,6 @@ + }, + "engines": { + "node": "__VERSION__" +- } +- }, +- "node_modules/yocto-queue": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" + } + } + } diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/web/themes/custom/star_wars/package.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/web/themes/custom/star_wars/package.json new file mode 100644 index 0000000000..89c2302583 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/web/themes/custom/star_wars/package.json @@ -0,0 +1,39 @@ +@@ -4,23 +4,11 @@ + "private": true, + "description": "NodeJS dependencies for star wars project", + "devDependencies": { +- "@eslint/compat": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@homer0/prettier-plugin-jsdoc": "__VERSION__", + "autoprefixer": "__VERSION__", + "chokidar-cli": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": "__VERSION__", +- "eslint-plugin-import": "__VERSION__", +- "eslint-plugin-jsdoc": "__VERSION__", +- "eslint-plugin-no-jquery": "__VERSION__", +- "eslint-plugin-prettier": "__VERSION__", +- "eslint-plugin-yml": "__VERSION__", +- "globals": "__VERSION__", + "patch-package": "__VERSION__", + "postcss": "__VERSION__", + "postcss-cli": "__VERSION__", +- "prettier": "__VERSION__", + "sass": "__VERSION__", + "stylelint": "__VERSION__", + "stylelint-config-standard": "__VERSION__", +@@ -42,12 +30,10 @@ + "copy": "npm run copy:images && npm run copy:fonts", + "copy:fonts": "mkdir -p build/fonts && cp -r fonts/* build/fonts/ 2>/dev/null || true", + "copy:images": "mkdir -p build/images && cp -r images/* build/images/ 2>/dev/null || true", +- "lint": "npm run lint-js && npm run lint-css", ++ "lint": "npm run lint-css", + "lint-css": "stylelint 'scss/**/*.scss'", + "lint-css-fix": "stylelint 'scss/**/*.scss' --fix", +- "lint-fix": "npm run lint-js-fix && npm run lint-css-fix", +- "lint-js": "eslint 'js/**/*.js' --ignore-pattern '*.min.js'", +- "lint-js-fix": "eslint 'js/**/*.js' --ignore-pattern '*.min.js' --fix", ++ "lint-fix": "npm run lint-css-fix", + "postcss:dev": "postcss build/css/star_wars.min.css -o build/css/star_wars.min.css --map", + "postcss:prod": "postcss build/css/star_wars.min.css -o build/css/star_wars.min.css --no-map", + "postinstall": "patch-package", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/-.prettierignore b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/-.prettierignore new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/-.prettierrc.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/-.prettierrc.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/-.stylelintrc.js b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/-.stylelintrc.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/-eslint.config.mjs b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/-eslint.config.mjs new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/.ahoy.yml new file mode 100644 index 0000000000..f2af61a6c3 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/.ahoy.yml @@ -0,0 +1,18 @@ +@@ -207,8 +207,6 @@ + usage: Lint front-end code. + cmd: | + ahoy cli vendor/bin/twig-cs-fixer lint +- ahoy cli "npm run lint" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" + + lint-tests: + usage: Lint tests code. +@@ -239,8 +237,6 @@ + usage: Fix lint issues of front-end code. + cmd: | + ahoy cli vendor/bin/twig-cs-fixer lint --fix +- ahoy cli "npm run lint-fix" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" + + test: + usage: Run all PHPUnit tests. diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/.github/workflows/build-test-deploy.yml new file mode 100644 index 0000000000..b3d87d9217 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/.github/workflows/build-test-deploy.yml @@ -0,0 +1,24 @@ +@@ -125,7 +125,6 @@ + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ + if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ + COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" +- docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" + + - name: Validate Composer configuration is normalized + run: docker compose exec -T cli composer normalize --dry-run +@@ -150,15 +149,6 @@ + - name: Lint code with Gherkin Lint + run: docker compose exec -T cli vendor/bin/gherkinlint lint tests/behat/features + continue-on-error: ${{ vars.VORTEX_CI_GHERKIN_LINT_IGNORE_FAILURE == '1' }} +- +- - name: Lint module code with NodeJS linters +- run: docker compose exec -T cli bash -c "npm run lint" +- continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} +- +- - name: Lint theme code with NodeJS linters +- if: ${{ vars.VORTEX_FRONTEND_BUILD_SKIP != '1' }} +- run: docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" +- continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} + + test: + runs-on: ubuntu-latest diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/package-lock.json new file mode 100644 index 0000000000..6eb495cd42 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/package-lock.json @@ -0,0 +1,4661 @@ +@@ -7,23 +7,8 @@ + "name": "star_wars", + "license": "proprietary", + "devDependencies": { +- "@eslint/compat": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@homer0/prettier-plugin-jsdoc": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": "__VERSION__", +- "eslint-plugin-import": "__VERSION__", +- "eslint-plugin-jsdoc": "__VERSION__", +- "eslint-plugin-no-jquery": "__VERSION__", +- "eslint-plugin-prettier": "__VERSION__", +- "eslint-plugin-yml": "__VERSION__", +- "globals": "__VERSION__", + "jest": "__VERSION__", +- "jest-environment-jsdom": "__VERSION__", +- "prettier": "__VERSION__", +- "stylelint": "__VERSION__", +- "stylelint-config-standard": "__VERSION__", +- "stylelint-order": "__VERSION__" ++ "jest-environment-jsdom": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__", +@@ -698,67 +683,6 @@ + "specificity": "bin/cli.js" + } + }, +- "node_modules/@cacheable/memory": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@cacheable/utils": "__VERSION__", +- "@keyv/bigmap": "__VERSION__", +- "hookified": "__VERSION__", +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hashery": "__VERSION__", +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": ">= 18" +- }, +- "peerDependencies": { +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hashery": "__VERSION__", +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/utils/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, + "node_modules/@csstools/color-helpers": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-__VERSION__.tgz", +@@ -779,29 +703,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/@csstools/css-parser-algorithms": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-__VERSION__.tgz", +@@ -827,84 +728,6 @@ + } + } + }, +- "node_modules/@csstools/css-tokenizer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@csstools/media-query-list-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@csstools/selector-specificity": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT-0", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss-selector-parser": "__VERSION__" +- } +- }, +- "node_modules/@dual-bundle/import-meta-resolve": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/JounQin" +- } +- }, + "node_modules/@emnapi/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-__VERSION__.tgz", +@@ -939,215 +762,6 @@ + "tslib": "__VERSION__" + } + }, +- "node_modules/@es-joy/jsdoccomment": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/estree": "__VERSION__", +- "@typescript-eslint/types": "__VERSION__", +- "comment-parser": "__VERSION__", +- "esquery": "__VERSION__", +- "jsdoc-type-pratt-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- } +- }, +- "node_modules/@es-joy/jsdoccomment/node_modules/comment-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/@es-joy/resolve.exports": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@eslint-community/eslint-utils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint-community/regexpp": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/compat": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "peerDependencies": { +- "eslint": "^8.40 || 9 || 10" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- } +- } +- }, +- "node_modules/@eslint/compat/node_modules/@eslint/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@types/json-schema": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- } +- }, +- "node_modules/@eslint/config-array": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/object-schema": "__VERSION__", +- "debug": "__VERSION__", +- "minimatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/config-helpers": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@types/json-schema": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/eslintrc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ajv": "__VERSION__", +- "debug": "__VERSION__", +- "espree": "__VERSION__", +- "globals": "__VERSION__", +- "ignore": "__VERSION__", +- "import-fresh": "__VERSION__", +- "js-yaml": "__VERSION__", +- "minimatch": "__VERSION__", +- "strip-json-comments": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/@eslint/eslintrc/node_modules/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/@eslint/js": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://eslint.org/donate" +- } +- }, +- "node_modules/@eslint/object-schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/plugin-kit": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__", +- "levn": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/@exodus/bytes": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-__VERSION__.tgz", +@@ -1166,87 +780,6 @@ + } + } + }, +- "node_modules/@homer0/prettier-plugin-jsdoc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@homer0/prettier-plugin-jsdoc/-/prettier-plugin-jsdoc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "comment-parser": "__VERSION__", +- "ramda": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "prettier": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@humanfs/types": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/node": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@humanfs/core": "__VERSION__", +- "@humanfs/types": "__VERSION__", +- "@humanwhocodes/retry": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanwhocodes/module-importer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/nzakas" +- } +- }, +- "node_modules/@humanwhocodes/retry": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/nzakas" +- } +- }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-__VERSION__.tgz", +@@ -1717,13 +1250,6 @@ + "@jridgewell/sourcemap-codec": "__VERSION__" + } + }, +- "node_modules/@keyv/serialize": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-__VERSION__.tgz", +@@ -1746,44 +1272,6 @@ + "@emnapi/runtime": "__VERSION__ || __VERSION__" + } + }, +- "node_modules/@nodelib/fs.scandir": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.stat": "__VERSION__", +- "run-parallel": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/@nodelib/fs.stat": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/@nodelib/fs.walk": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.scandir": "__VERSION__", +- "fastq": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, + "node_modules/@pkgr/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-__VERSION__.tgz", +@@ -1797,11 +1285,6 @@ + "url": "https://opencollective.com/pkgr" + } + }, +- "node_modules/@rtsao/scc": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@sinclair/typebox": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-__VERSION__.tgz", +@@ -1809,17 +1292,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/@sindresorhus/base62": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/@sinonjs/commons": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-__VERSION__.tgz", +@@ -1896,13 +1368,6 @@ + "@babel/types": "__VERSION__" + } + }, +- "node_modules/@types/estree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-__VERSION__.tgz", +@@ -1942,18 +1407,6 @@ + "parse5": "__VERSION__" + } + }, +- "node_modules/@types/json-schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/json5": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@types/node": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/node/-/node-__VERSION__.tgz", +@@ -1995,20 +1448,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/@typescript-eslint/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/typescript-eslint" +- } +- }, + "node_modules/@ungap/structured-clone": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-__VERSION__.tgz", +@@ -2359,46 +1798,6 @@ + "win32" + ] + }, +- "node_modules/acorn": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/acorn/-/acorn-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "acorn": "bin/acorn" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/acorn-jsx": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "acorn": "__VERSION__ || __VERSION__ || __VERSION__" +- } +- }, +- "node_modules/ajv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/ajv/-/ajv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-deep-equal": "__VERSION__", +- "fast-json-stable-stringify": "__VERSION__", +- "json-schema-traverse": "__VERSION__", +- "uri-js": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/epoberezkin" +- } +- }, + "node_modules/ansi-escapes": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-__VERSION__.tgz", +@@ -2464,171 +1863,6 @@ + "url": "https://github.com/sponsors/jonschlinkert" + } + }, +- "node_modules/are-docs-informative": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/argparse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/argparse/-/argparse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Python-2.0" +- }, +- "node_modules/array-buffer-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "is-array-buffer": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array-includes": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-string": "__VERSION__", +- "math-intrinsics": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array-union": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/array-union/-/array-union-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/array.prototype.findlastindex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array.prototype.flat": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array.prototype.flatmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/arraybuffer.prototype.slice": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-buffer-byte-length": "__VERSION__", +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-array-buffer": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/astral-regex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/async-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/available-typed-arrays": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "possible-typed-array-names": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/babel-jest": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-__VERSION__.tgz", +@@ -2728,13 +1962,6 @@ + "@babel/core": "__VERSION__ || __VERSION__" + } + }, +- "node_modules/balanced-match": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/baseline-browser-mapping": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-__VERSION__.tgz", +@@ -2758,28 +1985,6 @@ + "require-from-string": "__VERSION__" + } + }, +- "node_modules/brace-expansion": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "balanced-match": "__VERSION__", +- "concat-map": "__VERSION__" +- } +- }, +- "node_modules/braces": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/braces/-/braces-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fill-range": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/browserslist": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-__VERSION__.tgz", +@@ -2831,74 +2036,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/cacheable": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@cacheable/memory": "__VERSION__", +- "@cacheable/utils": "__VERSION__", +- "hookified": "__VERSION__", +- "keyv": "__VERSION__", +- "qified": "__VERSION__" +- } +- }, +- "node_modules/cacheable/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, +- "node_modules/call-bind": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind-apply-helpers": "__VERSION__", +- "es-define-property": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "set-function-length": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/call-bind-apply-helpers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "function-bind": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/call-bound": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind-apply-helpers": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/callsites": { + "version": "__VERSION__", + "dev": true, +@@ -3053,26 +2190,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/colord": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/comment-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/concat-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/convert-source-map": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-__VERSION__.tgz", +@@ -3080,33 +2197,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/cosmiconfig": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "env-paths": "__VERSION__", +- "import-fresh": "__VERSION__", +- "js-yaml": "__VERSION__", +- "parse-json": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/d-fischer" +- }, +- "peerDependencies": { +- "typescript": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "typescript": { +- "optional": true +- } +- } +- }, + "node_modules/cross-spawn": { + "version": "__VERSION__", + "dev": true, +@@ -3120,14 +2210,6 @@ + "node": ">= 8" + } + }, +- "node_modules/css-functions-list": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/css-tree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-__VERSION__.tgz", +@@ -3142,19 +2224,6 @@ + "node": "^10 || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/cssesc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "cssesc": "bin/cssesc" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/data-urls": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-__VERSION__.tgz", +@@ -3169,54 +2238,6 @@ + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/data-view-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/data-view-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/inspect-js" +- } +- }, +- "node_modules/data-view-byte-offset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/debug": { + "version": "__VERSION__", + "dev": true, +@@ -3255,11 +2276,6 @@ + } + } + }, +- "node_modules/deep-is": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/deepmerge": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-__VERSION__.tgz", +@@ -3270,38 +2286,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/define-data-property": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "gopd": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/define-properties": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "object-keys": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/detect-newline": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-__VERSION__.tgz", +@@ -3312,53 +2296,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/diff-sequences": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/dir-glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "path-type": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/doctrine": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "esutils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/dunder-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind-apply-helpers": "__VERSION__", +- "es-errors": "__VERSION__", +- "gopd": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/electron-to-chromium": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-__VERSION__.tgz", +@@ -3397,16 +2334,6 @@ + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, +- "node_modules/env-paths": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/error-ex": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-__VERSION__.tgz", +@@ -3417,141 +2344,6 @@ + "is-arrayish": "__VERSION__" + } + }, +- "node_modules/es-abstract": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-buffer-byte-length": "__VERSION__", +- "arraybuffer.prototype.slice": "__VERSION__", +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "data-view-buffer": "__VERSION__", +- "data-view-byte-length": "__VERSION__", +- "data-view-byte-offset": "__VERSION__", +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "es-set-tostringtag": "__VERSION__", +- "es-to-primitive": "__VERSION__", +- "function.prototype.name": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "get-proto": "__VERSION__", +- "get-symbol-description": "__VERSION__", +- "globalthis": "__VERSION__", +- "gopd": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "has-proto": "__VERSION__", +- "has-symbols": "__VERSION__", +- "hasown": "__VERSION__", +- "internal-slot": "__VERSION__", +- "is-array-buffer": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-data-view": "__VERSION__", +- "is-negative-zero": "__VERSION__", +- "is-regex": "__VERSION__", +- "is-set": "__VERSION__", +- "is-shared-array-buffer": "__VERSION__", +- "is-string": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "is-weakref": "__VERSION__", +- "math-intrinsics": "__VERSION__", +- "object-inspect": "__VERSION__", +- "object-keys": "__VERSION__", +- "object.assign": "__VERSION__", +- "own-keys": "__VERSION__", +- "regexp.prototype.flags": "__VERSION__", +- "safe-array-concat": "__VERSION__", +- "safe-push-apply": "__VERSION__", +- "safe-regex-test": "__VERSION__", +- "set-proto": "__VERSION__", +- "stop-iteration-iterator": "__VERSION__", +- "string.prototype.trim": "__VERSION__", +- "string.prototype.trimend": "__VERSION__", +- "string.prototype.trimstart": "__VERSION__", +- "typed-array-buffer": "__VERSION__", +- "typed-array-byte-length": "__VERSION__", +- "typed-array-byte-offset": "__VERSION__", +- "typed-array-length": "__VERSION__", +- "unbox-primitive": "__VERSION__", +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/es-define-property": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-errors": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-object-atoms": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-set-tostringtag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-shim-unscopables": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-to-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-callable": "__VERSION__", +- "is-date-object": "__VERSION__", +- "is-symbol": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/escalade": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-__VERSION__.tgz", +@@ -3562,474 +2354,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/escape-string-regexp": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/eslint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint/-/eslint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@eslint-community/eslint-utils": "__VERSION__", +- "@eslint-community/regexpp": "__VERSION__", +- "@eslint/config-array": "__VERSION__", +- "@eslint/config-helpers": "__VERSION__", +- "@eslint/core": "__VERSION__", +- "@eslint/eslintrc": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@eslint/plugin-kit": "__VERSION__", +- "@humanfs/node": "__VERSION__", +- "@humanwhocodes/module-importer": "__VERSION__", +- "@humanwhocodes/retry": "__VERSION__", +- "@types/estree": "__VERSION__", +- "ajv": "__VERSION__", +- "chalk": "__VERSION__", +- "cross-spawn": "__VERSION__", +- "debug": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "eslint-scope": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__", +- "espree": "__VERSION__", +- "esquery": "__VERSION__", +- "esutils": "__VERSION__", +- "fast-deep-equal": "__VERSION__", +- "file-entry-cache": "__VERSION__", +- "find-up": "__VERSION__", +- "glob-parent": "__VERSION__", +- "ignore": "__VERSION__", +- "imurmurhash": "__VERSION__", +- "is-glob": "__VERSION__", +- "json-stable-stringify-without-jsonify": "__VERSION__", +- "lodash.merge": "__VERSION__", +- "minimatch": "__VERSION__", +- "natural-compare": "__VERSION__", +- "optionator": "__VERSION__" +- }, +- "bin": { +- "eslint": "bin/eslint.js" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://eslint.org/donate" +- }, +- "peerDependencies": { +- "jiti": "*" +- }, +- "peerDependenciesMeta": { +- "jiti": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-compat-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-compat-utils/node_modules/semver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/eslint-config-prettier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "eslint-config-prettier": "bin/cli.js" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint-config-prettier" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-import-resolver-node": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__", +- "is-core-module": "__VERSION__", +- "resolve": "__VERSION__" +- } +- }, +- "node_modules/eslint-import-resolver-node/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-module-utils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-module-utils/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-import": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@rtsao/scc": "__VERSION__", +- "array-includes": "__VERSION__", +- "array.prototype.findlastindex": "__VERSION__", +- "array.prototype.flat": "__VERSION__", +- "array.prototype.flatmap": "__VERSION__", +- "debug": "__VERSION__", +- "doctrine": "__VERSION__", +- "eslint-import-resolver-node": "__VERSION__", +- "eslint-module-utils": "__VERSION__", +- "hasown": "__VERSION__", +- "is-core-module": "__VERSION__", +- "is-glob": "__VERSION__", +- "minimatch": "__VERSION__", +- "object.fromentries": "__VERSION__", +- "object.groupby": "__VERSION__", +- "object.values": "__VERSION__", +- "semver": "__VERSION__", +- "string.prototype.trimend": "__VERSION__", +- "tsconfig-paths": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || __VERSION__ || ^8 || ^9" +- } +- }, +- "node_modules/eslint-plugin-import/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "@es-joy/jsdoccomment": "__VERSION__", +- "@es-joy/resolve.exports": "__VERSION__", +- "are-docs-informative": "__VERSION__", +- "comment-parser": "__VERSION__", +- "debug": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "espree": "__VERSION__", +- "esquery": "__VERSION__", +- "html-entities": "__VERSION__", +- "object-deep-merge": "__VERSION__", +- "parse-imports-exports": "__VERSION__", +- "semver": "__VERSION__", +- "spdx-expression-parse": "__VERSION__", +- "to-valid-identifier": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=24" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__ || __VERSION__ || __VERSION__ || __VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/comment-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/espree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/espree/-/espree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "acorn": "__VERSION__", +- "acorn-jsx": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/semver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-no-jquery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "eslint": "__VERSION__", +- "oxlint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- }, +- "oxlint": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-plugin-prettier": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prettier-linter-helpers": "__VERSION__", +- "synckit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint-plugin-prettier" +- }, +- "peerDependencies": { +- "@types/eslint": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": ">= __VERSION__ <__VERSION__ || >=__VERSION__", +- "prettier": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "@types/eslint": { +- "optional": true +- }, +- "eslint-config-prettier": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-plugin-yml": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__", +- "diff-sequences": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "eslint-compat-utils": "__VERSION__", +- "natural-compare": "__VERSION__", +- "yaml-eslint-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ota-meshi" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-scope": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "esrecurse": "__VERSION__", +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint/node_modules/find-up": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "locate-path": "__VERSION__", +- "path-exists": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/eslint/node_modules/locate-path": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-locate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/eslint/node_modules/p-locate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-limit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/espree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/espree/-/espree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "acorn": "__VERSION__", +- "acorn-jsx": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/espree/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, + "node_modules/esprima": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-__VERSION__.tgz", +@@ -4044,46 +2368,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/esquery": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/esrecurse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/estraverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/esutils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/execa": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/execa/-/execa-__VERSION__.tgz", +@@ -4143,46 +2427,6 @@ + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/fast-deep-equal": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/fast-diff": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0" +- }, +- "node_modules/fast-glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.stat": "__VERSION__", +- "@nodelib/fs.walk": "__VERSION__", +- "glob-parent": "__VERSION__", +- "merge2": "__VERSION__", +- "micromatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/fast-glob/node_modules/glob-parent": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "is-glob": "__VERSION__" +- }, +- "engines": { +- "node": ">= 6" +- } +- }, + "node_modules/fast-json-stable-stringify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-__VERSION__.tgz", +@@ -4190,44 +2434,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/fast-levenshtein": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/fast-uri": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/fastify" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/fastify" +- } +- ], +- "license": "BSD-3-Clause" +- }, +- "node_modules/fastest-levenshtein": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/fastq": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fastq/-/fastq-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "reusify": "__VERSION__" +- } +- }, + "node_modules/fb-watchman": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-__VERSION__.tgz", +@@ -4238,32 +2444,6 @@ + "bser": "__VERSION__" + } + }, +- "node_modules/file-entry-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flat-cache": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/fill-range": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "to-regex-range": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/find-up": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-__VERSION__.tgz", +@@ -4278,41 +2458,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/flat-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flatted": "__VERSION__", +- "keyv": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/flatted": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flatted/-/flatted-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC" +- }, +- "node_modules/for-each": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-callable": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/fsevents": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-__VERSION__.tgz", +@@ -4328,49 +2473,6 @@ + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/function-bind": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/function.prototype.name": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "functions-have-names": "__VERSION__", +- "hasown": "__VERSION__", +- "is-callable": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/functions-have-names": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/generator-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/gensync": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-__VERSION__", +@@ -4391,29 +2493,6 @@ + "node": "6.* || 8.* || >= 10.*" + } + }, +- "node_modules/get-intrinsic": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind-apply-helpers": "__VERSION__", +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "function-bind": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "has-symbols": "__VERSION__", +- "hasown": "__VERSION__", +- "math-intrinsics": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/get-package-type": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-__VERSION__.tgz", +@@ -4424,18 +2503,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/get-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/get-stream": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-__VERSION__.tgz", +@@ -4449,22 +2516,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/get-symbol-description": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/glob/-/glob-__VERSION__.tgz", +@@ -4483,17 +2534,6 @@ + "url": "https://github.com/sponsors/isaacs" + } + }, +- "node_modules/glob-parent": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "is-glob": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/glob/node_modules/balanced-match": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +@@ -4533,106 +2573,6 @@ + "url": "https://github.com/sponsors/isaacs" + } + }, +- "node_modules/global-modules": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "global-prefix": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/global-prefix": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ini": "__VERSION__", +- "kind-of": "__VERSION__", +- "which": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/global-prefix/node_modules/which": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "isexe": "__VERSION__" +- }, +- "bin": { +- "which": "bin/which" +- } +- }, +- "node_modules/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/globalthis": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-properties": "__VERSION__", +- "gopd": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/globby": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globby/-/globby-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-union": "__VERSION__", +- "dir-glob": "__VERSION__", +- "fast-glob": "__VERSION__", +- "ignore": "__VERSION__", +- "merge2": "__VERSION__", +- "slash": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/globjoin": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/gopd": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/graceful-fs": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-__VERSION__.tgz", +@@ -4640,17 +2580,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/has-bigints": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/has-flag": { + "version": "__VERSION__", + "dev": true, +@@ -4659,87 +2588,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/has-property-descriptors": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-define-property": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/has-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/has-symbols": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/has-tostringtag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-symbols": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/hashery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hashery/-/hashery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/hasown": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "function-bind": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/hookified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/html-encoding-sniffer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-__VERSION__.tgz", +@@ -4753,21 +2601,6 @@ + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/html-entities": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/mdevils" +- }, +- { +- "type": "patreon", +- "url": "https://patreon.com/mdevils" +- } +- ], +- "license": "MIT" +- }, + "node_modules/html-escaper": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-__VERSION__.tgz", +@@ -4775,19 +2608,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/html-tags": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/human-signals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-__VERSION__.tgz", +@@ -4798,37 +2618,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/ignore": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 4" +- } +- }, +- "node_modules/import-fresh": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "parent-module": "__VERSION__", +- "resolve-from": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/import-fresh/node_modules/resolve-from": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/import-local": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-__VERSION__.tgz", +@@ -4857,40 +2646,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/ini": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC" +- }, +- "node_modules/internal-slot": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "hasown": "__VERSION__", +- "side-channel": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/is-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-arrayish": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-__VERSION__.tgz", +@@ -4898,131 +2653,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/is-async-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "async-function": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-proto": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-bigint": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-bigints": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-boolean-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-callable": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-core-module": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-data-view": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-date-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-extglob": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/is-finalizationregistry": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, +@@ -5041,92 +2671,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-generator-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "generator-function": "__VERSION__", +- "get-proto": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-glob": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-extglob": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/is-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-negative-zero": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-number": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/is-number/-/is-number-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/is-number-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-plain-object": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/is-potential-custom-element-name": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-__VERSION__.tgz", +@@ -5134,48 +2678,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/is-regex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "gopd": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-set": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-shared-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-stream": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-__VERSION__.tgz", +@@ -5189,96 +2691,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/is-string": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-symbol": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-symbols": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-typed-array": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakref": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/isarray": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/isexe": { + "version": "__VERSION__", + "dev": true, +@@ -6001,39 +3413,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/js-yaml": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/puzrin" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/nodeca" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "argparse": "__VERSION__" +- }, +- "bin": { +- "js-yaml": "bin/js-yaml.js" +- } +- }, +- "node_modules/jsdoc-type-pratt-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/jsdom": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-__VERSION__.tgz", +@@ -6124,13 +3503,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/json-buffer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/json-parse-even-better-errors": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-__VERSION__.tgz", +@@ -6138,54 +3510,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/json-schema-traverse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json-stable-stringify-without-jsonify": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json5": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "minimist": "__VERSION__" +- }, +- "bin": { +- "json5": "lib/cli.js" +- } +- }, +- "node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "json-buffer": "__VERSION__" +- } +- }, +- "node_modules/kind-of": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/known-css-properties": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/leven": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/leven/-/leven-__VERSION__.tgz", +@@ -6196,18 +3520,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/levn": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prelude-ls": "__VERSION__", +- "type-check": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, + "node_modules/lines-and-columns": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-__VERSION__.tgz", +@@ -6228,16 +3540,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/lodash.merge": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/lodash.truncate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/lru-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-__VERSION__.tgz", +@@ -6287,25 +3589,6 @@ + "tmpl": "__VERSION__" + } + }, +- "node_modules/math-intrinsics": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/mathml-tag-names": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/wooorm" +- } +- }, + "node_modules/mdn-data": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-__VERSION__.tgz", +@@ -6313,19 +3596,6 @@ + "dev": true, + "license": "CC0-1.0" + }, +- "node_modules/meow": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/meow/-/meow-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/merge-stream": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-__VERSION__.tgz", +@@ -6333,43 +3603,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/merge2": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/merge2/-/merge2-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/micromatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "braces": "__VERSION__", +- "picomatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/micromatch/node_modules/picomatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/jonschlinkert" +- } +- }, + "node_modules/mimic-fn": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-__VERSION__.tgz", +@@ -6380,27 +3613,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/minimatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "brace-expansion": "__VERSION__" +- }, +- "engines": { +- "node": "*" +- } +- }, +- "node_modules/minimist": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/minipass": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-__VERSION__.tgz", +@@ -6416,25 +3628,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/nanoid": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "license": "MIT", +- "bin": { +- "nanoid": "bin/nanoid.cjs" +- }, +- "engines": { +- "node": "^10 || ^12 || ^13.7 || ^14 || >=__VERSION__" +- } +- }, + "node_modules/napi-postinstall": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-__VERSION__.tgz", +@@ -6494,98 +3687,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/object-deep-merge": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/object-deep-merge/-/object-deep-merge-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/object-inspect": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/object.assign": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "has-symbols": "__VERSION__", +- "object-keys": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object.fromentries": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object.groupby": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/object.values": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/onetime": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-__VERSION__.tgz", +@@ -6602,38 +3703,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/optionator": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "deep-is": "__VERSION__", +- "fast-levenshtein": "__VERSION__", +- "levn": "__VERSION__", +- "prelude-ls": "__VERSION__", +- "type-check": "__VERSION__", +- "word-wrap": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/own-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "get-intrinsic": "__VERSION__", +- "object-keys": "__VERSION__", +- "safe-push-apply": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/p-limit": { + "version": "__VERSION__", + "dev": true, +@@ -6687,25 +3756,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/parent-module": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "callsites": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/parse-imports-exports": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "parse-statements": "__VERSION__" +- } +- }, + "node_modules/parse-json": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-__VERSION__.tgz", +@@ -6725,11 +3775,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/parse-statements": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/parse5": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-__VERSION__.tgz", +@@ -6759,11 +3804,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/path-parse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/path-scurry": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-__VERSION__.tgz", +@@ -6791,16 +3831,6 @@ + "node": "20 || >=22" + } + }, +- "node_modules/path-type": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/path-type/-/path-type-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/picocolors": { + "version": "__VERSION__", + "dev": true, +@@ -6842,139 +3872,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/possible-typed-array-names": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/postcss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss/-/postcss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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": "__VERSION__", +- "picocolors": "__VERSION__", +- "source-map-js": "__VERSION__" +- }, +- "engines": { +- "node": "^10 || ^12 || >=14" +- } +- }, +- "node_modules/postcss-resolve-nested-selector": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/postcss-safe-parser": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/postcss/" +- }, +- { +- "type": "tidelift", +- "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, +- "node_modules/postcss-selector-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cssesc": "__VERSION__", +- "util-deprecate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/postcss-sorting": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, +- "node_modules/postcss-value-parser": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/prelude-ls": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/prettier": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/prettier/-/prettier-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "prettier": "bin/prettier.cjs" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/prettier/prettier?sponsor=1" +- } +- }, +- "node_modules/prettier-linter-helpers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-diff": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/pretty-format": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-__VERSION__.tgz", +@@ -7031,56 +3928,6 @@ + ], + "license": "MIT" + }, +- "node_modules/qified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/qified/-/qified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/qified/node_modules/hookified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/queue-microtask": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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/ramda": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/ramda" +- } +- }, + "node_modules/react-is-18": { + "name": "react-is", + "version": "__VERSION__", +@@ -7097,46 +3944,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/reflect.getprototypeof": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "get-proto": "__VERSION__", +- "which-builtin-type": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/regexp.prototype.flags": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "set-function-name": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/require-directory": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-__VERSION__.tgz", +@@ -7155,36 +3962,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/reserved-identifiers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/resolve": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-core-module": "__VERSION__", +- "path-parse": "__VERSION__", +- "supports-preserve-symlinks-flag": "__VERSION__" +- }, +- "bin": { +- "resolve": "bin/resolve" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/resolve-cwd": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-__VERSION__.tgz", +@@ -7208,90 +3985,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/reusify": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/reusify/-/reusify-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "iojs": "__VERSION__", +- "node": "__VERSION__" +- } +- }, +- "node_modules/run-parallel": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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": "__VERSION__" +- } +- }, +- "node_modules/safe-array-concat": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "has-symbols": "__VERSION__", +- "isarray": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/safe-push-apply": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "isarray": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/safe-regex-test": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-regex": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/saxes": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-__VERSION__.tgz", +@@ -7313,49 +4006,6 @@ + "semver": "bin/semver.js" + } + }, +- "node_modules/set-function-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "function-bind": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "gopd": "__VERSION__", +- "has-property-descriptors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/set-function-name": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "functions-have-names": "__VERSION__", +- "has-property-descriptors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/set-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/shebang-command": { + "version": "__VERSION__", + "dev": true, +@@ -7375,74 +4025,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/side-channel": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "object-inspect": "__VERSION__", +- "side-channel-list": "__VERSION__", +- "side-channel-map": "__VERSION__", +- "side-channel-weakmap": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-list": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-weakmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "object-inspect": "__VERSION__", +- "side-channel-map": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/signal-exit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-__VERSION__.tgz", +@@ -7466,22 +4048,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/slice-ansi": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ansi-styles": "__VERSION__", +- "astral-regex": "__VERSION__", +- "is-fullwidth-code-point": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/slice-ansi?sponsor=1" +- } +- }, + "node_modules/source-map": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-__VERSION__.tgz", +@@ -7511,31 +4077,6 @@ + "source-map": "__VERSION__" + } + }, +- "node_modules/spdx-exceptions": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC-BY-3.0" +- }, +- "node_modules/spdx-expression-parse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "spdx-exceptions": "__VERSION__", +- "spdx-license-ids": "__VERSION__" +- } +- }, +- "node_modules/spdx-license-ids": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC0-1.0" +- }, + "node_modules/sprintf-js": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-__VERSION__.tgz", +@@ -7566,18 +4107,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/stop-iteration-iterator": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "internal-slot": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/string-length": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-__VERSION__.tgz", +@@ -7605,59 +4134,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/string.prototype.trim": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-data-property": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "has-property-descriptors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/string.prototype.trimend": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/string.prototype.trimstart": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, +@@ -7669,14 +4145,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/strip-bom": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/strip-final-newline": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-__VERSION__.tgz", +@@ -7698,173 +4166,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/stylelint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-syntax-patches-for-csstree": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__", +- "@csstools/media-query-list-parser": "__VERSION__", +- "@csstools/selector-specificity": "__VERSION__", +- "@dual-bundle/import-meta-resolve": "__VERSION__", +- "balanced-match": "__VERSION__", +- "colord": "__VERSION__", +- "cosmiconfig": "__VERSION__", +- "css-functions-list": "__VERSION__", +- "css-tree": "__VERSION__", +- "debug": "__VERSION__", +- "fast-glob": "__VERSION__", +- "fastest-levenshtein": "__VERSION__", +- "file-entry-cache": "__VERSION__", +- "global-modules": "__VERSION__", +- "globby": "__VERSION__", +- "globjoin": "__VERSION__", +- "html-tags": "__VERSION__", +- "ignore": "__VERSION__", +- "imurmurhash": "__VERSION__", +- "is-plain-object": "__VERSION__", +- "known-css-properties": "__VERSION__", +- "mathml-tag-names": "__VERSION__", +- "meow": "__VERSION__", +- "micromatch": "__VERSION__", +- "normalize-path": "__VERSION__", +- "picocolors": "__VERSION__", +- "postcss": "__VERSION__", +- "postcss-resolve-nested-selector": "__VERSION__", +- "postcss-safe-parser": "__VERSION__", +- "postcss-selector-parser": "__VERSION__", +- "postcss-value-parser": "__VERSION__", +- "resolve-from": "__VERSION__", +- "string-width": "__VERSION__", +- "supports-hyperlinks": "__VERSION__", +- "svg-tags": "__VERSION__", +- "table": "__VERSION__", +- "write-file-atomic": "__VERSION__" +- }, +- "bin": { +- "stylelint": "bin/stylelint.mjs" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-recommended": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-standard": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "stylelint-config-recommended": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint-order": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "postcss": "__VERSION__", +- "postcss-sorting": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__ || __VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/balanced-match": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/stylelint/node_modules/file-entry-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flat-cache": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/flat-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cacheable": "__VERSION__", +- "flatted": "__VERSION__", +- "hookified": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/ignore": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 4" +- } +- }, + "node_modules/supports-color": { + "version": "__VERSION__", + "dev": true, +@@ -7876,38 +4177,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/supports-hyperlinks": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-flag": "__VERSION__", +- "supports-color": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" +- } +- }, +- "node_modules/supports-preserve-symlinks-flag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/svg-tags": { +- "version": "__VERSION__", +- "dev": true +- }, + "node_modules/symbol-tree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-__VERSION__.tgz", +@@ -7931,41 +4200,6 @@ + "url": "https://opencollective.com/synckit" + } + }, +- "node_modules/table": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "ajv": "__VERSION__", +- "lodash.truncate": "__VERSION__", +- "slice-ansi": "__VERSION__", +- "string-width": "__VERSION__", +- "strip-ansi": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/table/node_modules/ajv": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-deep-equal": "__VERSION__", +- "fast-uri": "__VERSION__", +- "json-schema-traverse": "__VERSION__", +- "require-from-string": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/epoberezkin" +- } +- }, +- "node_modules/table/node_modules/json-schema-traverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/test-exclude": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-__VERSION__.tgz", +@@ -8047,34 +4281,6 @@ + "dev": true, + "license": "BSD-3-Clause" + }, +- "node_modules/to-regex-range": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-number": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/to-valid-identifier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@sindresorhus/base62": "__VERSION__", +- "reserved-identifiers": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/tough-cookie": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-__VERSION__.tgz", +@@ -8101,17 +4307,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/tsconfig-paths": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/json5": "__VERSION__", +- "json5": "__VERSION__", +- "minimist": "__VERSION__", +- "strip-bom": "__VERSION__" +- } +- }, + "node_modules/tslib": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-__VERSION__.tgz", +@@ -8120,17 +4315,6 @@ + "license": "0BSD", + "optional": true + }, +- "node_modules/type-check": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prelude-ls": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, + "node_modules/type-detect": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-__VERSION__.tgz", +@@ -8154,93 +4338,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/typed-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/typed-array-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "has-proto": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/typed-array-byte-offset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "has-proto": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "reflect.getprototypeof": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/typed-array-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "possible-typed-array-names": "__VERSION__", +- "reflect.getprototypeof": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/unbox-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-bigints": "__VERSION__", +- "has-symbols": "__VERSION__", +- "which-boxed-primitive": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/undici": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/undici/-/undici-__VERSION__.tgz", +@@ -8327,23 +4424,6 @@ + "browserslist": ">= __VERSION__" + } + }, +- "node_modules/uri-js": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "punycode": "__VERSION__" +- } +- }, +- "node_modules/util-deprecate": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/v8-to-istanbul": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-__VERSION__.tgz", +@@ -8431,95 +4511,6 @@ + "node": ">= 8" + } + }, +- "node_modules/which-boxed-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-bigint": "__VERSION__", +- "is-boolean-object": "__VERSION__", +- "is-number-object": "__VERSION__", +- "is-string": "__VERSION__", +- "is-symbol": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-builtin-type": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "function.prototype.name": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "is-async-function": "__VERSION__", +- "is-date-object": "__VERSION__", +- "is-finalizationregistry": "__VERSION__", +- "is-generator-function": "__VERSION__", +- "is-regex": "__VERSION__", +- "is-weakref": "__VERSION__", +- "isarray": "__VERSION__", +- "which-boxed-primitive": "__VERSION__", +- "which-collection": "__VERSION__", +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-collection": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-map": "__VERSION__", +- "is-set": "__VERSION__", +- "is-weakmap": "__VERSION__", +- "is-weakset": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-typed-array": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "for-each": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/word-wrap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/write-file-atomic": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-__VERSION__.tgz", +@@ -8567,39 +4558,6 @@ + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC" +- }, +- "node_modules/yaml": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/yaml/-/yaml-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "yaml": "bin.mjs" +- }, +- "engines": { +- "node": ">= 14.6" +- }, +- "funding": { +- "url": "https://github.com/sponsors/eemeli" +- } +- }, +- "node_modules/yaml-eslint-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "eslint-visitor-keys": "__VERSION__", +- "yaml": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ota-meshi" +- } + }, + "node_modules/yargs": { + "version": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/package.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/package.json new file mode 100644 index 0000000000..f7afc86c64 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/package.json @@ -0,0 +1,34 @@ +@@ -8,32 +8,11 @@ + "node": ">= __VERSION__" + }, + "scripts": { +- "lint-js": "eslint web/modules/custom --max-warnings=0 --no-error-on-unmatched-pattern", +- "lint-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\"", +- "lint": "npm run lint-js && npm run lint-css", +- "lint-fix-js": "eslint web/modules/custom --no-error-on-unmatched-pattern --fix", +- "lint-fix-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\" --fix", +- "lint-fix": "npm run lint-fix-js && npm run lint-fix-css", + "test": "jest --coverage --passWithNoTests" + }, + "devDependencies": { +- "@eslint/compat": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@homer0/prettier-plugin-jsdoc": "__VERSION__", + "jest": "__VERSION__", +- "jest-environment-jsdom": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": "__VERSION__", +- "eslint-plugin-import": "__VERSION__", +- "eslint-plugin-jsdoc": "__VERSION__", +- "eslint-plugin-no-jquery": "__VERSION__", +- "eslint-plugin-prettier": "__VERSION__", +- "eslint-plugin-yml": "__VERSION__", +- "globals": "__VERSION__", +- "prettier": "__VERSION__", +- "stylelint": "__VERSION__", +- "stylelint-config-standard": "__VERSION__", +- "stylelint-order": "__VERSION__" ++ "jest-environment-jsdom": "__VERSION__" + }, + "overrides": { + "test-exclude": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/web/themes/custom/star_wars/README.md b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/web/themes/custom/star_wars/README.md new file mode 100644 index 0000000000..3d20bae61b --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/web/themes/custom/star_wars/README.md @@ -0,0 +1,6 @@ +@@ -20,5 +20,3 @@ + | `npm run build` | Production build (minified, no source maps) | + | `npm run build-dev` | Development build (expanded, with source maps) | + | `npm run watch` | Watch for changes and rebuild automatically | +-| `npm run lint` | Check code style (JS and SCSS) | +-| `npm run lint-fix` | Fix code style issues automatically | diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/web/themes/custom/star_wars/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/web/themes/custom/star_wars/package-lock.json new file mode 100644 index 0000000000..b755e7a9be --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/web/themes/custom/star_wars/package-lock.json @@ -0,0 +1,4550 @@ +@@ -9,520 +9,15 @@ + "version": "__VERSION__", + "hasInstallScript": true, + "devDependencies": { +- "@eslint/compat": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@homer0/prettier-plugin-jsdoc": "__VERSION__", + "autoprefixer": "__VERSION__", + "chokidar-cli": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": "__VERSION__", +- "eslint-plugin-import": "__VERSION__", +- "eslint-plugin-jsdoc": "__VERSION__", +- "eslint-plugin-no-jquery": "__VERSION__", +- "eslint-plugin-prettier": "__VERSION__", +- "eslint-plugin-yml": "__VERSION__", +- "globals": "__VERSION__", + "patch-package": "__VERSION__", + "postcss": "__VERSION__", + "postcss-cli": "__VERSION__", +- "prettier": "__VERSION__", + "sass": "__VERSION__", +- "stylelint": "__VERSION__", +- "stylelint-config-standard": "__VERSION__", +- "stylelint-config-standard-scss": "__VERSION__", +- "stylelint-order": "__VERSION__", +- "stylelint-scss": "__VERSION__", + "terser": "__VERSION__" + } + }, +- "node_modules/@babel/code-frame": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-validator-identifier": "__VERSION__", +- "js-tokens": "__VERSION__", +- "picocolors": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/helper-validator-identifier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@cacheable/utils": "__VERSION__", +- "@keyv/bigmap": "__VERSION__", +- "hookified": "__VERSION__", +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hashery": "__VERSION__", +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": ">= 18" +- }, +- "peerDependencies": { +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hashery": "__VERSION__", +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/utils/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, +- "node_modules/@csstools/css-parser-algorithms": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@csstools/css-syntax-patches-for-csstree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT-0", +- "peerDependencies": { +- "css-tree": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "css-tree": { +- "optional": true +- } +- } +- }, +- "node_modules/@csstools/css-tokenizer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@csstools/media-query-list-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@csstools/selector-specificity": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT-0", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss-selector-parser": "__VERSION__" +- } +- }, +- "node_modules/@dual-bundle/import-meta-resolve": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/JounQin" +- } +- }, +- "node_modules/@es-joy/jsdoccomment": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/estree": "__VERSION__", +- "@typescript-eslint/types": "__VERSION__", +- "comment-parser": "__VERSION__", +- "esquery": "__VERSION__", +- "jsdoc-type-pratt-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- } +- }, +- "node_modules/@es-joy/resolve.exports": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@eslint-community/eslint-utils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint-community/regexpp": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/compat": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "peerDependencies": { +- "eslint": "^8.40 || 9 || 10" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- } +- } +- }, +- "node_modules/@eslint/compat/node_modules/@eslint/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@types/json-schema": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- } +- }, +- "node_modules/@eslint/config-array": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/object-schema": "__VERSION__", +- "debug": "__VERSION__", +- "minimatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/config-helpers": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@types/json-schema": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/eslintrc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ajv": "__VERSION__", +- "debug": "__VERSION__", +- "espree": "__VERSION__", +- "globals": "__VERSION__", +- "ignore": "__VERSION__", +- "import-fresh": "__VERSION__", +- "js-yaml": "__VERSION__", +- "minimatch": "__VERSION__", +- "strip-json-comments": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/@eslint/eslintrc/node_modules/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/@eslint/js": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://eslint.org/donate" +- } +- }, +- "node_modules/@eslint/object-schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/plugin-kit": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__", +- "levn": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@homer0/prettier-plugin-jsdoc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@homer0/prettier-plugin-jsdoc/-/prettier-plugin-jsdoc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "comment-parser": "__VERSION__", +- "ramda": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "prettier": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@humanfs/types": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/node": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@humanfs/core": "__VERSION__", +- "@humanfs/types": "__VERSION__", +- "@humanwhocodes/retry": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanwhocodes/module-importer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/nzakas" +- } +- }, +- "node_modules/@humanwhocodes/retry": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/nzakas" +- } +- }, + "node_modules/@jridgewell/gen-mapping": { + "version": "__VERSION__", + "dev": true, +@@ -563,51 +58,6 @@ + "@jridgewell/sourcemap-codec": "__VERSION__" + } + }, +- "node_modules/@keyv/serialize": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@nodelib/fs.scandir": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.stat": "__VERSION__", +- "run-parallel": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/@nodelib/fs.stat": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/@nodelib/fs.walk": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.scandir": "__VERSION__", +- "fastq": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, + "node_modules/@parcel/watcher": { + "version": "__VERSION__", + "dev": true, +@@ -944,64 +394,6 @@ + "url": "https://github.com/sponsors/jonschlinkert" + } + }, +- "node_modules/@pkgr/core": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/pkgr" +- } +- }, +- "node_modules/@rtsao/scc": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@sindresorhus/base62": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/@types/estree": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/json-schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/json5": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@typescript-eslint/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/typescript-eslint" +- } +- }, + "node_modules/@yarnpkg/lockfile": { + "version": "__VERSION__", + "dev": true, +@@ -1018,29 +410,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/acorn-jsx": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "acorn": "__VERSION__ || __VERSION__ || __VERSION__" +- } +- }, +- "node_modules/ajv": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-deep-equal": "__VERSION__", +- "fast-json-stable-stringify": "__VERSION__", +- "json-schema-traverse": "__VERSION__", +- "uri-js": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/epoberezkin" +- } +- }, + "node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, +@@ -1075,155 +444,6 @@ + "node": ">= 8" + } + }, +- "node_modules/are-docs-informative": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/argparse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Python-2.0" +- }, +- "node_modules/array-buffer-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "is-array-buffer": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array-includes": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-string": "__VERSION__", +- "math-intrinsics": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array-union": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/array-union/-/array-union-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/array.prototype.findlastindex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array.prototype.flat": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array.prototype.flatmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/arraybuffer.prototype.slice": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-buffer-byte-length": "__VERSION__", +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-array-buffer": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/astral-regex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/async-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/autoprefixer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-__VERSION__.tgz", +@@ -1261,27 +481,6 @@ + "postcss": "__VERSION__" + } + }, +- "node_modules/available-typed-arrays": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "possible-typed-array-names": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/balanced-match": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/baseline-browser-mapping": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-__VERSION__.tgz", +@@ -1306,20 +505,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/brace-expansion": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "balanced-match": "__VERSION__", +- "concat-map": "__VERSION__" +- } +- }, +- "node_modules/brace-expansion/node_modules/balanced-match": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/braces": { + "version": "__VERSION__", + "dev": true, +@@ -1370,30 +555,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/cacheable": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@cacheable/memory": "__VERSION__", +- "@cacheable/utils": "__VERSION__", +- "hookified": "__VERSION__", +- "keyv": "__VERSION__", +- "qified": "__VERSION__" +- } +- }, +- "node_modules/cacheable/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, + "node_modules/call-bind": { + "version": "__VERSION__", + "dev": true, +@@ -1438,14 +599,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/callsites": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/camelcase": { + "version": "__VERSION__", + "dev": true, +@@ -1617,56 +770,11 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/colord": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/commander": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/comment-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/concat-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/cosmiconfig": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "env-paths": "__VERSION__", +- "import-fresh": "__VERSION__", +- "js-yaml": "__VERSION__", +- "parse-json": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/d-fischer" +- }, +- "peerDependencies": { +- "typescript": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "typescript": { +- "optional": true +- } +- } +- }, + "node_modules/cross-spawn": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-__VERSION__.tgz", +@@ -1698,106 +806,6 @@ + "node": ">= 8" + } + }, +- "node_modules/css-functions-list": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/css-tree": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "mdn-data": "__VERSION__", +- "source-map-js": "__VERSION__" +- }, +- "engines": { +- "node": "^10 || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/css-tree/node_modules/mdn-data": { +- "version": "__VERSION__", +- "dev": true, +- "license": "CC0-1.0" +- }, +- "node_modules/cssesc": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "cssesc": "bin/cssesc" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/data-view-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/data-view-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/inspect-js" +- } +- }, +- "node_modules/data-view-byte-offset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "supports-color": { +- "optional": true +- } +- } +- }, + "node_modules/decamelize": { + "version": "__VERSION__", + "dev": true, +@@ -1806,11 +814,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/deep-is": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/define-data-property": { + "version": "__VERSION__", + "dev": true, +@@ -1827,22 +830,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/define-properties": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "object-keys": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/dependency-graph": { + "version": "__VERSION__", + "dev": true, +@@ -1860,40 +847,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/diff-sequences": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/dir-glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "path-type": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/doctrine": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "esutils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/dunder-proto": { + "version": "__VERSION__", + "dev": true, +@@ -1919,106 +872,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/env-paths": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/error-ex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-arrayish": "__VERSION__" +- } +- }, +- "node_modules/es-abstract": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-buffer-byte-length": "__VERSION__", +- "arraybuffer.prototype.slice": "__VERSION__", +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "data-view-buffer": "__VERSION__", +- "data-view-byte-length": "__VERSION__", +- "data-view-byte-offset": "__VERSION__", +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "es-set-tostringtag": "__VERSION__", +- "es-to-primitive": "__VERSION__", +- "function.prototype.name": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "get-proto": "__VERSION__", +- "get-symbol-description": "__VERSION__", +- "globalthis": "__VERSION__", +- "gopd": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "has-proto": "__VERSION__", +- "has-symbols": "__VERSION__", +- "hasown": "__VERSION__", +- "internal-slot": "__VERSION__", +- "is-array-buffer": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-data-view": "__VERSION__", +- "is-negative-zero": "__VERSION__", +- "is-regex": "__VERSION__", +- "is-set": "__VERSION__", +- "is-shared-array-buffer": "__VERSION__", +- "is-string": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "is-weakref": "__VERSION__", +- "math-intrinsics": "__VERSION__", +- "object-inspect": "__VERSION__", +- "object-keys": "__VERSION__", +- "object.assign": "__VERSION__", +- "own-keys": "__VERSION__", +- "regexp.prototype.flags": "__VERSION__", +- "safe-array-concat": "__VERSION__", +- "safe-push-apply": "__VERSION__", +- "safe-regex-test": "__VERSION__", +- "set-proto": "__VERSION__", +- "stop-iteration-iterator": "__VERSION__", +- "string.prototype.trim": "__VERSION__", +- "string.prototype.trimend": "__VERSION__", +- "string.prototype.trimstart": "__VERSION__", +- "typed-array-buffer": "__VERSION__", +- "typed-array-byte-length": "__VERSION__", +- "typed-array-byte-offset": "__VERSION__", +- "typed-array-length": "__VERSION__", +- "unbox-primitive": "__VERSION__", +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/es-abstract-get": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "is-callable": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/es-define-property": { + "version": "__VERSION__", + "dev": true, +@@ -2046,49 +899,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/es-set-tostringtag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-shim-unscopables": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-to-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-abstract-get": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-date-object": "__VERSION__", +- "is-symbol": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/escalade": { + "version": "__VERSION__", + "dev": true, +@@ -2097,547 +907,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/escape-string-regexp": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/eslint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint/-/eslint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@eslint-community/eslint-utils": "__VERSION__", +- "@eslint-community/regexpp": "__VERSION__", +- "@eslint/config-array": "__VERSION__", +- "@eslint/config-helpers": "__VERSION__", +- "@eslint/core": "__VERSION__", +- "@eslint/eslintrc": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@eslint/plugin-kit": "__VERSION__", +- "@humanfs/node": "__VERSION__", +- "@humanwhocodes/module-importer": "__VERSION__", +- "@humanwhocodes/retry": "__VERSION__", +- "@types/estree": "__VERSION__", +- "ajv": "__VERSION__", +- "chalk": "__VERSION__", +- "cross-spawn": "__VERSION__", +- "debug": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "eslint-scope": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__", +- "espree": "__VERSION__", +- "esquery": "__VERSION__", +- "esutils": "__VERSION__", +- "fast-deep-equal": "__VERSION__", +- "file-entry-cache": "__VERSION__", +- "find-up": "__VERSION__", +- "glob-parent": "__VERSION__", +- "ignore": "__VERSION__", +- "imurmurhash": "__VERSION__", +- "is-glob": "__VERSION__", +- "json-stable-stringify-without-jsonify": "__VERSION__", +- "lodash.merge": "__VERSION__", +- "minimatch": "__VERSION__", +- "natural-compare": "__VERSION__", +- "optionator": "__VERSION__" +- }, +- "bin": { +- "eslint": "bin/eslint.js" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://eslint.org/donate" +- }, +- "peerDependencies": { +- "jiti": "*" +- }, +- "peerDependenciesMeta": { +- "jiti": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-compat-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-compat-utils/node_modules/semver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/eslint-config-prettier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "eslint-config-prettier": "bin/cli.js" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint-config-prettier" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-import-resolver-node": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__", +- "is-core-module": "__VERSION__", +- "resolve": "__VERSION__" +- } +- }, +- "node_modules/eslint-import-resolver-node/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-module-utils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-module-utils/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-import": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@rtsao/scc": "__VERSION__", +- "array-includes": "__VERSION__", +- "array.prototype.findlastindex": "__VERSION__", +- "array.prototype.flat": "__VERSION__", +- "array.prototype.flatmap": "__VERSION__", +- "debug": "__VERSION__", +- "doctrine": "__VERSION__", +- "eslint-import-resolver-node": "__VERSION__", +- "eslint-module-utils": "__VERSION__", +- "hasown": "__VERSION__", +- "is-core-module": "__VERSION__", +- "is-glob": "__VERSION__", +- "minimatch": "__VERSION__", +- "object.fromentries": "__VERSION__", +- "object.groupby": "__VERSION__", +- "object.values": "__VERSION__", +- "semver": "__VERSION__", +- "string.prototype.trimend": "__VERSION__", +- "tsconfig-paths": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || __VERSION__ || ^8 || ^9" +- } +- }, +- "node_modules/eslint-plugin-import/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "@es-joy/jsdoccomment": "__VERSION__", +- "@es-joy/resolve.exports": "__VERSION__", +- "are-docs-informative": "__VERSION__", +- "comment-parser": "__VERSION__", +- "debug": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "espree": "__VERSION__", +- "esquery": "__VERSION__", +- "html-entities": "__VERSION__", +- "object-deep-merge": "__VERSION__", +- "parse-imports-exports": "__VERSION__", +- "semver": "__VERSION__", +- "spdx-expression-parse": "__VERSION__", +- "to-valid-identifier": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=24" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__ || __VERSION__ || __VERSION__ || __VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/espree": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "acorn": "__VERSION__", +- "acorn-jsx": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/semver": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-no-jquery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "eslint": "__VERSION__", +- "oxlint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- }, +- "oxlint": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-plugin-prettier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prettier-linter-helpers": "__VERSION__", +- "synckit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint-plugin-prettier" +- }, +- "peerDependencies": { +- "@types/eslint": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": ">= __VERSION__ <__VERSION__ || >=__VERSION__", +- "prettier": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "@types/eslint": { +- "optional": true +- }, +- "eslint-config-prettier": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-plugin-yml": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__", +- "diff-sequences": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "eslint-compat-utils": "__VERSION__", +- "natural-compare": "__VERSION__", +- "yaml-eslint-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ota-meshi" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-scope": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "esrecurse": "__VERSION__", +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint/node_modules/glob-parent": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "is-glob": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/espree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/espree/-/espree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "acorn": "__VERSION__", +- "acorn-jsx": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/espree/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/esquery": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/esrecurse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/estraverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/esutils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/fast-deep-equal": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/fast-diff": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0" +- }, +- "node_modules/fast-glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.stat": "__VERSION__", +- "@nodelib/fs.walk": "__VERSION__", +- "glob-parent": "__VERSION__", +- "merge2": "__VERSION__", +- "micromatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/fast-json-stable-stringify": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/fast-levenshtein": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/fast-uri": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/fastify" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/fastify" +- } +- ], +- "license": "BSD-3-Clause" +- }, +- "node_modules/fastest-levenshtein": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/fastq": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fastq/-/fastq-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "reusify": "__VERSION__" +- } +- }, +- "node_modules/file-entry-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flat-cache": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/fill-range": { + "version": "__VERSION__", + "dev": true, +@@ -2649,21 +918,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/find-up": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "locate-path": "__VERSION__", +- "path-exists": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/find-yarn-workspace-root": { + "version": "__VERSION__", + "dev": true, +@@ -2672,41 +926,6 @@ + "micromatch": "__VERSION__" + } + }, +- "node_modules/flat-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flatted": "__VERSION__", +- "keyv": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/flatted": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flatted/-/flatted-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC" +- }, +- "node_modules/for-each": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-callable": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/fraction.js": { + "version": "__VERSION__", + "dev": true, +@@ -2755,44 +974,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/function.prototype.name": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "functions-have-names": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "hasown": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-document.all": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/functions-have-names": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/generator-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/get-caller-file": { + "version": "__VERSION__", + "dev": true, +@@ -2836,22 +1017,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/get-symbol-description": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/glob-parent": { + "version": "__VERSION__", + "dev": true, +@@ -2863,94 +1028,6 @@ + "node": ">= 6" + } + }, +- "node_modules/global-modules": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "global-prefix": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/global-prefix": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ini": "__VERSION__", +- "kind-of": "__VERSION__", +- "which": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/globalthis": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-properties": "__VERSION__", +- "gopd": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/globby": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globby/-/globby-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-union": "__VERSION__", +- "dir-glob": "__VERSION__", +- "fast-glob": "__VERSION__", +- "ignore": "__VERSION__", +- "merge2": "__VERSION__", +- "slash": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/globby/node_modules/slash": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/slash/-/slash-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/globjoin": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/gopd": { + "version": "__VERSION__", + "dev": true, +@@ -2967,17 +1044,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/has-bigints": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/has-flag": { + "version": "__VERSION__", + "dev": true, +@@ -2997,20 +1063,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/has-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/has-symbols": { + "version": "__VERSION__", + "dev": true, +@@ -3022,33 +1074,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/has-tostringtag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-symbols": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/hashery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hashery/-/hashery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/hasown": { + "version": "__VERSION__", + "dev": true, +@@ -3060,156 +1085,11 @@ + "node": ">= 0.4" + } + }, +- "node_modules/hookified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/html-entities": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/mdevils" +- }, +- { +- "type": "patreon", +- "url": "https://patreon.com/mdevils" +- } +- ], +- "license": "MIT" +- }, +- "node_modules/html-tags": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/ignore": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 4" +- } +- }, + "node_modules/immutable": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/import-fresh": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "parent-module": "__VERSION__", +- "resolve-from": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/import-fresh/node_modules/resolve-from": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/imurmurhash": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/ini": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC" +- }, +- "node_modules/internal-slot": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "hasown": "__VERSION__", +- "side-channel": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/is-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-arrayish": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/is-async-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "async-function": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-proto": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-bigint": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-bigints": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-binary-path": { + "version": "__VERSION__", + "dev": true, +@@ -3221,77 +1101,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-boolean-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-callable": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-core-module": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-data-view": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-date-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-docker": { + "version": "__VERSION__", + "dev": true, +@@ -3306,20 +1115,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/is-document.all": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-extglob": { + "version": "__VERSION__", + "dev": true, +@@ -3328,20 +1123,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-finalizationregistry": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, +@@ -3350,24 +1131,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-generator-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "generator-function": "__VERSION__", +- "get-proto": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-glob": { + "version": "__VERSION__", + "dev": true, +@@ -3379,28 +1142,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-negative-zero": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-number": { + "version": "__VERSION__", + "dev": true, +@@ -3409,156 +1150,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-number-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-plain-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/is-regex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "gopd": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-set": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-shared-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-string": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-symbol": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-symbols": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-typed-array": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakref": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-wsl": { + "version": "__VERSION__", + "dev": true, +@@ -3580,61 +1171,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/js-tokens": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/js-yaml": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/puzrin" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/nodeca" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "argparse": "__VERSION__" +- }, +- "bin": { +- "js-yaml": "bin/js-yaml.js" +- } +- }, +- "node_modules/jsdoc-type-pratt-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/json-buffer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json-parse-even-better-errors": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json-schema-traverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/json-stable-stringify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-__VERSION__.tgz", +@@ -3655,22 +1191,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/json-stable-stringify-without-jsonify": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json5": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "minimist": "__VERSION__" +- }, +- "bin": { +- "json5": "lib/cli.js" +- } +- }, + "node_modules/jsonfile": { + "version": "__VERSION__", + "dev": true, +@@ -3692,24 +1212,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "json-buffer": "__VERSION__" +- } +- }, +- "node_modules/kind-of": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/klaw-sync": { + "version": "__VERSION__", + "dev": true, +@@ -3718,23 +1220,6 @@ + "graceful-fs": "__VERSION__" + } + }, +- "node_modules/known-css-properties": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/levn": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prelude-ls": "__VERSION__", +- "type-check": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, + "node_modules/lilconfig": { + "version": "__VERSION__", + "dev": true, +@@ -3746,45 +1231,16 @@ + "url": "https://github.com/sponsors/antonk52" + } + }, +- "node_modules/lines-and-columns": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/locate-path": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-locate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/lodash.debounce": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/lodash.merge": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/lodash.throttle": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/lodash.truncate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/math-intrinsics": { + "version": "__VERSION__", + "dev": true, +@@ -3793,47 +1249,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/mathml-tag-names": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/wooorm" +- } +- }, +- "node_modules/mdn-data": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC0-1.0" +- }, +- "node_modules/meow": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/meow/-/meow-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/merge2": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/merge2/-/merge2-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 8" +- } +- }, + "node_modules/micromatch": { + "version": "__VERSION__", + "dev": true, +@@ -3846,17 +1261,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/minimatch": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "brace-expansion": "__VERSION__" +- }, +- "engines": { +- "node": "*" +- } +- }, + "node_modules/minimist": { + "version": "__VERSION__", + "dev": true, +@@ -3865,11 +1269,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/ms": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/nanoid": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-__VERSION__.tgz", +@@ -3889,11 +1288,6 @@ + "node": "^10 || ^12 || ^13.7 || ^14 || >=__VERSION__" + } + }, +- "node_modules/natural-compare": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/node-addon-api": { + "version": "__VERSION__", + "dev": true, +@@ -3900,23 +1294,6 @@ + "license": "MIT", + "optional": true + }, +- "node_modules/node-exports-info": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array.prototype.flatmap": "__VERSION__", +- "es-errors": "__VERSION__", +- "object.entries": "__VERSION__", +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/node-releases": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-__VERSION__.tgz", +@@ -3935,22 +1312,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/object-deep-merge": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/object-inspect": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/object-keys": { + "version": "__VERSION__", + "dev": true, +@@ -3959,86 +1320,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/object.assign": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "has-symbols": "__VERSION__", +- "object-keys": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object.entries": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/object.fromentries": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object.groupby": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/object.values": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/open": { + "version": "__VERSION__", + "dev": true, +@@ -4054,66 +1335,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/optionator": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "deep-is": "__VERSION__", +- "fast-levenshtein": "__VERSION__", +- "levn": "__VERSION__", +- "prelude-ls": "__VERSION__", +- "type-check": "__VERSION__", +- "word-wrap": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/own-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "get-intrinsic": "__VERSION__", +- "object-keys": "__VERSION__", +- "safe-push-apply": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/p-limit": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "yocto-queue": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/p-locate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-limit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/p-try": { + "version": "__VERSION__", + "dev": true, +@@ -4122,47 +1343,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/parent-module": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "callsites": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/parse-imports-exports": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "parse-statements": "__VERSION__" +- } +- }, +- "node_modules/parse-json": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/code-frame": "__VERSION__", +- "error-ex": "__VERSION__", +- "json-parse-even-better-errors": "__VERSION__", +- "lines-and-columns": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/parse-statements": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/patch-package": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-__VERSION__.tgz", +@@ -4221,14 +1401,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/path-exists": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/path-key": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-__VERSION__.tgz", +@@ -4239,21 +1411,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/path-parse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/path-type": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/path-type/-/path-type-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/picocolors": { + "version": "__VERSION__", + "dev": true, +@@ -4278,14 +1435,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/possible-typed-array-names": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/postcss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-__VERSION__.tgz", +@@ -4453,13 +1602,6 @@ + } + } + }, +- "node_modules/postcss-media-query-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/postcss-reporter": { + "version": "__VERSION__", + "dev": true, +@@ -4485,125 +1627,11 @@ + "postcss": "__VERSION__" + } + }, +- "node_modules/postcss-resolve-nested-selector": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/postcss-safe-parser": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/postcss/" +- }, +- { +- "type": "tidelift", +- "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, +- "node_modules/postcss-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/postcss/" +- }, +- { +- "type": "tidelift", +- "url": "https://tidelift.com/funding/github/npm/postcss-scss" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, +- "node_modules/postcss-selector-parser": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cssesc": "__VERSION__", +- "util-deprecate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/postcss-sorting": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, + "node_modules/postcss-value-parser": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/prelude-ls": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/prettier": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/prettier/-/prettier-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "prettier": "bin/prettier.cjs" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/prettier/prettier?sponsor=1" +- } +- }, +- "node_modules/prettier-linter-helpers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-diff": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/pretty-hrtime": { + "version": "__VERSION__", + "dev": true, +@@ -4612,64 +1640,6 @@ + "node": ">= 0.8" + } + }, +- "node_modules/punycode": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/qified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/qified/-/qified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/qified/node_modules/hookified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/queue-microtask": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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/ramda": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/ramda" +- } +- }, + "node_modules/read-cache": { + "version": "__VERSION__", + "dev": true, +@@ -4689,46 +1659,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/reflect.getprototypeof": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "get-proto": "__VERSION__", +- "which-builtin-type": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/regexp.prototype.flags": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "set-function-name": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/require-directory": { + "version": "__VERSION__", + "dev": true, +@@ -4737,146 +1667,11 @@ + "node": "__VERSION__" + } + }, +- "node_modules/require-from-string": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/require-main-filename": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, +- "node_modules/reserved-identifiers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/resolve": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "is-core-module": "__VERSION__", +- "node-exports-info": "__VERSION__", +- "object-keys": "__VERSION__", +- "path-parse": "__VERSION__", +- "supports-preserve-symlinks-flag": "__VERSION__" +- }, +- "bin": { +- "resolve": "bin/resolve" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/resolve-from": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/reusify": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/reusify/-/reusify-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "iojs": "__VERSION__", +- "node": "__VERSION__" +- } +- }, +- "node_modules/run-parallel": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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": "__VERSION__" +- } +- }, +- "node_modules/safe-array-concat": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "has-symbols": "__VERSION__", +- "isarray": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/safe-push-apply": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "isarray": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/safe-regex-test": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-regex": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/sass": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/sass/-/sass-__VERSION__.tgz", +@@ -4924,14 +1719,6 @@ + "url": "https://paulmillr.com/funding/" + } + }, +- "node_modules/semver": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- } +- }, + "node_modules/set-blocking": { + "version": "__VERSION__", + "dev": true, +@@ -4953,33 +1740,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/set-function-name": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "functions-have-names": "__VERSION__", +- "has-property-descriptors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/set-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/shebang-command": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-__VERSION__.tgz", +@@ -5003,87 +1763,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/side-channel": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "object-inspect": "__VERSION__", +- "side-channel-list": "__VERSION__", +- "side-channel-map": "__VERSION__", +- "side-channel-weakmap": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-list": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-weakmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "object-inspect": "__VERSION__", +- "side-channel-map": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/signal-exit": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/isaacs" +- } +- }, + "node_modules/slash": { + "version": "__VERSION__", + "dev": true, +@@ -5092,22 +1771,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/slice-ansi": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ansi-styles": "__VERSION__", +- "astral-regex": "__VERSION__", +- "is-fullwidth-code-point": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/slice-ansi?sponsor=1" +- } +- }, + "node_modules/source-map": { + "version": "__VERSION__", + "dev": true, +@@ -5133,43 +1796,6 @@ + "source-map": "__VERSION__" + } + }, +- "node_modules/spdx-exceptions": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC-BY-3.0" +- }, +- "node_modules/spdx-expression-parse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "spdx-exceptions": "__VERSION__", +- "spdx-license-ids": "__VERSION__" +- } +- }, +- "node_modules/spdx-license-ids": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC0-1.0" +- }, +- "node_modules/stop-iteration-iterator": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "internal-slot": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/string-width": { + "version": "__VERSION__", + "dev": true, +@@ -5183,60 +1809,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/string.prototype.trim": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-data-property": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/string.prototype.trimend": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/string.prototype.trimstart": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, +@@ -5248,255 +1820,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/strip-bom": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/strip-json-comments": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/stylelint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-syntax-patches-for-csstree": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__", +- "@csstools/media-query-list-parser": "__VERSION__", +- "@csstools/selector-specificity": "__VERSION__", +- "@dual-bundle/import-meta-resolve": "__VERSION__", +- "balanced-match": "__VERSION__", +- "colord": "__VERSION__", +- "cosmiconfig": "__VERSION__", +- "css-functions-list": "__VERSION__", +- "css-tree": "__VERSION__", +- "debug": "__VERSION__", +- "fast-glob": "__VERSION__", +- "fastest-levenshtein": "__VERSION__", +- "file-entry-cache": "__VERSION__", +- "global-modules": "__VERSION__", +- "globby": "__VERSION__", +- "globjoin": "__VERSION__", +- "html-tags": "__VERSION__", +- "ignore": "__VERSION__", +- "imurmurhash": "__VERSION__", +- "is-plain-object": "__VERSION__", +- "known-css-properties": "__VERSION__", +- "mathml-tag-names": "__VERSION__", +- "meow": "__VERSION__", +- "micromatch": "__VERSION__", +- "normalize-path": "__VERSION__", +- "picocolors": "__VERSION__", +- "postcss": "__VERSION__", +- "postcss-resolve-nested-selector": "__VERSION__", +- "postcss-safe-parser": "__VERSION__", +- "postcss-selector-parser": "__VERSION__", +- "postcss-value-parser": "__VERSION__", +- "resolve-from": "__VERSION__", +- "string-width": "__VERSION__", +- "supports-hyperlinks": "__VERSION__", +- "svg-tags": "__VERSION__", +- "table": "__VERSION__", +- "write-file-atomic": "__VERSION__" +- }, +- "bin": { +- "stylelint": "bin/stylelint.mjs" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-recommended": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-recommended-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "postcss-scss": "__VERSION__", +- "stylelint-config-recommended": "__VERSION__", +- "stylelint-scss": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__", +- "stylelint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "postcss": { +- "optional": true +- } +- } +- }, +- "node_modules/stylelint-config-standard": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "stylelint-config-recommended": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-standard-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "stylelint-config-recommended-scss": "__VERSION__", +- "stylelint-config-standard": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__", +- "stylelint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "postcss": { +- "optional": true +- } +- } +- }, +- "node_modules/stylelint-order": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "postcss": "__VERSION__", +- "postcss-sorting": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__ || __VERSION__" +- } +- }, +- "node_modules/stylelint-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "css-tree": "__VERSION__", +- "is-plain-object": "__VERSION__", +- "known-css-properties": "__VERSION__", +- "mdn-data": "__VERSION__", +- "postcss-media-query-parser": "__VERSION__", +- "postcss-resolve-nested-selector": "__VERSION__", +- "postcss-selector-parser": "__VERSION__", +- "postcss-value-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/file-entry-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flat-cache": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/flat-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cacheable": "__VERSION__", +- "flatted": "__VERSION__", +- "hookified": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/ignore": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 4" +- } +- }, + "node_modules/supports-color": { + "version": "__VERSION__", + "dev": true, +@@ -5508,87 +1831,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/supports-hyperlinks": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-flag": "__VERSION__", +- "supports-color": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" +- } +- }, +- "node_modules/supports-preserve-symlinks-flag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/svg-tags": { +- "version": "__VERSION__", +- "dev": true +- }, +- "node_modules/synckit": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@pkgr/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/synckit" +- } +- }, +- "node_modules/table": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "ajv": "__VERSION__", +- "lodash.truncate": "__VERSION__", +- "slice-ansi": "__VERSION__", +- "string-width": "__VERSION__", +- "strip-ansi": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/table/node_modules/ajv": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-deep-equal": "__VERSION__", +- "fast-uri": "__VERSION__", +- "json-schema-traverse": "__VERSION__", +- "require-from-string": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/epoberezkin" +- } +- }, +- "node_modules/table/node_modules/json-schema-traverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/terser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/terser/-/terser-__VERSION__.tgz", +@@ -5676,130 +1918,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/to-valid-identifier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@sindresorhus/base62": "__VERSION__", +- "reserved-identifiers": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/tsconfig-paths": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/json5": "__VERSION__", +- "json5": "__VERSION__", +- "minimist": "__VERSION__", +- "strip-bom": "__VERSION__" +- } +- }, +- "node_modules/type-check": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prelude-ls": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/typed-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/typed-array-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "has-proto": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/typed-array-byte-offset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "has-proto": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "reflect.getprototypeof": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/typed-array-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "possible-typed-array-names": "__VERSION__", +- "reflect.getprototypeof": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/unbox-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-bigints": "__VERSION__", +- "has-symbols": "__VERSION__", +- "which-boxed-primitive": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/universalify": { + "version": "__VERSION__", + "dev": true, +@@ -5839,124 +1957,11 @@ + "browserslist": ">= __VERSION__" + } + }, +- "node_modules/uri-js": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "punycode": "__VERSION__" +- } +- }, +- "node_modules/util-deprecate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/which": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "isexe": "__VERSION__" +- }, +- "bin": { +- "which": "bin/which" +- } +- }, +- "node_modules/which-boxed-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-bigint": "__VERSION__", +- "is-boolean-object": "__VERSION__", +- "is-number-object": "__VERSION__", +- "is-string": "__VERSION__", +- "is-symbol": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-builtin-type": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "function.prototype.name": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "is-async-function": "__VERSION__", +- "is-date-object": "__VERSION__", +- "is-finalizationregistry": "__VERSION__", +- "is-generator-function": "__VERSION__", +- "is-regex": "__VERSION__", +- "is-weakref": "__VERSION__", +- "isarray": "__VERSION__", +- "which-boxed-primitive": "__VERSION__", +- "which-collection": "__VERSION__", +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-collection": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-map": "__VERSION__", +- "is-set": "__VERSION__", +- "is-weakmap": "__VERSION__", +- "is-weakset": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/which-module": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, +- "node_modules/which-typed-array": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "for-each": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/word-wrap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/wrap-ansi": { + "version": "__VERSION__", + "dev": true, +@@ -6039,20 +2044,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/write-file-atomic": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "imurmurhash": "__VERSION__", +- "signal-exit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/y18n": { + "version": "__VERSION__", + "dev": true, +@@ -6072,23 +2063,6 @@ + "url": "https://github.com/sponsors/eemeli" + } + }, +- "node_modules/yaml-eslint-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "eslint-visitor-keys": "__VERSION__", +- "yaml": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ota-meshi" +- } +- }, + "node_modules/yargs": { + "version": "__VERSION__", + "dev": true, +@@ -6214,17 +2188,6 @@ + }, + "engines": { + "node": "__VERSION__" +- } +- }, +- "node_modules/yocto-queue": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" + } + } + } diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/web/themes/custom/star_wars/package.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/web/themes/custom/star_wars/package.json new file mode 100644 index 0000000000..1fc10ca089 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_stylelint/web/themes/custom/star_wars/package.json @@ -0,0 +1,43 @@ +@@ -4,29 +4,12 @@ + "private": true, + "description": "NodeJS dependencies for star wars project", + "devDependencies": { +- "@eslint/compat": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@homer0/prettier-plugin-jsdoc": "__VERSION__", + "autoprefixer": "__VERSION__", + "chokidar-cli": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": "__VERSION__", +- "eslint-plugin-import": "__VERSION__", +- "eslint-plugin-jsdoc": "__VERSION__", +- "eslint-plugin-no-jquery": "__VERSION__", +- "eslint-plugin-prettier": "__VERSION__", +- "eslint-plugin-yml": "__VERSION__", +- "globals": "__VERSION__", + "patch-package": "__VERSION__", + "postcss": "__VERSION__", + "postcss-cli": "__VERSION__", +- "prettier": "__VERSION__", + "sass": "__VERSION__", +- "stylelint": "__VERSION__", +- "stylelint-config-standard": "__VERSION__", +- "stylelint-config-standard-scss": "__VERSION__", +- "stylelint-order": "__VERSION__", +- "stylelint-scss": "__VERSION__", + "terser": "__VERSION__" + }, + "browserslist": [ +@@ -42,12 +25,6 @@ + "copy": "npm run copy:images && npm run copy:fonts", + "copy:fonts": "mkdir -p build/fonts && cp -r fonts/* build/fonts/ 2>/dev/null || true", + "copy:images": "mkdir -p build/images && cp -r images/* build/images/ 2>/dev/null || true", +- "lint": "npm run lint-js && npm run lint-css", +- "lint-css": "stylelint 'scss/**/*.scss'", +- "lint-css-fix": "stylelint 'scss/**/*.scss' --fix", +- "lint-fix": "npm run lint-js-fix && npm run lint-css-fix", +- "lint-js": "eslint 'js/**/*.js' --ignore-pattern '*.min.js'", +- "lint-js-fix": "eslint 'js/**/*.js' --ignore-pattern '*.min.js' --fix", + "postcss:dev": "postcss build/css/star_wars.min.css -o build/css/star_wars.min.css --map", + "postcss:prod": "postcss build/css/star_wars.min.css -o build/css/star_wars.min.css --no-map", + "postinstall": "patch-package", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/-eslint.config.mjs b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/-eslint.config.mjs new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/.ahoy.yml index 111fcd24fe..0b33e1b47f 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/.ahoy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/.ahoy.yml @@ -9,25 +9,25 @@ @@ -170,25 +169,7 @@ aliases: [fe-install] cmd: | - ahoy cli "yarn install --frozen-lockfile" -- ahoy cli "yarn --cwd=${WEBROOT}/themes/custom/${DRUPAL_THEME} install --frozen-lockfile" + ahoy cli "npm ci" +- ahoy cli "npm --prefix=${WEBROOT}/themes/custom/${DRUPAL_THEME} ci" - fe: - usage: Build front-end assets. - aliases: [fe-build] -- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run build" +- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run build" - - fed: - usage: Build front-end assets for development. - aliases: [fe-build-dev] -- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run build-dev" +- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run build-dev" - - few: - usage: Watch front-end assets during development. - aliases: [fe-watch] - cmd: | - ahoy cli "pkill -9 -f grunt" || true -- ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run watch" +- ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run watch" - lint: usage: Lint back-end and front-end code. @@ -35,8 +35,8 @@ @@ -208,7 +189,6 @@ cmd: | ahoy cli vendor/bin/twig-cs-fixer lint - ahoy cli "yarn run lint" -- ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" + ahoy cli "npm run lint" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" lint-tests: usage: Lint tests code. @@ -58,8 +58,8 @@ @@ -240,7 +212,6 @@ cmd: | ahoy cli vendor/bin/twig-cs-fixer lint --fix - ahoy cli "yarn run lint-fix" -- ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" + ahoy cli "npm run lint-fix" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" test: usage: Run all PHPUnit tests. diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/.docker/cli.dockerfile b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/.docker/cli.dockerfile index 4abfebbece..573ef6b35d 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/.docker/cli.dockerfile +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/.docker/cli.dockerfile @@ -7,16 +7,17 @@ ENV DRUPAL_THEME=${DRUPAL_THEME} ARG VORTEX_FRONTEND_BUILD_SKIP="0" -@@ -94,12 +94,5 @@ +@@ -94,13 +94,5 @@ # Create file directories and set correct permissions. # hadolint ignore=SC2174 # only the leaf directory needs the mode RUN mkdir -p -m 2775 "/app/${WEBROOT}/${DRUPAL_PUBLIC_FILES}" "/app/${WEBROOT}/${DRUPAL_PRIVATE_FILES}" "${DRUPAL_TEMPORARY_FILES}" - -RUN if [ "${VORTEX_FRONTEND_BUILD_SKIP}" != "1" ]; then \ - theme_path="/app/${WEBROOT}/themes/custom/${DRUPAL_THEME}"; \ -- yarn --cwd="${theme_path}" install --frozen-lockfile --no-progress && \ -- yarn --cwd="${theme_path}" run build && \ -- yarn cache clean; \ +- export npm_config_cache=/tmp/npm-cache; \ +- npm --prefix="${theme_path}" ci --no-progress --no-audit --no-fund && \ +- npm --prefix="${theme_path}" run build && \ +- rm -rf /tmp/npm-cache; \ - fi WORKDIR /app diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/.github/workflows/build-test-deploy.yml index dd391ea3f6..2a63adee22 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/.github/workflows/build-test-deploy.yml @@ -2,7 +2,7 @@ docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" -- docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" +- docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - name: Validate Composer configuration is normalized run: docker compose exec -T cli composer normalize --dry-run @@ -11,24 +11,32 @@ continue-on-error: ${{ vars.VORTEX_CI_GHERKIN_LINT_IGNORE_FAILURE == '1' }} - - name: Lint module code with NodeJS linters -- run: docker compose exec -T cli bash -c "yarn run lint" +- run: docker compose exec -T cli bash -c "npm run lint" - continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} - - - name: Lint theme code with NodeJS linters - if: ${{ vars.VORTEX_FRONTEND_BUILD_SKIP != '1' }} -- run: docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" +- run: docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" - continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} - test: runs-on: ubuntu-latest if: ${{ !inputs.deploy_target && (github.event_name == 'push' || !startsWith(github.head_ref, 'project/')) }} -@@ -368,18 +358,6 @@ +@@ -201,7 +191,6 @@ + VORTEX_CI_RUNNER_TOTAL: ${{ strategy.job-total }} + VORTEX_CI_IS_JEST_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + VORTEX_CI_IS_PHPUNIT_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- VORTEX_CI_IS_SDC_DEVEL_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + # Runs on every instance, using the `p` profile. + VORTEX_CI_IS_BEHAT_RUNNER: true + # Subtracted from the instance index to derive the profile number. Raise +@@ -394,18 +383,6 @@ fi env: VORTEX_CI_CODE_COVERAGE_THRESHOLD: ${{ vars.VORTEX_CI_CODE_COVERAGE_THRESHOLD || '90' }} - - - name: Validate Single Directory Components -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- if: ${{ env.VORTEX_CI_IS_SDC_DEVEL_RUNNER == 'true' }} - run: | - [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) @@ -40,4 +48,4 @@ - continue-on-error: ${{ vars.VORTEX_CI_SDC_DEVEL_IGNORE_FAILURE == '1' }} - name: Test with Behat - run: | + if: ${{ env.VORTEX_CI_IS_BEHAT_RUNNER == 'true' }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/package-lock.json new file mode 100644 index 0000000000..51325322d4 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/package-lock.json @@ -0,0 +1,3437 @@ +@@ -7,20 +7,8 @@ + "name": "star_wars", + "license": "proprietary", + "devDependencies": { +- "@eslint/compat": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@homer0/prettier-plugin-jsdoc": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": "__VERSION__", +- "eslint-plugin-import": "__VERSION__", +- "eslint-plugin-jsdoc": "__VERSION__", +- "eslint-plugin-no-jquery": "__VERSION__", +- "eslint-plugin-prettier": "__VERSION__", +- "eslint-plugin-yml": "__VERSION__", +- "globals": "__VERSION__", + "jest": "__VERSION__", + "jest-environment-jsdom": "__VERSION__", +- "prettier": "__VERSION__", + "stylelint": "__VERSION__", + "stylelint-config-standard": "__VERSION__", + "stylelint-order": "__VERSION__" +@@ -939,215 +927,6 @@ + "tslib": "__VERSION__" + } + }, +- "node_modules/@es-joy/jsdoccomment": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/estree": "__VERSION__", +- "@typescript-eslint/types": "__VERSION__", +- "comment-parser": "__VERSION__", +- "esquery": "__VERSION__", +- "jsdoc-type-pratt-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- } +- }, +- "node_modules/@es-joy/jsdoccomment/node_modules/comment-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/@es-joy/resolve.exports": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@eslint-community/eslint-utils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint-community/regexpp": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/compat": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "peerDependencies": { +- "eslint": "^8.40 || 9 || 10" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- } +- } +- }, +- "node_modules/@eslint/compat/node_modules/@eslint/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@types/json-schema": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- } +- }, +- "node_modules/@eslint/config-array": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/object-schema": "__VERSION__", +- "debug": "__VERSION__", +- "minimatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/config-helpers": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@types/json-schema": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/eslintrc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ajv": "__VERSION__", +- "debug": "__VERSION__", +- "espree": "__VERSION__", +- "globals": "__VERSION__", +- "ignore": "__VERSION__", +- "import-fresh": "__VERSION__", +- "js-yaml": "__VERSION__", +- "minimatch": "__VERSION__", +- "strip-json-comments": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/@eslint/eslintrc/node_modules/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/@eslint/js": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://eslint.org/donate" +- } +- }, +- "node_modules/@eslint/object-schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/plugin-kit": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__", +- "levn": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/@exodus/bytes": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-__VERSION__.tgz", +@@ -1166,87 +945,6 @@ + } + } + }, +- "node_modules/@homer0/prettier-plugin-jsdoc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@homer0/prettier-plugin-jsdoc/-/prettier-plugin-jsdoc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "comment-parser": "__VERSION__", +- "ramda": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "prettier": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@humanfs/types": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/node": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@humanfs/core": "__VERSION__", +- "@humanfs/types": "__VERSION__", +- "@humanwhocodes/retry": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanwhocodes/module-importer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/nzakas" +- } +- }, +- "node_modules/@humanwhocodes/retry": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/nzakas" +- } +- }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-__VERSION__.tgz", +@@ -1797,11 +1495,6 @@ + "url": "https://opencollective.com/pkgr" + } + }, +- "node_modules/@rtsao/scc": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@sinclair/typebox": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-__VERSION__.tgz", +@@ -1809,17 +1502,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/@sindresorhus/base62": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/@sinonjs/commons": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-__VERSION__.tgz", +@@ -1896,13 +1578,6 @@ + "@babel/types": "__VERSION__" + } + }, +- "node_modules/@types/estree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-__VERSION__.tgz", +@@ -1942,18 +1617,6 @@ + "parse5": "__VERSION__" + } + }, +- "node_modules/@types/json-schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/json5": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@types/node": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/node/-/node-__VERSION__.tgz", +@@ -1995,20 +1658,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/@typescript-eslint/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/typescript-eslint" +- } +- }, + "node_modules/@ungap/structured-clone": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-__VERSION__.tgz", +@@ -2359,46 +2008,6 @@ + "win32" + ] + }, +- "node_modules/acorn": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/acorn/-/acorn-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "acorn": "bin/acorn" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/acorn-jsx": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "acorn": "__VERSION__ || __VERSION__ || __VERSION__" +- } +- }, +- "node_modules/ajv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/ajv/-/ajv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-deep-equal": "__VERSION__", +- "fast-json-stable-stringify": "__VERSION__", +- "json-schema-traverse": "__VERSION__", +- "uri-js": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/epoberezkin" +- } +- }, + "node_modules/ansi-escapes": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-__VERSION__.tgz", +@@ -2464,14 +2073,6 @@ + "url": "https://github.com/sponsors/jonschlinkert" + } + }, +- "node_modules/are-docs-informative": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/argparse": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-__VERSION__.tgz", +@@ -2479,42 +2080,6 @@ + "dev": true, + "license": "Python-2.0" + }, +- "node_modules/array-buffer-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "is-array-buffer": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array-includes": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-string": "__VERSION__", +- "math-intrinsics": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/array-union": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-__VERSION__.tgz", +@@ -2525,80 +2090,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/array.prototype.findlastindex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array.prototype.flat": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array.prototype.flatmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/arraybuffer.prototype.slice": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-buffer-byte-length": "__VERSION__", +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-array-buffer": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/astral-regex": { + "version": "__VERSION__", + "dev": true, +@@ -2607,28 +2098,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/async-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/available-typed-arrays": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "possible-typed-array-names": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/babel-jest": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-__VERSION__.tgz", +@@ -2728,13 +2197,6 @@ + "@babel/core": "__VERSION__ || __VERSION__" + } + }, +- "node_modules/balanced-match": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/baseline-browser-mapping": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-__VERSION__.tgz", +@@ -2758,15 +2220,6 @@ + "require-from-string": "__VERSION__" + } + }, +- "node_modules/brace-expansion": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "balanced-match": "__VERSION__", +- "concat-map": "__VERSION__" +- } +- }, + "node_modules/braces": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/braces/-/braces-__VERSION__.tgz", +@@ -2855,50 +2308,6 @@ + "@keyv/serialize": "__VERSION__" + } + }, +- "node_modules/call-bind": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind-apply-helpers": "__VERSION__", +- "es-define-property": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "set-function-length": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/call-bind-apply-helpers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "function-bind": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/call-bound": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind-apply-helpers": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/callsites": { + "version": "__VERSION__", + "dev": true, +@@ -3058,21 +2467,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/comment-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/concat-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/convert-source-map": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-__VERSION__.tgz", +@@ -3169,54 +2563,6 @@ + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/data-view-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/data-view-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/inspect-js" +- } +- }, +- "node_modules/data-view-byte-offset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/debug": { + "version": "__VERSION__", + "dev": true, +@@ -3255,11 +2601,6 @@ + } + } + }, +- "node_modules/deep-is": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/deepmerge": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-__VERSION__.tgz", +@@ -3270,38 +2611,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/define-data-property": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "gopd": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/define-properties": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "object-keys": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/detect-newline": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-__VERSION__.tgz", +@@ -3312,16 +2621,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/diff-sequences": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/dir-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-__VERSION__.tgz", +@@ -3335,30 +2634,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/doctrine": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "esutils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/dunder-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind-apply-helpers": "__VERSION__", +- "es-errors": "__VERSION__", +- "gopd": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/electron-to-chromium": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-__VERSION__.tgz", +@@ -3417,141 +2692,6 @@ + "is-arrayish": "__VERSION__" + } + }, +- "node_modules/es-abstract": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-buffer-byte-length": "__VERSION__", +- "arraybuffer.prototype.slice": "__VERSION__", +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "data-view-buffer": "__VERSION__", +- "data-view-byte-length": "__VERSION__", +- "data-view-byte-offset": "__VERSION__", +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "es-set-tostringtag": "__VERSION__", +- "es-to-primitive": "__VERSION__", +- "function.prototype.name": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "get-proto": "__VERSION__", +- "get-symbol-description": "__VERSION__", +- "globalthis": "__VERSION__", +- "gopd": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "has-proto": "__VERSION__", +- "has-symbols": "__VERSION__", +- "hasown": "__VERSION__", +- "internal-slot": "__VERSION__", +- "is-array-buffer": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-data-view": "__VERSION__", +- "is-negative-zero": "__VERSION__", +- "is-regex": "__VERSION__", +- "is-set": "__VERSION__", +- "is-shared-array-buffer": "__VERSION__", +- "is-string": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "is-weakref": "__VERSION__", +- "math-intrinsics": "__VERSION__", +- "object-inspect": "__VERSION__", +- "object-keys": "__VERSION__", +- "object.assign": "__VERSION__", +- "own-keys": "__VERSION__", +- "regexp.prototype.flags": "__VERSION__", +- "safe-array-concat": "__VERSION__", +- "safe-push-apply": "__VERSION__", +- "safe-regex-test": "__VERSION__", +- "set-proto": "__VERSION__", +- "stop-iteration-iterator": "__VERSION__", +- "string.prototype.trim": "__VERSION__", +- "string.prototype.trimend": "__VERSION__", +- "string.prototype.trimstart": "__VERSION__", +- "typed-array-buffer": "__VERSION__", +- "typed-array-byte-length": "__VERSION__", +- "typed-array-byte-offset": "__VERSION__", +- "typed-array-length": "__VERSION__", +- "unbox-primitive": "__VERSION__", +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/es-define-property": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-errors": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-object-atoms": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-set-tostringtag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-shim-unscopables": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-to-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-callable": "__VERSION__", +- "is-date-object": "__VERSION__", +- "is-symbol": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/escalade": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-__VERSION__.tgz", +@@ -3562,474 +2702,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/escape-string-regexp": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/eslint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint/-/eslint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@eslint-community/eslint-utils": "__VERSION__", +- "@eslint-community/regexpp": "__VERSION__", +- "@eslint/config-array": "__VERSION__", +- "@eslint/config-helpers": "__VERSION__", +- "@eslint/core": "__VERSION__", +- "@eslint/eslintrc": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@eslint/plugin-kit": "__VERSION__", +- "@humanfs/node": "__VERSION__", +- "@humanwhocodes/module-importer": "__VERSION__", +- "@humanwhocodes/retry": "__VERSION__", +- "@types/estree": "__VERSION__", +- "ajv": "__VERSION__", +- "chalk": "__VERSION__", +- "cross-spawn": "__VERSION__", +- "debug": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "eslint-scope": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__", +- "espree": "__VERSION__", +- "esquery": "__VERSION__", +- "esutils": "__VERSION__", +- "fast-deep-equal": "__VERSION__", +- "file-entry-cache": "__VERSION__", +- "find-up": "__VERSION__", +- "glob-parent": "__VERSION__", +- "ignore": "__VERSION__", +- "imurmurhash": "__VERSION__", +- "is-glob": "__VERSION__", +- "json-stable-stringify-without-jsonify": "__VERSION__", +- "lodash.merge": "__VERSION__", +- "minimatch": "__VERSION__", +- "natural-compare": "__VERSION__", +- "optionator": "__VERSION__" +- }, +- "bin": { +- "eslint": "bin/eslint.js" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://eslint.org/donate" +- }, +- "peerDependencies": { +- "jiti": "*" +- }, +- "peerDependenciesMeta": { +- "jiti": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-compat-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-compat-utils/node_modules/semver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/eslint-config-prettier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "eslint-config-prettier": "bin/cli.js" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint-config-prettier" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-import-resolver-node": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__", +- "is-core-module": "__VERSION__", +- "resolve": "__VERSION__" +- } +- }, +- "node_modules/eslint-import-resolver-node/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-module-utils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-module-utils/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-import": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@rtsao/scc": "__VERSION__", +- "array-includes": "__VERSION__", +- "array.prototype.findlastindex": "__VERSION__", +- "array.prototype.flat": "__VERSION__", +- "array.prototype.flatmap": "__VERSION__", +- "debug": "__VERSION__", +- "doctrine": "__VERSION__", +- "eslint-import-resolver-node": "__VERSION__", +- "eslint-module-utils": "__VERSION__", +- "hasown": "__VERSION__", +- "is-core-module": "__VERSION__", +- "is-glob": "__VERSION__", +- "minimatch": "__VERSION__", +- "object.fromentries": "__VERSION__", +- "object.groupby": "__VERSION__", +- "object.values": "__VERSION__", +- "semver": "__VERSION__", +- "string.prototype.trimend": "__VERSION__", +- "tsconfig-paths": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || __VERSION__ || ^8 || ^9" +- } +- }, +- "node_modules/eslint-plugin-import/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "@es-joy/jsdoccomment": "__VERSION__", +- "@es-joy/resolve.exports": "__VERSION__", +- "are-docs-informative": "__VERSION__", +- "comment-parser": "__VERSION__", +- "debug": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "espree": "__VERSION__", +- "esquery": "__VERSION__", +- "html-entities": "__VERSION__", +- "object-deep-merge": "__VERSION__", +- "parse-imports-exports": "__VERSION__", +- "semver": "__VERSION__", +- "spdx-expression-parse": "__VERSION__", +- "to-valid-identifier": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=24" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__ || __VERSION__ || __VERSION__ || __VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/comment-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/espree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/espree/-/espree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "acorn": "__VERSION__", +- "acorn-jsx": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/semver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-no-jquery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "eslint": "__VERSION__", +- "oxlint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- }, +- "oxlint": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-plugin-prettier": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prettier-linter-helpers": "__VERSION__", +- "synckit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint-plugin-prettier" +- }, +- "peerDependencies": { +- "@types/eslint": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": ">= __VERSION__ <__VERSION__ || >=__VERSION__", +- "prettier": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "@types/eslint": { +- "optional": true +- }, +- "eslint-config-prettier": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-plugin-yml": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__", +- "diff-sequences": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "eslint-compat-utils": "__VERSION__", +- "natural-compare": "__VERSION__", +- "yaml-eslint-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ota-meshi" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-scope": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "esrecurse": "__VERSION__", +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint/node_modules/find-up": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "locate-path": "__VERSION__", +- "path-exists": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/eslint/node_modules/locate-path": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-locate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/eslint/node_modules/p-locate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-limit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/espree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/espree/-/espree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "acorn": "__VERSION__", +- "acorn-jsx": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/espree/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, + "node_modules/esprima": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-__VERSION__.tgz", +@@ -4044,46 +2716,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/esquery": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/esrecurse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/estraverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/esutils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/execa": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/execa/-/execa-__VERSION__.tgz", +@@ -4148,11 +2780,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/fast-diff": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0" +- }, + "node_modules/fast-glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-__VERSION__.tgz", +@@ -4190,11 +2817,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/fast-levenshtein": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/fast-uri": { + "version": "__VERSION__", + "dev": true, +@@ -4238,19 +2860,6 @@ + "bser": "__VERSION__" + } + }, +- "node_modules/file-entry-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flat-cache": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/fill-range": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-__VERSION__.tgz", +@@ -4278,20 +2887,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/flat-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flatted": "__VERSION__", +- "keyv": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/flatted": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-__VERSION__.tgz", +@@ -4299,20 +2894,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/for-each": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-callable": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/fsevents": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-__VERSION__.tgz", +@@ -4328,49 +2909,6 @@ + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/function-bind": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/function.prototype.name": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "functions-have-names": "__VERSION__", +- "hasown": "__VERSION__", +- "is-callable": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/functions-have-names": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/generator-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/gensync": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-__VERSION__", +@@ -4391,29 +2929,6 @@ + "node": "6.* || 8.* || >= 10.*" + } + }, +- "node_modules/get-intrinsic": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind-apply-helpers": "__VERSION__", +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "function-bind": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "has-symbols": "__VERSION__", +- "hasown": "__VERSION__", +- "math-intrinsics": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/get-package-type": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-__VERSION__.tgz", +@@ -4424,18 +2939,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/get-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/get-stream": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-__VERSION__.tgz", +@@ -4449,22 +2952,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/get-symbol-description": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/glob": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/glob/-/glob-__VERSION__.tgz", +@@ -4483,17 +2970,6 @@ + "url": "https://github.com/sponsors/isaacs" + } + }, +- "node_modules/glob-parent": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "is-glob": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/glob/node_modules/balanced-match": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +@@ -4568,34 +3044,6 @@ + "which": "bin/which" + } + }, +- "node_modules/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/globalthis": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-properties": "__VERSION__", +- "gopd": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/globby": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globby/-/globby-__VERSION__.tgz", +@@ -4622,17 +3070,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/gopd": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/graceful-fs": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-__VERSION__.tgz", +@@ -4640,17 +3077,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/has-bigints": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/has-flag": { + "version": "__VERSION__", + "dev": true, +@@ -4659,56 +3085,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/has-property-descriptors": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-define-property": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/has-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/has-symbols": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/has-tostringtag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-symbols": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/hashery": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-__VERSION__.tgz", +@@ -4722,17 +3098,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/hasown": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "function-bind": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/hookified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +@@ -4753,21 +3118,6 @@ + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/html-entities": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/mdevils" +- }, +- { +- "type": "patreon", +- "url": "https://patreon.com/mdevils" +- } +- ], +- "license": "MIT" +- }, + "node_modules/html-escaper": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-__VERSION__.tgz", +@@ -4862,35 +3212,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/internal-slot": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "hasown": "__VERSION__", +- "side-channel": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/is-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-arrayish": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-__VERSION__.tgz", +@@ -4898,109 +3219,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/is-async-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "async-function": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-proto": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-bigint": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-bigints": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-boolean-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-callable": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-core-module": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-data-view": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-date-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-extglob": { + "version": "__VERSION__", + "dev": true, +@@ -5009,20 +3227,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-finalizationregistry": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, +@@ -5041,24 +3245,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-generator-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "generator-function": "__VERSION__", +- "get-proto": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-glob": { + "version": "__VERSION__", + "dev": true, +@@ -5070,28 +3256,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-negative-zero": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-number": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-__VERSION__.tgz", +@@ -5102,21 +3266,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-number-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-plain-object": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-__VERSION__.tgz", +@@ -5134,48 +3283,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/is-regex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "gopd": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-set": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-shared-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-stream": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-__VERSION__.tgz", +@@ -5189,96 +3296,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/is-string": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-symbol": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-symbols": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-typed-array": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakref": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/isarray": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/isexe": { + "version": "__VERSION__", + "dev": true, +@@ -6024,16 +4041,6 @@ + "js-yaml": "bin/js-yaml.js" + } + }, +- "node_modules/jsdoc-type-pratt-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/jsdom": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-__VERSION__.tgz", +@@ -6124,13 +4131,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/json-buffer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/json-parse-even-better-errors": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-__VERSION__.tgz", +@@ -6138,39 +4138,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/json-schema-traverse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json-stable-stringify-without-jsonify": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json5": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "minimist": "__VERSION__" +- }, +- "bin": { +- "json5": "lib/cli.js" +- } +- }, +- "node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "json-buffer": "__VERSION__" +- } +- }, + "node_modules/kind-of": { + "version": "__VERSION__", + "dev": true, +@@ -6196,18 +4163,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/levn": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prelude-ls": "__VERSION__", +- "type-check": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, + "node_modules/lines-and-columns": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-__VERSION__.tgz", +@@ -6228,11 +4183,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/lodash.merge": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/lodash.truncate": { + "version": "__VERSION__", + "dev": true, +@@ -6287,14 +4237,6 @@ + "tmpl": "__VERSION__" + } + }, +- "node_modules/math-intrinsics": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/mathml-tag-names": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-__VERSION__.tgz", +@@ -6380,27 +4322,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/minimatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "brace-expansion": "__VERSION__" +- }, +- "engines": { +- "node": "*" +- } +- }, +- "node_modules/minimist": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/minipass": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-__VERSION__.tgz", +@@ -6494,98 +4415,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/object-deep-merge": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/object-deep-merge/-/object-deep-merge-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/object-inspect": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/object.assign": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "has-symbols": "__VERSION__", +- "object-keys": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object.fromentries": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object.groupby": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/object.values": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/onetime": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-__VERSION__.tgz", +@@ -6602,38 +4431,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/optionator": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "deep-is": "__VERSION__", +- "fast-levenshtein": "__VERSION__", +- "levn": "__VERSION__", +- "prelude-ls": "__VERSION__", +- "type-check": "__VERSION__", +- "word-wrap": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/own-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "get-intrinsic": "__VERSION__", +- "object-keys": "__VERSION__", +- "safe-push-apply": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/p-limit": { + "version": "__VERSION__", + "dev": true, +@@ -6698,14 +4495,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/parse-imports-exports": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "parse-statements": "__VERSION__" +- } +- }, + "node_modules/parse-json": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-__VERSION__.tgz", +@@ -6725,11 +4514,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/parse-statements": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/parse5": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-__VERSION__.tgz", +@@ -6759,11 +4543,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/path-parse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/path-scurry": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-__VERSION__.tgz", +@@ -6842,14 +4621,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/possible-typed-array-names": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/postcss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-__VERSION__.tgz", +@@ -6940,41 +4711,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/prelude-ls": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/prettier": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/prettier/-/prettier-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "prettier": "bin/prettier.cjs" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/prettier/prettier?sponsor=1" +- } +- }, +- "node_modules/prettier-linter-helpers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-diff": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/pretty-format": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-__VERSION__.tgz", +@@ -7072,15 +4808,6 @@ + ], + "license": "MIT" + }, +- "node_modules/ramda": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/ramda" +- } +- }, + "node_modules/react-is-18": { + "name": "react-is", + "version": "__VERSION__", +@@ -7097,46 +4824,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/reflect.getprototypeof": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "get-proto": "__VERSION__", +- "which-builtin-type": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/regexp.prototype.flags": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "set-function-name": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/require-directory": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-__VERSION__.tgz", +@@ -7155,36 +4842,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/reserved-identifiers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/resolve": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-core-module": "__VERSION__", +- "path-parse": "__VERSION__", +- "supports-preserve-symlinks-flag": "__VERSION__" +- }, +- "bin": { +- "resolve": "bin/resolve" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/resolve-cwd": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-__VERSION__.tgz", +@@ -7243,55 +4900,6 @@ + "queue-microtask": "__VERSION__" + } + }, +- "node_modules/safe-array-concat": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "has-symbols": "__VERSION__", +- "isarray": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/safe-push-apply": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "isarray": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/safe-regex-test": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-regex": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/saxes": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-__VERSION__.tgz", +@@ -7313,49 +4921,6 @@ + "semver": "bin/semver.js" + } + }, +- "node_modules/set-function-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "function-bind": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "gopd": "__VERSION__", +- "has-property-descriptors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/set-function-name": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "functions-have-names": "__VERSION__", +- "has-property-descriptors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/set-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/shebang-command": { + "version": "__VERSION__", + "dev": true, +@@ -7375,74 +4940,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/side-channel": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "object-inspect": "__VERSION__", +- "side-channel-list": "__VERSION__", +- "side-channel-map": "__VERSION__", +- "side-channel-weakmap": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-list": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-weakmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "object-inspect": "__VERSION__", +- "side-channel-map": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/signal-exit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-__VERSION__.tgz", +@@ -7511,31 +5008,6 @@ + "source-map": "__VERSION__" + } + }, +- "node_modules/spdx-exceptions": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC-BY-3.0" +- }, +- "node_modules/spdx-expression-parse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "spdx-exceptions": "__VERSION__", +- "spdx-license-ids": "__VERSION__" +- } +- }, +- "node_modules/spdx-license-ids": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC0-1.0" +- }, + "node_modules/sprintf-js": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-__VERSION__.tgz", +@@ -7566,18 +5038,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/stop-iteration-iterator": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "internal-slot": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/string-length": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-__VERSION__.tgz", +@@ -7605,59 +5065,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/string.prototype.trim": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-data-property": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "has-property-descriptors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/string.prototype.trimend": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/string.prototype.trimstart": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, +@@ -7669,14 +5076,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/strip-bom": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/strip-final-newline": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-__VERSION__.tgz", +@@ -7893,17 +5292,6 @@ + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + } + }, +- "node_modules/supports-preserve-symlinks-flag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/svg-tags": { + "version": "__VERSION__", + "dev": true +@@ -8060,21 +5448,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/to-valid-identifier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@sindresorhus/base62": "__VERSION__", +- "reserved-identifiers": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/tough-cookie": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-__VERSION__.tgz", +@@ -8101,17 +5474,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/tsconfig-paths": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/json5": "__VERSION__", +- "json5": "__VERSION__", +- "minimist": "__VERSION__", +- "strip-bom": "__VERSION__" +- } +- }, + "node_modules/tslib": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-__VERSION__.tgz", +@@ -8120,17 +5482,6 @@ + "license": "0BSD", + "optional": true + }, +- "node_modules/type-check": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prelude-ls": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, + "node_modules/type-detect": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-__VERSION__.tgz", +@@ -8154,93 +5505,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/typed-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/typed-array-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "has-proto": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/typed-array-byte-offset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "has-proto": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "reflect.getprototypeof": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/typed-array-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "possible-typed-array-names": "__VERSION__", +- "reflect.getprototypeof": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/unbox-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-bigints": "__VERSION__", +- "has-symbols": "__VERSION__", +- "which-boxed-primitive": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/undici": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/undici/-/undici-__VERSION__.tgz", +@@ -8327,16 +5591,6 @@ + "browserslist": ">= __VERSION__" + } + }, +- "node_modules/uri-js": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "punycode": "__VERSION__" +- } +- }, + "node_modules/util-deprecate": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-__VERSION__.tgz", +@@ -8431,95 +5685,6 @@ + "node": ">= 8" + } + }, +- "node_modules/which-boxed-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-bigint": "__VERSION__", +- "is-boolean-object": "__VERSION__", +- "is-number-object": "__VERSION__", +- "is-string": "__VERSION__", +- "is-symbol": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-builtin-type": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "function.prototype.name": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "is-async-function": "__VERSION__", +- "is-date-object": "__VERSION__", +- "is-finalizationregistry": "__VERSION__", +- "is-generator-function": "__VERSION__", +- "is-regex": "__VERSION__", +- "is-weakref": "__VERSION__", +- "isarray": "__VERSION__", +- "which-boxed-primitive": "__VERSION__", +- "which-collection": "__VERSION__", +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-collection": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-map": "__VERSION__", +- "is-set": "__VERSION__", +- "is-weakmap": "__VERSION__", +- "is-weakset": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-typed-array": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "for-each": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/word-wrap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/write-file-atomic": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-__VERSION__.tgz", +@@ -8567,39 +5732,6 @@ + "integrity": "__INTEGRITY__", + "dev": true, + "license": "ISC" +- }, +- "node_modules/yaml": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/yaml/-/yaml-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "yaml": "bin.mjs" +- }, +- "engines": { +- "node": ">= 14.6" +- }, +- "funding": { +- "url": "https://github.com/sponsors/eemeli" +- } +- }, +- "node_modules/yaml-eslint-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "eslint-visitor-keys": "__VERSION__", +- "yaml": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ota-meshi" +- } + }, + "node_modules/yargs": { + "version": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/package.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/package.json index dd522cfd39..8c48b1ed8c 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/package.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/package.json @@ -1,29 +1,31 @@ -@@ -8,27 +8,15 @@ +@@ -8,29 +8,15 @@ "node": ">= __VERSION__" }, "scripts": { -- "lint-js": "eslint web/modules/custom --ext .js --max-warnings=0 --no-error-on-unmatched-pattern", +- "lint-js": "eslint web/modules/custom --max-warnings=0 --no-error-on-unmatched-pattern", "lint-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\"", -- "lint": "yarn run lint-js && yarn run lint-css", -- "lint-fix-js": "eslint web/modules/custom --ext .js --no-error-on-unmatched-pattern --fix", -+ "lint": "yarn run lint-css", +- "lint": "npm run lint-js && npm run lint-css", +- "lint-fix-js": "eslint web/modules/custom --no-error-on-unmatched-pattern --fix", ++ "lint": "npm run lint-css", "lint-fix-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\" --fix", -- "lint-fix": "yarn run lint-fix-js && yarn run lint-fix-css", -+ "lint-fix": "yarn run lint-fix-css", +- "lint-fix": "npm run lint-fix-js && npm run lint-fix-css", ++ "lint-fix": "npm run lint-fix-css", "test": "jest --coverage --passWithNoTests" }, "devDependencies": { +- "@eslint/compat": "__VERSION__", +- "@eslint/js": "__VERSION__", - "@homer0/prettier-plugin-jsdoc": "__VERSION__", "jest": "__VERSION__", "jest-environment-jsdom": "__VERSION__", - "eslint": "__VERSION__", -- "eslint-config-airbnb-base": "__VERSION__", - "eslint-config-prettier": "__VERSION__", - "eslint-plugin-import": "__VERSION__", - "eslint-plugin-jsdoc": "__VERSION__", - "eslint-plugin-no-jquery": "__VERSION__", - "eslint-plugin-prettier": "__VERSION__", - "eslint-plugin-yml": "__VERSION__", +- "globals": "__VERSION__", - "prettier": "__VERSION__", "stylelint": "__VERSION__", "stylelint-config-standard": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/web/themes/custom/star_wars/-eslint.config.mjs b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/web/themes/custom/star_wars/-eslint.config.mjs new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/web/themes/custom/star_wars/-package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/web/themes/custom/star_wars/-package-lock.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_hadolint_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_hadolint_circleci/.circleci/config.yml index fe11e90624..1333e53b05 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_hadolint_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_hadolint_circleci/.circleci/config.yml @@ -132,7 +132,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -160,13 +160,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -177,14 +177,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -199,6 +200,28 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -251,10 +274,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -296,7 +319,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -305,7 +328,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -313,27 +336,29 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -342,14 +367,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -358,7 +383,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -370,10 +395,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -382,9 +408,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest/.ahoy.yml index d245c9e1ed..6db5045f26 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest/.ahoy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest/.ahoy.yml @@ -4,7 +4,7 @@ - test-js: - usage: Run Jest JavaScript unit tests. -- cmd: ahoy cli "yarn test" +- cmd: ahoy cli "npm test" - test-bdd: usage: Run BDD tests. diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest/.github/workflows/build-test-deploy.yml index e3745b53b1..c7e25d6a04 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest/.github/workflows/build-test-deploy.yml @@ -1,20 +1,28 @@ -@@ -290,7 +290,6 @@ +@@ -199,7 +199,6 @@ + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + VORTEX_CI_RUNNER_INDEX: ${{ strategy.job-index }} + VORTEX_CI_RUNNER_TOTAL: ${{ strategy.job-total }} +- VORTEX_CI_IS_JEST_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + VORTEX_CI_IS_PHPUNIT_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + VORTEX_CI_IS_SDC_DEVEL_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + # Runs on every instance, using the `p` profile. +@@ -316,7 +315,6 @@ docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" -- docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" +- docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - name: Provision site run: | -@@ -303,11 +302,6 @@ +@@ -329,11 +327,6 @@ fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision timeout-minutes: 30 - - - name: Test with Jest -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} -- run: docker compose exec -T cli bash -c "yarn test" +- if: ${{ env.VORTEX_CI_IS_JEST_RUNNER == 'true' }} +- run: docker compose exec -T cli bash -c "npm test" - continue-on-error: ${{ vars.VORTEX_CI_JEST_IGNORE_FAILURE == '1' }} - name: Test with PHPUnit - if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest/package-lock.json new file mode 100644 index 0000000000..033ad7fe4a --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest/package-lock.json @@ -0,0 +1,4649 @@ +@@ -18,8 +18,6 @@ + "eslint-plugin-prettier": "__VERSION__", + "eslint-plugin-yml": "__VERSION__", + "globals": "__VERSION__", +- "jest": "__VERSION__", +- "jest-environment-jsdom": "__VERSION__", + "prettier": "__VERSION__", + "stylelint": "__VERSION__", + "stylelint-config-standard": "__VERSION__", +@@ -30,152 +28,6 @@ + "npm": ">= __VERSION__" + } + }, +- "node_modules/@asamuzakjp/css-color": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@asamuzakjp/generational-cache": "__VERSION__", +- "@csstools/css-calc": "__VERSION__", +- "@csstools/css-color-parser": "__VERSION__", +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@asamuzakjp/css-color/node_modules/@csstools/css-calc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@asamuzakjp/css-color/node_modules/@csstools/css-color-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "@csstools/color-helpers": "__VERSION__", +- "@csstools/css-calc": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@asamuzakjp/css-color/node_modules/@csstools/css-parser-algorithms": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@asamuzakjp/css-color/node_modules/@csstools/css-tokenizer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@asamuzakjp/dom-selector": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@asamuzakjp/generational-cache": "__VERSION__", +- "@asamuzakjp/nwsapi": "__VERSION__", +- "bidi-js": "__VERSION__", +- "css-tree": "__VERSION__", +- "is-potential-custom-element-name": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@asamuzakjp/generational-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@asamuzakjp/generational-cache/-/generational-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@asamuzakjp/nwsapi": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@babel/code-frame": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-__VERSION__.tgz", +@@ -191,156 +43,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/@babel/compat-data": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/code-frame": "__VERSION__", +- "@babel/generator": "__VERSION__", +- "@babel/helper-compilation-targets": "__VERSION__", +- "@babel/helper-module-transforms": "__VERSION__", +- "@babel/helpers": "__VERSION__", +- "@babel/parser": "__VERSION__", +- "@babel/template": "__VERSION__", +- "@babel/traverse": "__VERSION__", +- "@babel/types": "__VERSION__", +- "@jridgewell/remapping": "__VERSION__", +- "convert-source-map": "__VERSION__", +- "debug": "__VERSION__", +- "gensync": "__VERSION__", +- "json5": "__VERSION__", +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/babel" +- } +- }, +- "node_modules/@babel/core/node_modules/json5": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/json5/-/json5-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "json5": "lib/cli.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/generator": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/parser": "__VERSION__", +- "@babel/types": "__VERSION__", +- "@jridgewell/gen-mapping": "__VERSION__", +- "@jridgewell/trace-mapping": "__VERSION__", +- "jsesc": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/helper-compilation-targets": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/compat-data": "__VERSION__", +- "@babel/helper-validator-option": "__VERSION__", +- "browserslist": "__VERSION__", +- "lru-cache": "__VERSION__", +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/helper-globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/helper-module-imports": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/traverse": "__VERSION__", +- "@babel/types": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/helper-module-transforms": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-module-imports": "__VERSION__", +- "@babel/helper-validator-identifier": "__VERSION__", +- "@babel/traverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/helper-plugin-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/helper-string-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/@babel/helper-validator-identifier": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-__VERSION__.tgz", +@@ -351,353 +53,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/@babel/helper-validator-option": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/helpers": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/template": "__VERSION__", +- "@babel/types": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/types": "__VERSION__" +- }, +- "bin": { +- "parser": "bin/babel-parser.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-async-generators": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-bigint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-class-properties": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-class-static-block": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-import-attributes": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-import-meta": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-json-strings": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-jsx": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-logical-assignment-operators": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-numeric-separator": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-object-rest-spread": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-optional-catch-binding": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-optional-chaining": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-private-property-in-object": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-top-level-await": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-typescript": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/template": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/template/-/template-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/code-frame": "__VERSION__", +- "@babel/parser": "__VERSION__", +- "@babel/types": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/traverse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/code-frame": "__VERSION__", +- "@babel/generator": "__VERSION__", +- "@babel/helper-globals": "__VERSION__", +- "@babel/parser": "__VERSION__", +- "@babel/template": "__VERSION__", +- "@babel/types": "__VERSION__", +- "debug": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-string-parser": "__VERSION__", +- "@babel/helper-validator-identifier": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@bcoe/v8-coverage": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@bramus/specificity": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "css-tree": "__VERSION__" +- }, +- "bin": { +- "specificity": "bin/cli.js" +- } +- }, + "node_modules/@cacheable/memory": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-__VERSION__.tgz", +@@ -759,26 +114,6 @@ + "@keyv/serialize": "__VERSION__" + } + }, +- "node_modules/@csstools/color-helpers": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT-0", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-__VERSION__.tgz", +@@ -905,40 +240,6 @@ + "url": "https://github.com/sponsors/JounQin" + } + }, +- "node_modules/@emnapi/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "optional": true, +- "dependencies": { +- "@emnapi/wasi-threads": "__VERSION__", +- "tslib": "__VERSION__" +- } +- }, +- "node_modules/@emnapi/runtime": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "optional": true, +- "dependencies": { +- "tslib": "__VERSION__" +- } +- }, +- "node_modules/@emnapi/wasi-threads": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "optional": true, +- "dependencies": { +- "tslib": "__VERSION__" +- } +- }, + "node_modules/@es-joy/jsdoccomment": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-__VERSION__.tgz", +@@ -1148,24 +449,6 @@ + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/@exodus/bytes": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "@noble/hashes": "__VERSION__ || __VERSION__" +- }, +- "peerDependenciesMeta": { +- "@noble/hashes": { +- "optional": true +- } +- } +- }, + "node_modules/@homer0/prettier-plugin-jsdoc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@homer0/prettier-plugin-jsdoc/-/prettier-plugin-jsdoc-__VERSION__.tgz", +@@ -1247,476 +530,6 @@ + "url": "https://github.com/sponsors/nzakas" + } + }, +- "node_modules/@istanbuljs/load-nyc-config": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "camelcase": "__VERSION__", +- "find-up": "__VERSION__", +- "get-package-type": "__VERSION__", +- "js-yaml": "__VERSION__", +- "resolve-from": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/argparse/-/argparse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "sprintf-js": "__VERSION__" +- } +- }, +- "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "argparse": "__VERSION__", +- "esprima": "__VERSION__" +- }, +- "bin": { +- "js-yaml": "bin/js-yaml.js" +- } +- }, +- "node_modules/@istanbuljs/schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@jest/console": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/console/-/console-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "chalk": "__VERSION__", +- "jest-message-util": "__VERSION__", +- "jest-util": "__VERSION__", +- "slash": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/console": "__VERSION__", +- "@jest/pattern": "__VERSION__", +- "@jest/reporters": "__VERSION__", +- "@jest/test-result": "__VERSION__", +- "@jest/transform": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "ansi-escapes": "__VERSION__", +- "chalk": "__VERSION__", +- "ci-info": "__VERSION__", +- "exit-x": "__VERSION__", +- "fast-json-stable-stringify": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "jest-changed-files": "__VERSION__", +- "jest-config": "__VERSION__", +- "jest-haste-map": "__VERSION__", +- "jest-message-util": "__VERSION__", +- "jest-regex-util": "__VERSION__", +- "jest-resolve": "__VERSION__", +- "jest-resolve-dependencies": "__VERSION__", +- "jest-runner": "__VERSION__", +- "jest-runtime": "__VERSION__", +- "jest-snapshot": "__VERSION__", +- "jest-util": "__VERSION__", +- "jest-validate": "__VERSION__", +- "jest-watcher": "__VERSION__", +- "pretty-format": "__VERSION__", +- "slash": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "node-notifier": "__VERSION__ || __VERSION__ || __VERSION__" +- }, +- "peerDependenciesMeta": { +- "node-notifier": { +- "optional": true +- } +- } +- }, +- "node_modules/@jest/diff-sequences": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/environment": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/fake-timers": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "jest-mock": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/environment-jsdom-abstract": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/environment-jsdom-abstract/-/environment-jsdom-abstract-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/environment": "__VERSION__", +- "@jest/fake-timers": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@types/jsdom": "__VERSION__", +- "@types/node": "*", +- "jest-mock": "__VERSION__", +- "jest-util": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "canvas": "__VERSION__", +- "jsdom": "*" +- }, +- "peerDependenciesMeta": { +- "canvas": { +- "optional": true +- } +- } +- }, +- "node_modules/@jest/expect": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "expect": "__VERSION__", +- "jest-snapshot": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/expect-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/get-type": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/fake-timers": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/types": "__VERSION__", +- "@sinonjs/fake-timers": "__VERSION__", +- "@types/node": "*", +- "jest-message-util": "__VERSION__", +- "jest-mock": "__VERSION__", +- "jest-util": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/get-type": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/environment": "__VERSION__", +- "@jest/expect": "__VERSION__", +- "@jest/types": "__VERSION__", +- "jest-mock": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/pattern": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/node": "*", +- "jest-regex-util": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/reporters": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@bcoe/v8-coverage": "__VERSION__", +- "@jest/console": "__VERSION__", +- "@jest/test-result": "__VERSION__", +- "@jest/transform": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@jridgewell/trace-mapping": "__VERSION__", +- "@types/node": "*", +- "chalk": "__VERSION__", +- "collect-v8-coverage": "__VERSION__", +- "exit-x": "__VERSION__", +- "glob": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "istanbul-lib-coverage": "__VERSION__", +- "istanbul-lib-instrument": "__VERSION__", +- "istanbul-lib-report": "__VERSION__", +- "istanbul-lib-source-maps": "__VERSION__", +- "istanbul-reports": "__VERSION__", +- "jest-message-util": "__VERSION__", +- "jest-util": "__VERSION__", +- "jest-worker": "__VERSION__", +- "slash": "__VERSION__", +- "string-length": "__VERSION__", +- "v8-to-istanbul": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "node-notifier": "__VERSION__ || __VERSION__ || __VERSION__" +- }, +- "peerDependenciesMeta": { +- "node-notifier": { +- "optional": true +- } +- } +- }, +- "node_modules/@jest/schemas": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@sinclair/typebox": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/snapshot-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/types": "__VERSION__", +- "chalk": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "natural-compare": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/source-map": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jridgewell/trace-mapping": "__VERSION__", +- "callsites": "__VERSION__", +- "graceful-fs": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/test-result": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/console": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@types/istanbul-lib-coverage": "__VERSION__", +- "collect-v8-coverage": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/test-sequencer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/test-result": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "jest-haste-map": "__VERSION__", +- "slash": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/transform": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/core": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@jridgewell/trace-mapping": "__VERSION__", +- "babel-plugin-istanbul": "__VERSION__", +- "chalk": "__VERSION__", +- "convert-source-map": "__VERSION__", +- "fast-json-stable-stringify": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "jest-haste-map": "__VERSION__", +- "jest-regex-util": "__VERSION__", +- "jest-util": "__VERSION__", +- "pirates": "__VERSION__", +- "slash": "__VERSION__", +- "write-file-atomic": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/pattern": "__VERSION__", +- "@jest/schemas": "__VERSION__", +- "@types/istanbul-lib-coverage": "__VERSION__", +- "@types/istanbul-reports": "__VERSION__", +- "@types/node": "*", +- "@types/yargs": "__VERSION__", +- "chalk": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jridgewell/gen-mapping": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jridgewell/sourcemap-codec": "__VERSION__", +- "@jridgewell/trace-mapping": "__VERSION__" +- } +- }, +- "node_modules/@jridgewell/remapping": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jridgewell/gen-mapping": "__VERSION__", +- "@jridgewell/trace-mapping": "__VERSION__" +- } +- }, +- "node_modules/@jridgewell/resolve-uri": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@jridgewell/sourcemap-codec": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@jridgewell/trace-mapping": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jridgewell/resolve-uri": "__VERSION__", +- "@jridgewell/sourcemap-codec": "__VERSION__" +- } +- }, + "node_modules/@keyv/serialize": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-__VERSION__.tgz", +@@ -1724,28 +537,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/@napi-rs/wasm-runtime": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "optional": true, +- "dependencies": { +- "@tybys/wasm-util": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/Brooooooklyn" +- }, +- "peerDependencies": { +- "@emnapi/core": "__VERSION__ || __VERSION__", +- "@emnapi/runtime": "__VERSION__ || __VERSION__" +- } +- }, + "node_modules/@nodelib/fs.scandir": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-__VERSION__.tgz", +@@ -1802,13 +593,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/@sinclair/typebox": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@sindresorhus/base62": { + "version": "__VERSION__", + "dev": true, +@@ -1820,82 +604,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/@sinonjs/commons": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "type-detect": "__VERSION__" +- } +- }, +- "node_modules/@sinonjs/fake-timers": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "@sinonjs/commons": "__VERSION__" +- } +- }, +- "node_modules/@tybys/wasm-util": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "optional": true, +- "dependencies": { +- "tslib": "__VERSION__" +- } +- }, +- "node_modules/@types/babel__core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/parser": "__VERSION__", +- "@babel/types": "__VERSION__", +- "@types/babel__generator": "*", +- "@types/babel__template": "*", +- "@types/babel__traverse": "*" +- } +- }, +- "node_modules/@types/babel__generator": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/types": "__VERSION__" +- } +- }, +- "node_modules/@types/babel__template": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/parser": "__VERSION__", +- "@babel/types": "__VERSION__" +- } +- }, +- "node_modules/@types/babel__traverse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/types": "__VERSION__" +- } +- }, + "node_modules/@types/estree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-__VERSION__.tgz", +@@ -1903,45 +611,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/@types/istanbul-lib-coverage": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/istanbul-lib-report": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/istanbul-lib-coverage": "*" +- } +- }, +- "node_modules/@types/istanbul-reports": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/istanbul-lib-report": "*" +- } +- }, +- "node_modules/@types/jsdom": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/node": "*", +- "@types/tough-cookie": "*", +- "parse5": "__VERSION__" +- } +- }, + "node_modules/@types/json-schema": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-__VERSION__.tgz", +@@ -1954,47 +623,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/@types/node": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/node/-/node-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "undici-types": "__VERSION__" +- } +- }, +- "node_modules/@types/stack-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/tough-cookie": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/yargs": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/yargs-parser": "*" +- } +- }, +- "node_modules/@types/yargs-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@typescript-eslint/types": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-__VERSION__.tgz", +@@ -2009,356 +637,6 @@ + "url": "https://opencollective.com/typescript-eslint" + } + }, +- "node_modules/@ungap/structured-clone": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC" +- }, +- "node_modules/@unrs/resolver-binding-android-arm-eabi": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "arm" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "android" +- ] +- }, +- "node_modules/@unrs/resolver-binding-android-arm64": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "arm64" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "android" +- ] +- }, +- "node_modules/@unrs/resolver-binding-darwin-arm64": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "arm64" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "darwin" +- ] +- }, +- "node_modules/@unrs/resolver-binding-darwin-x64": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "x64" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "darwin" +- ] +- }, +- "node_modules/@unrs/resolver-binding-freebsd-x64": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "x64" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "freebsd" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "arm" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "arm" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "arm64" +- ], +- "dev": true, +- "libc": [ +- "glibc" +- ], +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-arm64-musl": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "arm64" +- ], +- "dev": true, +- "libc": [ +- "musl" +- ], +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-loong64-gnu": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-gnu/-/resolver-binding-linux-loong64-gnu-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "loong64" +- ], +- "dev": true, +- "libc": [ +- "glibc" +- ], +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-loong64-musl": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-musl/-/resolver-binding-linux-loong64-musl-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "loong64" +- ], +- "dev": true, +- "libc": [ +- "musl" +- ], +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "ppc64" +- ], +- "dev": true, +- "libc": [ +- "glibc" +- ], +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "riscv64" +- ], +- "dev": true, +- "libc": [ +- "glibc" +- ], +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "riscv64" +- ], +- "dev": true, +- "libc": [ +- "musl" +- ], +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "s390x" +- ], +- "dev": true, +- "libc": [ +- "glibc" +- ], +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-x64-gnu": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "x64" +- ], +- "dev": true, +- "libc": [ +- "glibc" +- ], +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-x64-musl": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "x64" +- ], +- "dev": true, +- "libc": [ +- "musl" +- ], +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-openharmony-arm64": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-openharmony-arm64/-/resolver-binding-openharmony-arm64-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "arm64" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "openharmony" +- ] +- }, +- "node_modules/@unrs/resolver-binding-wasm32-wasi": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "wasm32" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "dependencies": { +- "@emnapi/core": "__VERSION__", +- "@emnapi/runtime": "__VERSION__", +- "@napi-rs/wasm-runtime": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "arm64" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "win32" +- ] +- }, +- "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "ia32" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "win32" +- ] +- }, +- "node_modules/@unrs/resolver-binding-win32-x64-msvc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "x64" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "win32" +- ] +- }, + "node_modules/acorn": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-__VERSION__.tgz", +@@ -2399,22 +677,6 @@ + "url": "https://github.com/sponsors/epoberezkin" + } + }, +- "node_modules/ansi-escapes": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "type-fest": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, +@@ -2437,33 +699,6 @@ + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, +- "node_modules/anymatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "normalize-path": "__VERSION__", +- "picomatch": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/anymatch/node_modules/picomatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/jonschlinkert" +- } +- }, + "node_modules/are-docs-informative": { + "version": "__VERSION__", + "dev": true, +@@ -2629,105 +864,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/babel-jest": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/transform": "__VERSION__", +- "@types/babel__core": "__VERSION__", +- "babel-plugin-istanbul": "__VERSION__", +- "babel-preset-jest": "__VERSION__", +- "chalk": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "slash": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__ || __VERSION__" +- } +- }, +- "node_modules/babel-plugin-istanbul": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "workspaces": [ +- "test/babel-8" +- ], +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__", +- "@istanbuljs/load-nyc-config": "__VERSION__", +- "@istanbuljs/schema": "__VERSION__", +- "istanbul-lib-instrument": "__VERSION__", +- "test-exclude": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/babel-plugin-jest-hoist": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/babel__core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/babel-preset-current-node-syntax": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/plugin-syntax-async-generators": "__VERSION__", +- "@babel/plugin-syntax-bigint": "__VERSION__", +- "@babel/plugin-syntax-class-properties": "__VERSION__", +- "@babel/plugin-syntax-class-static-block": "__VERSION__", +- "@babel/plugin-syntax-import-attributes": "__VERSION__", +- "@babel/plugin-syntax-import-meta": "__VERSION__", +- "@babel/plugin-syntax-json-strings": "__VERSION__", +- "@babel/plugin-syntax-logical-assignment-operators": "__VERSION__", +- "@babel/plugin-syntax-nullish-coalescing-operator": "__VERSION__", +- "@babel/plugin-syntax-numeric-separator": "__VERSION__", +- "@babel/plugin-syntax-object-rest-spread": "__VERSION__", +- "@babel/plugin-syntax-optional-catch-binding": "__VERSION__", +- "@babel/plugin-syntax-optional-chaining": "__VERSION__", +- "@babel/plugin-syntax-private-property-in-object": "__VERSION__", +- "@babel/plugin-syntax-top-level-await": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__ || __VERSION__" +- } +- }, +- "node_modules/babel-preset-jest": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "babel-plugin-jest-hoist": "__VERSION__", +- "babel-preset-current-node-syntax": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__ || __VERSION__" +- } +- }, + "node_modules/balanced-match": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +@@ -2735,29 +871,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/baseline-browser-mapping": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "bin": { +- "baseline-browser-mapping": "dist/cli.cjs" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/bidi-js": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "require-from-string": "__VERSION__" +- } +- }, + "node_modules/brace-expansion": { + "version": "__VERSION__", + "dev": true, +@@ -2780,57 +893,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/browserslist": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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": { +- "baseline-browser-mapping": "__VERSION__", +- "caniuse-lite": "__VERSION__", +- "electron-to-chromium": "__VERSION__", +- "node-releases": "__VERSION__", +- "update-browserslist-db": "__VERSION__" +- }, +- "bin": { +- "browserslist": "cli.js" +- }, +- "engines": { +- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" +- } +- }, +- "node_modules/bser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/bser/-/bser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "node-int64": "__VERSION__" +- } +- }, +- "node_modules/buffer-from": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/cacheable": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-__VERSION__.tgz", +@@ -2907,37 +969,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/camelcase": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/caniuse-lite": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "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": "__VERSION__", + "dev": true, +@@ -2953,90 +984,6 @@ + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, +- "node_modules/char-regex": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/ci-info": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/sibiraj-s" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/cjs-module-lexer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/cliui": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cliui/-/cliui-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "string-width": "__VERSION__", +- "strip-ansi": "__VERSION__", +- "wrap-ansi": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/cliui/node_modules/wrap-ansi": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ansi-styles": "__VERSION__", +- "string-width": "__VERSION__", +- "strip-ansi": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/wrap-ansi?sponsor=1" +- } +- }, +- "node_modules/co": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/co/-/co-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "iojs": ">= __VERSION__", +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/collect-v8-coverage": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/color-convert": { + "version": "__VERSION__", + "dev": true, +@@ -3073,13 +1020,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/convert-source-map": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/cosmiconfig": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-__VERSION__.tgz", +@@ -3155,20 +1095,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/data-urls": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "whatwg-mimetype": "__VERSION__", +- "whatwg-url": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/data-view-buffer": { + "version": "__VERSION__", + "dev": true, +@@ -3233,43 +1159,11 @@ + } + } + }, +- "node_modules/decimal.js": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/dedent": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/dedent/-/dedent-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "babel-plugin-macros": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "babel-plugin-macros": { +- "optional": true +- } +- } +- }, + "node_modules/deep-is": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/deepmerge": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/define-data-property": { + "version": "__VERSION__", + "dev": true, +@@ -3302,16 +1196,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/detect-newline": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/diff-sequences": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-__VERSION__.tgz", +@@ -3359,44 +1243,11 @@ + "node": ">= 0.4" + } + }, +- "node_modules/electron-to-chromium": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC" +- }, +- "node_modules/emittery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/emittery/-/emittery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sindresorhus/emittery?sponsor=1" +- } +- }, + "node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/entities": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/entities/-/entities-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/fb55/entities?sponsor=1" +- } +- }, + "node_modules/env-paths": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-__VERSION__.tgz", +@@ -3552,16 +1403,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/escalade": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/escalade/-/escalade-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/escape-string-regexp": { + "version": "__VERSION__", + "dev": true, +@@ -4030,20 +1871,6 @@ + "url": "https://opencollective.com/eslint" + } + }, +- "node_modules/esprima": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/esprima/-/esprima-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "bin": { +- "esparse": "bin/esparse.js", +- "esvalidate": "bin/esvalidate.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/esquery": { + "version": "__VERSION__", + "dev": true, +@@ -4084,65 +1911,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/execa": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/execa/-/execa-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cross-spawn": "__VERSION__", +- "get-stream": "__VERSION__", +- "human-signals": "__VERSION__", +- "is-stream": "__VERSION__", +- "merge-stream": "__VERSION__", +- "npm-run-path": "__VERSION__", +- "onetime": "__VERSION__", +- "signal-exit": "__VERSION__", +- "strip-final-newline": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sindresorhus/execa?sponsor=1" +- } +- }, +- "node_modules/execa/node_modules/signal-exit": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC" +- }, +- "node_modules/exit-x": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/exit-x/-/exit-x-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/expect": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/expect/-/expect-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/expect-utils": "__VERSION__", +- "@jest/get-type": "__VERSION__", +- "jest-matcher-utils": "__VERSION__", +- "jest-message-util": "__VERSION__", +- "jest-mock": "__VERSION__", +- "jest-util": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/fast-deep-equal": { + "version": "__VERSION__", + "dev": true, +@@ -4228,16 +1996,6 @@ + "reusify": "__VERSION__" + } + }, +- "node_modules/fb-watchman": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "bser": "__VERSION__" +- } +- }, + "node_modules/file-entry-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +@@ -4264,20 +2022,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/find-up": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/find-up/-/find-up-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "locate-path": "__VERSION__", +- "path-exists": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/flat-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +@@ -4313,21 +2057,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/fsevents": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "hasInstallScript": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "darwin" +- ], +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/function-bind": { + "version": "__VERSION__", + "dev": true, +@@ -4371,26 +2100,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/gensync": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/gensync/-/gensync-__VERSION__", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/get-caller-file": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "engines": { +- "node": "6.* || 8.* || >= 10.*" +- } +- }, + "node_modules/get-intrinsic": { + "version": "__VERSION__", + "dev": true, +@@ -4414,16 +2123,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/get-package-type": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/get-proto": { + "version": "__VERSION__", + "dev": true, +@@ -4436,19 +2135,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/get-stream": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/get-symbol-description": { + "version": "__VERSION__", + "dev": true, +@@ -4465,24 +2151,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/glob/-/glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BlueOak-__VERSION__", +- "dependencies": { +- "minimatch": "__VERSION__", +- "minipass": "__VERSION__", +- "path-scurry": "__VERSION__" +- }, +- "engines": { +- "node": "18 || 20 || >=22" +- }, +- "funding": { +- "url": "https://github.com/sponsors/isaacs" +- } +- }, + "node_modules/glob-parent": { + "version": "__VERSION__", + "dev": true, +@@ -4494,45 +2162,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/glob/node_modules/balanced-match": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "18 || 20 || >=22" +- } +- }, +- "node_modules/glob/node_modules/brace-expansion": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "balanced-match": "__VERSION__" +- }, +- "engines": { +- "node": "20 || >=22" +- } +- }, +- "node_modules/glob/node_modules/minimatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BlueOak-__VERSION__", +- "dependencies": { +- "brace-expansion": "__VERSION__" +- }, +- "engines": { +- "node": "18 || 20 || >=22" +- }, +- "funding": { +- "url": "https://github.com/sponsors/isaacs" +- } +- }, + "node_modules/global-modules": { + "version": "__VERSION__", + "dev": true, +@@ -4633,13 +2262,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/graceful-fs": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC" +- }, + "node_modules/has-bigints": { + "version": "__VERSION__", + "dev": true, +@@ -4740,19 +2362,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/html-encoding-sniffer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@exodus/bytes": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/html-entities": { + "version": "__VERSION__", + "dev": true, +@@ -4768,13 +2377,6 @@ + ], + "license": "MIT" + }, +- "node_modules/html-escaper": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/html-tags": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-__VERSION__.tgz", +@@ -4788,16 +2390,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/human-signals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/ignore": { + "version": "__VERSION__", + "dev": true, +@@ -4829,26 +2421,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/import-local": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/import-local/-/import-local-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "pkg-dir": "__VERSION__", +- "resolve-cwd": "__VERSION__" +- }, +- "bin": { +- "import-local-fixture": "fixtures/cli.js" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/imurmurhash": { + "version": "__VERSION__", + "dev": true, +@@ -5031,16 +2603,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-generator-fn": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/is-generator-function": { + "version": "__VERSION__", + "dev": true, +@@ -5127,13 +2689,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-potential-custom-element-name": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/is-regex": { + "version": "__VERSION__", + "dev": true, +@@ -5176,19 +2731,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/is-stream": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/is-string": { + "version": "__VERSION__", + "dev": true, +@@ -5284,716 +2826,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/istanbul-lib-coverage": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/istanbul-lib-instrument": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "@babel/core": "__VERSION__", +- "@babel/parser": "__VERSION__", +- "@istanbuljs/schema": "__VERSION__", +- "istanbul-lib-coverage": "__VERSION__", +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/istanbul-lib-instrument/node_modules/semver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/istanbul-lib-report": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "istanbul-lib-coverage": "__VERSION__", +- "make-dir": "__VERSION__", +- "supports-color": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/istanbul-lib-source-maps": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "@jridgewell/trace-mapping": "__VERSION__", +- "debug": "__VERSION__", +- "istanbul-lib-coverage": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/istanbul-reports": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "html-escaper": "__VERSION__", +- "istanbul-lib-report": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/jest": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest/-/jest-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/core": "__VERSION__", +- "@jest/types": "__VERSION__", +- "import-local": "__VERSION__", +- "jest-cli": "__VERSION__" +- }, +- "bin": { +- "jest": "bin/jest.js" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "node-notifier": "__VERSION__ || __VERSION__ || __VERSION__" +- }, +- "peerDependenciesMeta": { +- "node-notifier": { +- "optional": true +- } +- } +- }, +- "node_modules/jest-changed-files": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "execa": "__VERSION__", +- "jest-util": "__VERSION__", +- "p-limit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-circus": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/environment": "__VERSION__", +- "@jest/expect": "__VERSION__", +- "@jest/test-result": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "chalk": "__VERSION__", +- "co": "__VERSION__", +- "dedent": "__VERSION__", +- "is-generator-fn": "__VERSION__", +- "jest-each": "__VERSION__", +- "jest-matcher-utils": "__VERSION__", +- "jest-message-util": "__VERSION__", +- "jest-runtime": "__VERSION__", +- "jest-snapshot": "__VERSION__", +- "jest-util": "__VERSION__", +- "p-limit": "__VERSION__", +- "pretty-format": "__VERSION__", +- "pure-rand": "__VERSION__", +- "slash": "__VERSION__", +- "stack-utils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-cli": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/core": "__VERSION__", +- "@jest/test-result": "__VERSION__", +- "@jest/types": "__VERSION__", +- "chalk": "__VERSION__", +- "exit-x": "__VERSION__", +- "import-local": "__VERSION__", +- "jest-config": "__VERSION__", +- "jest-util": "__VERSION__", +- "jest-validate": "__VERSION__", +- "yargs": "__VERSION__" +- }, +- "bin": { +- "jest": "bin/jest.js" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "node-notifier": "__VERSION__ || __VERSION__ || __VERSION__" +- }, +- "peerDependenciesMeta": { +- "node-notifier": { +- "optional": true +- } +- } +- }, +- "node_modules/jest-config": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/core": "__VERSION__", +- "@jest/get-type": "__VERSION__", +- "@jest/pattern": "__VERSION__", +- "@jest/test-sequencer": "__VERSION__", +- "@jest/types": "__VERSION__", +- "babel-jest": "__VERSION__", +- "chalk": "__VERSION__", +- "ci-info": "__VERSION__", +- "deepmerge": "__VERSION__", +- "glob": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "jest-circus": "__VERSION__", +- "jest-docblock": "__VERSION__", +- "jest-environment-node": "__VERSION__", +- "jest-regex-util": "__VERSION__", +- "jest-resolve": "__VERSION__", +- "jest-runner": "__VERSION__", +- "jest-util": "__VERSION__", +- "jest-validate": "__VERSION__", +- "parse-json": "__VERSION__", +- "pretty-format": "__VERSION__", +- "slash": "__VERSION__", +- "strip-json-comments": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "@types/node": "*", +- "esbuild-register": "__VERSION__", +- "ts-node": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "@types/node": { +- "optional": true +- }, +- "esbuild-register": { +- "optional": true +- }, +- "ts-node": { +- "optional": true +- } +- } +- }, +- "node_modules/jest-diff": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/diff-sequences": "__VERSION__", +- "@jest/get-type": "__VERSION__", +- "chalk": "__VERSION__", +- "pretty-format": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-docblock": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "detect-newline": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-each": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/get-type": "__VERSION__", +- "@jest/types": "__VERSION__", +- "chalk": "__VERSION__", +- "jest-util": "__VERSION__", +- "pretty-format": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-environment-jsdom": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/environment": "__VERSION__", +- "@jest/environment-jsdom-abstract": "__VERSION__", +- "jsdom": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "canvas": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "canvas": { +- "optional": true +- } +- } +- }, +- "node_modules/jest-environment-node": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/environment": "__VERSION__", +- "@jest/fake-timers": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "jest-mock": "__VERSION__", +- "jest-util": "__VERSION__", +- "jest-validate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-haste-map": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "anymatch": "__VERSION__", +- "fb-watchman": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "jest-regex-util": "__VERSION__", +- "jest-util": "__VERSION__", +- "jest-worker": "__VERSION__", +- "picomatch": "__VERSION__", +- "walker": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "optionalDependencies": { +- "fsevents": "__VERSION__" +- } +- }, +- "node_modules/jest-leak-detector": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/get-type": "__VERSION__", +- "pretty-format": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-matcher-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/get-type": "__VERSION__", +- "chalk": "__VERSION__", +- "jest-diff": "__VERSION__", +- "pretty-format": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-message-util": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/code-frame": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@types/stack-utils": "__VERSION__", +- "chalk": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "jest-util": "__VERSION__", +- "picomatch": "__VERSION__", +- "pretty-format": "__VERSION__", +- "slash": "__VERSION__", +- "stack-utils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-mock": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "jest-util": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-pnp-resolver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "jest-resolve": "*" +- }, +- "peerDependenciesMeta": { +- "jest-resolve": { +- "optional": true +- } +- } +- }, +- "node_modules/jest-regex-util": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-resolve": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "chalk": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "jest-haste-map": "__VERSION__", +- "jest-pnp-resolver": "__VERSION__", +- "jest-util": "__VERSION__", +- "jest-validate": "__VERSION__", +- "slash": "__VERSION__", +- "unrs-resolver": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-resolve-dependencies": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "jest-regex-util": "__VERSION__", +- "jest-snapshot": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-runner": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/console": "__VERSION__", +- "@jest/environment": "__VERSION__", +- "@jest/test-result": "__VERSION__", +- "@jest/transform": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "chalk": "__VERSION__", +- "emittery": "__VERSION__", +- "exit-x": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "jest-docblock": "__VERSION__", +- "jest-environment-node": "__VERSION__", +- "jest-haste-map": "__VERSION__", +- "jest-leak-detector": "__VERSION__", +- "jest-message-util": "__VERSION__", +- "jest-resolve": "__VERSION__", +- "jest-runtime": "__VERSION__", +- "jest-util": "__VERSION__", +- "jest-watcher": "__VERSION__", +- "jest-worker": "__VERSION__", +- "p-limit": "__VERSION__", +- "source-map-support": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-runtime": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/environment": "__VERSION__", +- "@jest/fake-timers": "__VERSION__", +- "@jest/globals": "__VERSION__", +- "@jest/source-map": "__VERSION__", +- "@jest/test-result": "__VERSION__", +- "@jest/transform": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "chalk": "__VERSION__", +- "cjs-module-lexer": "__VERSION__", +- "collect-v8-coverage": "__VERSION__", +- "glob": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "jest-haste-map": "__VERSION__", +- "jest-message-util": "__VERSION__", +- "jest-mock": "__VERSION__", +- "jest-regex-util": "__VERSION__", +- "jest-resolve": "__VERSION__", +- "jest-snapshot": "__VERSION__", +- "jest-util": "__VERSION__", +- "slash": "__VERSION__", +- "strip-bom": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-runtime/node_modules/strip-bom": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/jest-snapshot": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/core": "__VERSION__", +- "@babel/generator": "__VERSION__", +- "@babel/plugin-syntax-jsx": "__VERSION__", +- "@babel/plugin-syntax-typescript": "__VERSION__", +- "@babel/types": "__VERSION__", +- "@jest/expect-utils": "__VERSION__", +- "@jest/get-type": "__VERSION__", +- "@jest/snapshot-utils": "__VERSION__", +- "@jest/transform": "__VERSION__", +- "@jest/types": "__VERSION__", +- "babel-preset-current-node-syntax": "__VERSION__", +- "chalk": "__VERSION__", +- "expect": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "jest-diff": "__VERSION__", +- "jest-matcher-utils": "__VERSION__", +- "jest-message-util": "__VERSION__", +- "jest-util": "__VERSION__", +- "pretty-format": "__VERSION__", +- "semver": "__VERSION__", +- "synckit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-snapshot/node_modules/semver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/jest-util": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "chalk": "__VERSION__", +- "ci-info": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "picomatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-validate": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/get-type": "__VERSION__", +- "@jest/types": "__VERSION__", +- "camelcase": "__VERSION__", +- "chalk": "__VERSION__", +- "leven": "__VERSION__", +- "pretty-format": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-validate/node_modules/camelcase": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/jest-watcher": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/test-result": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "ansi-escapes": "__VERSION__", +- "chalk": "__VERSION__", +- "emittery": "__VERSION__", +- "jest-util": "__VERSION__", +- "string-length": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-worker": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/node": "*", +- "@ungap/structured-clone": "__VERSION__", +- "jest-util": "__VERSION__", +- "merge-stream": "__VERSION__", +- "supports-color": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-worker/node_modules/supports-color": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-flag": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/supports-color?sponsor=1" +- } +- }, + "node_modules/js-tokens": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-__VERSION__.tgz", +@@ -6034,96 +2866,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/jsdom": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@asamuzakjp/css-color": "__VERSION__", +- "@asamuzakjp/dom-selector": "__VERSION__", +- "@bramus/specificity": "__VERSION__", +- "@csstools/css-syntax-patches-for-csstree": "__VERSION__", +- "@exodus/bytes": "__VERSION__", +- "css-tree": "__VERSION__", +- "data-urls": "__VERSION__", +- "decimal.js": "__VERSION__", +- "html-encoding-sniffer": "__VERSION__", +- "is-potential-custom-element-name": "__VERSION__", +- "lru-cache": "__VERSION__", +- "parse5": "__VERSION__", +- "saxes": "__VERSION__", +- "symbol-tree": "__VERSION__", +- "tough-cookie": "__VERSION__", +- "undici": "__VERSION__", +- "w3c-xmlserializer": "__VERSION__", +- "webidl-conversions": "__VERSION__", +- "whatwg-mimetype": "__VERSION__", +- "whatwg-url": "__VERSION__", +- "xml-name-validator": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "canvas": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "canvas": { +- "optional": true +- } +- } +- }, +- "node_modules/jsdom/node_modules/entities": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/entities/-/entities-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/fb55/entities?sponsor=1" +- } +- }, +- "node_modules/jsdom/node_modules/lru-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BlueOak-__VERSION__", +- "engines": { +- "node": "20 || >=22" +- } +- }, +- "node_modules/jsdom/node_modules/parse5": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/parse5/-/parse5-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "entities": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/inikulin/parse5?sponsor=1" +- } +- }, +- "node_modules/jsesc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "jsesc": "bin/jsesc" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/json-buffer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-__VERSION__.tgz", +@@ -6186,16 +2928,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/leven": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/leven/-/leven-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/levn": { + "version": "__VERSION__", + "dev": true, +@@ -6215,19 +2947,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/locate-path": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-locate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/lodash.merge": { + "version": "__VERSION__", + "dev": true, +@@ -6238,55 +2957,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/lru-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "yallist": "__VERSION__" +- } +- }, +- "node_modules/make-dir": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/make-dir/node_modules/semver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/makeerror": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "tmpl": "__VERSION__" +- } +- }, + "node_modules/math-intrinsics": { + "version": "__VERSION__", + "dev": true, +@@ -6326,13 +2996,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/merge-stream": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/merge2": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-__VERSION__.tgz", +@@ -6370,16 +3033,6 @@ + "url": "https://github.com/sponsors/jonschlinkert" + } + }, +- "node_modules/mimic-fn": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/minimatch": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-__VERSION__.tgz", +@@ -6401,16 +3054,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/minipass": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/minipass/-/minipass-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BlueOak-__VERSION__", +- "engines": { +- "node": ">=16 || 14 >=14.17" +- } +- }, + "node_modules/ms": { + "version": "__VERSION__", + "dev": true, +@@ -6435,44 +3078,11 @@ + "node": "^10 || ^12 || ^13.7 || ^14 || >=__VERSION__" + } + }, +- "node_modules/napi-postinstall": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "napi-postinstall": "lib/cli.js" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/napi-postinstall" +- } +- }, + "node_modules/natural-compare": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/node-int64": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/node-releases": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/normalize-path": { + "version": "__VERSION__", + "dev": true, +@@ -6481,19 +3091,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/npm-run-path": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "path-key": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/object-deep-merge": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/object-deep-merge/-/object-deep-merge-__VERSION__.tgz", +@@ -6586,22 +3183,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/onetime": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/onetime/-/onetime-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "mimic-fn": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/optionator": { + "version": "__VERSION__", + "dev": true, +@@ -6648,45 +3229,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/p-locate": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-limit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/p-locate/node_modules/p-limit": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-try": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/p-try": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/p-try/-/p-try-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/parent-module": { + "version": "__VERSION__", + "dev": true, +@@ -6730,19 +3272,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/parse5": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/parse5/-/parse5-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "entities": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/inikulin/parse5?sponsor=1" +- } +- }, + "node_modules/path-exists": { + "version": "__VERSION__", + "dev": true, +@@ -6764,33 +3293,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/path-scurry": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BlueOak-__VERSION__", +- "dependencies": { +- "lru-cache": "__VERSION__", +- "minipass": "__VERSION__" +- }, +- "engines": { +- "node": "18 || 20 || >=22" +- }, +- "funding": { +- "url": "https://github.com/sponsors/isaacs" +- } +- }, +- "node_modules/path-scurry/node_modules/lru-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BlueOak-__VERSION__", +- "engines": { +- "node": "20 || >=22" +- } +- }, + "node_modules/path-type": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-__VERSION__.tgz", +@@ -6806,42 +3308,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/picomatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/jonschlinkert" +- } +- }, +- "node_modules/pirates": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/pirates/-/pirates-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 6" +- } +- }, +- "node_modules/pkg-dir": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "find-up": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/possible-typed-array-names": { + "version": "__VERSION__", + "dev": true, +@@ -6975,35 +3441,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/pretty-format": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/schemas": "__VERSION__", +- "ansi-styles": "__VERSION__", +- "react-is-18": "npm:react-is@__VERSION__", +- "react-is-19": "npm:react-is@__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/pretty-format/node_modules/ansi-styles": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/ansi-styles?sponsor=1" +- } +- }, + "node_modules/punycode": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-__VERSION__.tgz", +@@ -7014,23 +3451,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/pure-rand": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "individual", +- "url": "https://github.com/sponsors/dubzzz" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/fast-check" +- } +- ], +- "license": "MIT" +- }, + "node_modules/qified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/qified/-/qified-__VERSION__.tgz", +@@ -7081,22 +3501,6 @@ + "url": "https://opencollective.com/ramda" + } + }, +- "node_modules/react-is-18": { +- "name": "react-is", +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/react-is/-/react-is-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/react-is-19": { +- "name": "react-is", +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/react-is/-/react-is-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/reflect.getprototypeof": { + "version": "__VERSION__", + "dev": true, +@@ -7137,16 +3541,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/require-directory": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/require-from-string": { + "version": "__VERSION__", + "dev": true, +@@ -7185,19 +3579,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/resolve-cwd": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "resolve-from": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/resolve-from": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-__VERSION__.tgz", +@@ -7292,19 +3673,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/saxes": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/saxes/-/saxes-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "xmlchars": "__VERSION__" +- }, +- "engines": { +- "node": ">=__VERSION__" +- } +- }, + "node_modules/semver": { + "version": "__VERSION__", + "dev": true, +@@ -7482,16 +3850,6 @@ + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, +- "node_modules/source-map": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/source-map/-/source-map-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/source-map-js": { + "version": "__VERSION__", + "dev": true, +@@ -7500,17 +3858,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/source-map-support": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "buffer-from": "__VERSION__", +- "source-map": "__VERSION__" +- } +- }, + "node_modules/spdx-exceptions": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-__VERSION__.tgz", +@@ -7536,36 +3883,6 @@ + "dev": true, + "license": "CC0-1.0" + }, +- "node_modules/sprintf-js": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause" +- }, +- "node_modules/stack-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "escape-string-regexp": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/stack-utils/node_modules/escape-string-regexp": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/stop-iteration-iterator": { + "version": "__VERSION__", + "dev": true, +@@ -7578,20 +3895,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/string-length": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/string-length/-/string-length-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "char-regex": "__VERSION__", +- "strip-ansi": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/string-width": { + "version": "__VERSION__", + "dev": true, +@@ -7677,16 +3980,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/strip-final-newline": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/strip-json-comments": { + "version": "__VERSION__", + "dev": true, +@@ -7908,13 +4201,6 @@ + "version": "__VERSION__", + "dev": true + }, +- "node_modules/symbol-tree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/synckit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-__VERSION__.tgz", +@@ -7966,87 +4252,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/test-exclude": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "@istanbuljs/schema": "__VERSION__", +- "glob": "__VERSION__", +- "minimatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/test-exclude/node_modules/balanced-match": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "18 || 20 || >=22" +- } +- }, +- "node_modules/test-exclude/node_modules/brace-expansion": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "balanced-match": "__VERSION__" +- }, +- "engines": { +- "node": "20 || >=22" +- } +- }, +- "node_modules/test-exclude/node_modules/minimatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BlueOak-__VERSION__", +- "dependencies": { +- "brace-expansion": "__VERSION__" +- }, +- "engines": { +- "node": "18 || 20 || >=22" +- }, +- "funding": { +- "url": "https://github.com/sponsors/isaacs" +- } +- }, +- "node_modules/tldts": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/tldts/-/tldts-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "tldts-core": "__VERSION__" +- }, +- "bin": { +- "tldts": "bin/cli.js" +- } +- }, +- "node_modules/tldts-core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/tmpl": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause" +- }, + "node_modules/to-regex-range": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-__VERSION__.tgz", +@@ -8075,32 +4280,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/tough-cookie": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "tldts": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/tr46": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/tr46/-/tr46-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "punycode": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/tsconfig-paths": { + "version": "__VERSION__", + "dev": true, +@@ -8112,14 +4291,6 @@ + "strip-bom": "__VERSION__" + } + }, +- "node_modules/tslib": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/tslib/-/tslib-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "0BSD", +- "optional": true +- }, + "node_modules/type-check": { + "version": "__VERSION__", + "dev": true, +@@ -8131,29 +4302,6 @@ + "node": ">= __VERSION__" + } + }, +- "node_modules/type-detect": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/type-fest": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "(MIT OR CC0-1.0)", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/typed-array-buffer": { + "version": "__VERSION__", + "dev": true, +@@ -8241,92 +4389,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/undici": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/undici/-/undici-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/undici-types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/unrs-resolver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "hasInstallScript": true, +- "license": "MIT", +- "dependencies": { +- "napi-postinstall": "__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/unrs-resolver" +- }, +- "optionalDependencies": { +- "@unrs/resolver-binding-android-arm-eabi": "__VERSION__", +- "@unrs/resolver-binding-android-arm64": "__VERSION__", +- "@unrs/resolver-binding-darwin-arm64": "__VERSION__", +- "@unrs/resolver-binding-darwin-x64": "__VERSION__", +- "@unrs/resolver-binding-freebsd-x64": "__VERSION__", +- "@unrs/resolver-binding-linux-arm-gnueabihf": "__VERSION__", +- "@unrs/resolver-binding-linux-arm-musleabihf": "__VERSION__", +- "@unrs/resolver-binding-linux-arm64-gnu": "__VERSION__", +- "@unrs/resolver-binding-linux-arm64-musl": "__VERSION__", +- "@unrs/resolver-binding-linux-loong64-gnu": "__VERSION__", +- "@unrs/resolver-binding-linux-loong64-musl": "__VERSION__", +- "@unrs/resolver-binding-linux-ppc64-gnu": "__VERSION__", +- "@unrs/resolver-binding-linux-riscv64-gnu": "__VERSION__", +- "@unrs/resolver-binding-linux-riscv64-musl": "__VERSION__", +- "@unrs/resolver-binding-linux-s390x-gnu": "__VERSION__", +- "@unrs/resolver-binding-linux-x64-gnu": "__VERSION__", +- "@unrs/resolver-binding-linux-x64-musl": "__VERSION__", +- "@unrs/resolver-binding-openharmony-arm64": "__VERSION__", +- "@unrs/resolver-binding-wasm32-wasi": "__VERSION__", +- "@unrs/resolver-binding-win32-arm64-msvc": "__VERSION__", +- "@unrs/resolver-binding-win32-ia32-msvc": "__VERSION__", +- "@unrs/resolver-binding-win32-x64-msvc": "__VERSION__" +- } +- }, +- "node_modules/update-browserslist-db": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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": "__VERSION__", +- "picocolors": "__VERSION__" +- }, +- "bin": { +- "update-browserslist-db": "cli.js" +- }, +- "peerDependencies": { +- "browserslist": ">= __VERSION__" +- } +- }, + "node_modules/uri-js": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-__VERSION__.tgz", +@@ -8344,79 +4406,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/v8-to-istanbul": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "@jridgewell/trace-mapping": "__VERSION__", +- "@types/istanbul-lib-coverage": "__VERSION__", +- "convert-source-map": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/w3c-xmlserializer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "xml-name-validator": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/walker": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/walker/-/walker-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "makeerror": "__VERSION__" +- } +- }, +- "node_modules/webidl-conversions": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/whatwg-mimetype": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/whatwg-url": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@exodus/bytes": "__VERSION__", +- "tr46": "__VERSION__", +- "webidl-conversions": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/which": { + "version": "__VERSION__", + "dev": true, +@@ -8534,40 +4523,6 @@ + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/xml-name-validator": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/xmlchars": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/y18n": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/y18n/-/y18n-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/yallist": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/yallist/-/yallist-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC" +- }, + "node_modules/yaml": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-__VERSION__.tgz", +@@ -8599,35 +4554,6 @@ + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" +- } +- }, +- "node_modules/yargs": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/yargs/-/yargs-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cliui": "__VERSION__", +- "escalade": "__VERSION__", +- "get-caller-file": "__VERSION__", +- "require-directory": "__VERSION__", +- "string-width": "__VERSION__", +- "y18n": "__VERSION__", +- "yargs-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/yargs-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "engines": { +- "node": "__VERSION__" + } + }, + "node_modules/yocto-queue": { diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest/package.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest/package.json index c765b3d1aa..9fdbc4c89a 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest/package.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest/package.json @@ -1,15 +1,17 @@ -@@ -13,13 +13,10 @@ - "lint": "yarn run lint-js && yarn run lint-css", - "lint-fix-js": "eslint web/modules/custom --ext .js --no-error-on-unmatched-pattern --fix", +@@ -13,15 +13,12 @@ + "lint": "npm run lint-js && npm run lint-css", + "lint-fix-js": "eslint web/modules/custom --no-error-on-unmatched-pattern --fix", "lint-fix-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\" --fix", -- "lint-fix": "yarn run lint-fix-js && yarn run lint-fix-css", +- "lint-fix": "npm run lint-fix-js && npm run lint-fix-css", - "test": "jest --coverage --passWithNoTests" -+ "lint-fix": "yarn run lint-fix-js && yarn run lint-fix-css" ++ "lint-fix": "npm run lint-fix-js && npm run lint-fix-css" }, "devDependencies": { + "@eslint/compat": "__VERSION__", + "@eslint/js": "__VERSION__", "@homer0/prettier-plugin-jsdoc": "__VERSION__", - "jest": "__VERSION__", - "jest-environment-jsdom": "__VERSION__", "eslint": "__VERSION__", - "eslint-config-airbnb-base": "__VERSION__", "eslint-config-prettier": "__VERSION__", + "eslint-plugin-import": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest_circleci/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest_circleci/.ahoy.yml index d245c9e1ed..6db5045f26 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest_circleci/.ahoy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest_circleci/.ahoy.yml @@ -4,7 +4,7 @@ - test-js: - usage: Run Jest JavaScript unit tests. -- cmd: ahoy cli "yarn test" +- cmd: ahoy cli "npm test" - test-bdd: usage: Run BDD tests. diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest_circleci/.circleci/config.yml index c937925825..bc01a31f2f 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest_circleci/.circleci/config.yml @@ -139,7 +139,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -167,13 +167,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -184,14 +184,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -206,6 +207,27 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -258,10 +280,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -311,7 +333,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -320,22 +342,22 @@ jobs: - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -344,14 +366,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -360,7 +382,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -372,10 +394,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -384,9 +407,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest_circleci/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest_circleci/package-lock.json new file mode 100644 index 0000000000..033ad7fe4a --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest_circleci/package-lock.json @@ -0,0 +1,4649 @@ +@@ -18,8 +18,6 @@ + "eslint-plugin-prettier": "__VERSION__", + "eslint-plugin-yml": "__VERSION__", + "globals": "__VERSION__", +- "jest": "__VERSION__", +- "jest-environment-jsdom": "__VERSION__", + "prettier": "__VERSION__", + "stylelint": "__VERSION__", + "stylelint-config-standard": "__VERSION__", +@@ -30,152 +28,6 @@ + "npm": ">= __VERSION__" + } + }, +- "node_modules/@asamuzakjp/css-color": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@asamuzakjp/generational-cache": "__VERSION__", +- "@csstools/css-calc": "__VERSION__", +- "@csstools/css-color-parser": "__VERSION__", +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@asamuzakjp/css-color/node_modules/@csstools/css-calc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@asamuzakjp/css-color/node_modules/@csstools/css-color-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "@csstools/color-helpers": "__VERSION__", +- "@csstools/css-calc": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@asamuzakjp/css-color/node_modules/@csstools/css-parser-algorithms": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@asamuzakjp/css-color/node_modules/@csstools/css-tokenizer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@asamuzakjp/dom-selector": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@asamuzakjp/generational-cache": "__VERSION__", +- "@asamuzakjp/nwsapi": "__VERSION__", +- "bidi-js": "__VERSION__", +- "css-tree": "__VERSION__", +- "is-potential-custom-element-name": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@asamuzakjp/generational-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@asamuzakjp/generational-cache/-/generational-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@asamuzakjp/nwsapi": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@babel/code-frame": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-__VERSION__.tgz", +@@ -191,156 +43,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/@babel/compat-data": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/code-frame": "__VERSION__", +- "@babel/generator": "__VERSION__", +- "@babel/helper-compilation-targets": "__VERSION__", +- "@babel/helper-module-transforms": "__VERSION__", +- "@babel/helpers": "__VERSION__", +- "@babel/parser": "__VERSION__", +- "@babel/template": "__VERSION__", +- "@babel/traverse": "__VERSION__", +- "@babel/types": "__VERSION__", +- "@jridgewell/remapping": "__VERSION__", +- "convert-source-map": "__VERSION__", +- "debug": "__VERSION__", +- "gensync": "__VERSION__", +- "json5": "__VERSION__", +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/babel" +- } +- }, +- "node_modules/@babel/core/node_modules/json5": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/json5/-/json5-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "json5": "lib/cli.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/generator": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/parser": "__VERSION__", +- "@babel/types": "__VERSION__", +- "@jridgewell/gen-mapping": "__VERSION__", +- "@jridgewell/trace-mapping": "__VERSION__", +- "jsesc": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/helper-compilation-targets": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/compat-data": "__VERSION__", +- "@babel/helper-validator-option": "__VERSION__", +- "browserslist": "__VERSION__", +- "lru-cache": "__VERSION__", +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/helper-globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/helper-module-imports": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/traverse": "__VERSION__", +- "@babel/types": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/helper-module-transforms": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-module-imports": "__VERSION__", +- "@babel/helper-validator-identifier": "__VERSION__", +- "@babel/traverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/helper-plugin-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/helper-string-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/@babel/helper-validator-identifier": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-__VERSION__.tgz", +@@ -351,353 +53,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/@babel/helper-validator-option": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/helpers": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/template": "__VERSION__", +- "@babel/types": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/types": "__VERSION__" +- }, +- "bin": { +- "parser": "bin/babel-parser.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-async-generators": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-bigint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-class-properties": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-class-static-block": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-import-attributes": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-import-meta": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-json-strings": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-jsx": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-logical-assignment-operators": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-numeric-separator": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-object-rest-spread": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-optional-catch-binding": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-optional-chaining": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-private-property-in-object": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-top-level-await": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/plugin-syntax-typescript": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__" +- } +- }, +- "node_modules/@babel/template": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/template/-/template-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/code-frame": "__VERSION__", +- "@babel/parser": "__VERSION__", +- "@babel/types": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/traverse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/code-frame": "__VERSION__", +- "@babel/generator": "__VERSION__", +- "@babel/helper-globals": "__VERSION__", +- "@babel/parser": "__VERSION__", +- "@babel/template": "__VERSION__", +- "@babel/types": "__VERSION__", +- "debug": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@babel/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-string-parser": "__VERSION__", +- "@babel/helper-validator-identifier": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@bcoe/v8-coverage": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@bramus/specificity": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "css-tree": "__VERSION__" +- }, +- "bin": { +- "specificity": "bin/cli.js" +- } +- }, + "node_modules/@cacheable/memory": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-__VERSION__.tgz", +@@ -759,26 +114,6 @@ + "@keyv/serialize": "__VERSION__" + } + }, +- "node_modules/@csstools/color-helpers": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT-0", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-__VERSION__.tgz", +@@ -905,40 +240,6 @@ + "url": "https://github.com/sponsors/JounQin" + } + }, +- "node_modules/@emnapi/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "optional": true, +- "dependencies": { +- "@emnapi/wasi-threads": "__VERSION__", +- "tslib": "__VERSION__" +- } +- }, +- "node_modules/@emnapi/runtime": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "optional": true, +- "dependencies": { +- "tslib": "__VERSION__" +- } +- }, +- "node_modules/@emnapi/wasi-threads": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "optional": true, +- "dependencies": { +- "tslib": "__VERSION__" +- } +- }, + "node_modules/@es-joy/jsdoccomment": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-__VERSION__.tgz", +@@ -1148,24 +449,6 @@ + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/@exodus/bytes": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "@noble/hashes": "__VERSION__ || __VERSION__" +- }, +- "peerDependenciesMeta": { +- "@noble/hashes": { +- "optional": true +- } +- } +- }, + "node_modules/@homer0/prettier-plugin-jsdoc": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@homer0/prettier-plugin-jsdoc/-/prettier-plugin-jsdoc-__VERSION__.tgz", +@@ -1247,476 +530,6 @@ + "url": "https://github.com/sponsors/nzakas" + } + }, +- "node_modules/@istanbuljs/load-nyc-config": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "camelcase": "__VERSION__", +- "find-up": "__VERSION__", +- "get-package-type": "__VERSION__", +- "js-yaml": "__VERSION__", +- "resolve-from": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/argparse/-/argparse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "sprintf-js": "__VERSION__" +- } +- }, +- "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "argparse": "__VERSION__", +- "esprima": "__VERSION__" +- }, +- "bin": { +- "js-yaml": "bin/js-yaml.js" +- } +- }, +- "node_modules/@istanbuljs/schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@jest/console": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/console/-/console-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "chalk": "__VERSION__", +- "jest-message-util": "__VERSION__", +- "jest-util": "__VERSION__", +- "slash": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/console": "__VERSION__", +- "@jest/pattern": "__VERSION__", +- "@jest/reporters": "__VERSION__", +- "@jest/test-result": "__VERSION__", +- "@jest/transform": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "ansi-escapes": "__VERSION__", +- "chalk": "__VERSION__", +- "ci-info": "__VERSION__", +- "exit-x": "__VERSION__", +- "fast-json-stable-stringify": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "jest-changed-files": "__VERSION__", +- "jest-config": "__VERSION__", +- "jest-haste-map": "__VERSION__", +- "jest-message-util": "__VERSION__", +- "jest-regex-util": "__VERSION__", +- "jest-resolve": "__VERSION__", +- "jest-resolve-dependencies": "__VERSION__", +- "jest-runner": "__VERSION__", +- "jest-runtime": "__VERSION__", +- "jest-snapshot": "__VERSION__", +- "jest-util": "__VERSION__", +- "jest-validate": "__VERSION__", +- "jest-watcher": "__VERSION__", +- "pretty-format": "__VERSION__", +- "slash": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "node-notifier": "__VERSION__ || __VERSION__ || __VERSION__" +- }, +- "peerDependenciesMeta": { +- "node-notifier": { +- "optional": true +- } +- } +- }, +- "node_modules/@jest/diff-sequences": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/environment": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/fake-timers": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "jest-mock": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/environment-jsdom-abstract": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/environment-jsdom-abstract/-/environment-jsdom-abstract-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/environment": "__VERSION__", +- "@jest/fake-timers": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@types/jsdom": "__VERSION__", +- "@types/node": "*", +- "jest-mock": "__VERSION__", +- "jest-util": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "canvas": "__VERSION__", +- "jsdom": "*" +- }, +- "peerDependenciesMeta": { +- "canvas": { +- "optional": true +- } +- } +- }, +- "node_modules/@jest/expect": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "expect": "__VERSION__", +- "jest-snapshot": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/expect-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/get-type": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/fake-timers": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/types": "__VERSION__", +- "@sinonjs/fake-timers": "__VERSION__", +- "@types/node": "*", +- "jest-message-util": "__VERSION__", +- "jest-mock": "__VERSION__", +- "jest-util": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/get-type": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/environment": "__VERSION__", +- "@jest/expect": "__VERSION__", +- "@jest/types": "__VERSION__", +- "jest-mock": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/pattern": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/node": "*", +- "jest-regex-util": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/reporters": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@bcoe/v8-coverage": "__VERSION__", +- "@jest/console": "__VERSION__", +- "@jest/test-result": "__VERSION__", +- "@jest/transform": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@jridgewell/trace-mapping": "__VERSION__", +- "@types/node": "*", +- "chalk": "__VERSION__", +- "collect-v8-coverage": "__VERSION__", +- "exit-x": "__VERSION__", +- "glob": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "istanbul-lib-coverage": "__VERSION__", +- "istanbul-lib-instrument": "__VERSION__", +- "istanbul-lib-report": "__VERSION__", +- "istanbul-lib-source-maps": "__VERSION__", +- "istanbul-reports": "__VERSION__", +- "jest-message-util": "__VERSION__", +- "jest-util": "__VERSION__", +- "jest-worker": "__VERSION__", +- "slash": "__VERSION__", +- "string-length": "__VERSION__", +- "v8-to-istanbul": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "node-notifier": "__VERSION__ || __VERSION__ || __VERSION__" +- }, +- "peerDependenciesMeta": { +- "node-notifier": { +- "optional": true +- } +- } +- }, +- "node_modules/@jest/schemas": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@sinclair/typebox": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/snapshot-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/types": "__VERSION__", +- "chalk": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "natural-compare": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/source-map": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jridgewell/trace-mapping": "__VERSION__", +- "callsites": "__VERSION__", +- "graceful-fs": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/test-result": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/console": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@types/istanbul-lib-coverage": "__VERSION__", +- "collect-v8-coverage": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/test-sequencer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/test-result": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "jest-haste-map": "__VERSION__", +- "slash": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/transform": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/core": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@jridgewell/trace-mapping": "__VERSION__", +- "babel-plugin-istanbul": "__VERSION__", +- "chalk": "__VERSION__", +- "convert-source-map": "__VERSION__", +- "fast-json-stable-stringify": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "jest-haste-map": "__VERSION__", +- "jest-regex-util": "__VERSION__", +- "jest-util": "__VERSION__", +- "pirates": "__VERSION__", +- "slash": "__VERSION__", +- "write-file-atomic": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jest/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jest/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/pattern": "__VERSION__", +- "@jest/schemas": "__VERSION__", +- "@types/istanbul-lib-coverage": "__VERSION__", +- "@types/istanbul-reports": "__VERSION__", +- "@types/node": "*", +- "@types/yargs": "__VERSION__", +- "chalk": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@jridgewell/gen-mapping": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jridgewell/sourcemap-codec": "__VERSION__", +- "@jridgewell/trace-mapping": "__VERSION__" +- } +- }, +- "node_modules/@jridgewell/remapping": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jridgewell/gen-mapping": "__VERSION__", +- "@jridgewell/trace-mapping": "__VERSION__" +- } +- }, +- "node_modules/@jridgewell/resolve-uri": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@jridgewell/sourcemap-codec": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@jridgewell/trace-mapping": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jridgewell/resolve-uri": "__VERSION__", +- "@jridgewell/sourcemap-codec": "__VERSION__" +- } +- }, + "node_modules/@keyv/serialize": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-__VERSION__.tgz", +@@ -1724,28 +537,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/@napi-rs/wasm-runtime": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "optional": true, +- "dependencies": { +- "@tybys/wasm-util": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/Brooooooklyn" +- }, +- "peerDependencies": { +- "@emnapi/core": "__VERSION__ || __VERSION__", +- "@emnapi/runtime": "__VERSION__ || __VERSION__" +- } +- }, + "node_modules/@nodelib/fs.scandir": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-__VERSION__.tgz", +@@ -1802,13 +593,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/@sinclair/typebox": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@sindresorhus/base62": { + "version": "__VERSION__", + "dev": true, +@@ -1820,82 +604,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/@sinonjs/commons": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "type-detect": "__VERSION__" +- } +- }, +- "node_modules/@sinonjs/fake-timers": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "@sinonjs/commons": "__VERSION__" +- } +- }, +- "node_modules/@tybys/wasm-util": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "optional": true, +- "dependencies": { +- "tslib": "__VERSION__" +- } +- }, +- "node_modules/@types/babel__core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/parser": "__VERSION__", +- "@babel/types": "__VERSION__", +- "@types/babel__generator": "*", +- "@types/babel__template": "*", +- "@types/babel__traverse": "*" +- } +- }, +- "node_modules/@types/babel__generator": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/types": "__VERSION__" +- } +- }, +- "node_modules/@types/babel__template": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/parser": "__VERSION__", +- "@babel/types": "__VERSION__" +- } +- }, +- "node_modules/@types/babel__traverse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/types": "__VERSION__" +- } +- }, + "node_modules/@types/estree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-__VERSION__.tgz", +@@ -1903,45 +611,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/@types/istanbul-lib-coverage": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/istanbul-lib-report": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/istanbul-lib-coverage": "*" +- } +- }, +- "node_modules/@types/istanbul-reports": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/istanbul-lib-report": "*" +- } +- }, +- "node_modules/@types/jsdom": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/node": "*", +- "@types/tough-cookie": "*", +- "parse5": "__VERSION__" +- } +- }, + "node_modules/@types/json-schema": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-__VERSION__.tgz", +@@ -1954,47 +623,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/@types/node": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/node/-/node-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "undici-types": "__VERSION__" +- } +- }, +- "node_modules/@types/stack-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/tough-cookie": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/yargs": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/yargs-parser": "*" +- } +- }, +- "node_modules/@types/yargs-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@typescript-eslint/types": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-__VERSION__.tgz", +@@ -2009,356 +637,6 @@ + "url": "https://opencollective.com/typescript-eslint" + } + }, +- "node_modules/@ungap/structured-clone": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC" +- }, +- "node_modules/@unrs/resolver-binding-android-arm-eabi": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "arm" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "android" +- ] +- }, +- "node_modules/@unrs/resolver-binding-android-arm64": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "arm64" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "android" +- ] +- }, +- "node_modules/@unrs/resolver-binding-darwin-arm64": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "arm64" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "darwin" +- ] +- }, +- "node_modules/@unrs/resolver-binding-darwin-x64": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "x64" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "darwin" +- ] +- }, +- "node_modules/@unrs/resolver-binding-freebsd-x64": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "x64" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "freebsd" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "arm" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "arm" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "arm64" +- ], +- "dev": true, +- "libc": [ +- "glibc" +- ], +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-arm64-musl": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "arm64" +- ], +- "dev": true, +- "libc": [ +- "musl" +- ], +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-loong64-gnu": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-gnu/-/resolver-binding-linux-loong64-gnu-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "loong64" +- ], +- "dev": true, +- "libc": [ +- "glibc" +- ], +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-loong64-musl": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-musl/-/resolver-binding-linux-loong64-musl-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "loong64" +- ], +- "dev": true, +- "libc": [ +- "musl" +- ], +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "ppc64" +- ], +- "dev": true, +- "libc": [ +- "glibc" +- ], +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "riscv64" +- ], +- "dev": true, +- "libc": [ +- "glibc" +- ], +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "riscv64" +- ], +- "dev": true, +- "libc": [ +- "musl" +- ], +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "s390x" +- ], +- "dev": true, +- "libc": [ +- "glibc" +- ], +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-x64-gnu": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "x64" +- ], +- "dev": true, +- "libc": [ +- "glibc" +- ], +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-linux-x64-musl": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "x64" +- ], +- "dev": true, +- "libc": [ +- "musl" +- ], +- "license": "MIT", +- "optional": true, +- "os": [ +- "linux" +- ] +- }, +- "node_modules/@unrs/resolver-binding-openharmony-arm64": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-openharmony-arm64/-/resolver-binding-openharmony-arm64-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "arm64" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "openharmony" +- ] +- }, +- "node_modules/@unrs/resolver-binding-wasm32-wasi": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "wasm32" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "dependencies": { +- "@emnapi/core": "__VERSION__", +- "@emnapi/runtime": "__VERSION__", +- "@napi-rs/wasm-runtime": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "arm64" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "win32" +- ] +- }, +- "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "ia32" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "win32" +- ] +- }, +- "node_modules/@unrs/resolver-binding-win32-x64-msvc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "cpu": [ +- "x64" +- ], +- "dev": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "win32" +- ] +- }, + "node_modules/acorn": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-__VERSION__.tgz", +@@ -2399,22 +677,6 @@ + "url": "https://github.com/sponsors/epoberezkin" + } + }, +- "node_modules/ansi-escapes": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "type-fest": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, +@@ -2437,33 +699,6 @@ + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, +- "node_modules/anymatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "normalize-path": "__VERSION__", +- "picomatch": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/anymatch/node_modules/picomatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/jonschlinkert" +- } +- }, + "node_modules/are-docs-informative": { + "version": "__VERSION__", + "dev": true, +@@ -2629,105 +864,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/babel-jest": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/transform": "__VERSION__", +- "@types/babel__core": "__VERSION__", +- "babel-plugin-istanbul": "__VERSION__", +- "babel-preset-jest": "__VERSION__", +- "chalk": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "slash": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__ || __VERSION__" +- } +- }, +- "node_modules/babel-plugin-istanbul": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "workspaces": [ +- "test/babel-8" +- ], +- "dependencies": { +- "@babel/helper-plugin-utils": "__VERSION__", +- "@istanbuljs/load-nyc-config": "__VERSION__", +- "@istanbuljs/schema": "__VERSION__", +- "istanbul-lib-instrument": "__VERSION__", +- "test-exclude": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/babel-plugin-jest-hoist": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/babel__core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/babel-preset-current-node-syntax": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/plugin-syntax-async-generators": "__VERSION__", +- "@babel/plugin-syntax-bigint": "__VERSION__", +- "@babel/plugin-syntax-class-properties": "__VERSION__", +- "@babel/plugin-syntax-class-static-block": "__VERSION__", +- "@babel/plugin-syntax-import-attributes": "__VERSION__", +- "@babel/plugin-syntax-import-meta": "__VERSION__", +- "@babel/plugin-syntax-json-strings": "__VERSION__", +- "@babel/plugin-syntax-logical-assignment-operators": "__VERSION__", +- "@babel/plugin-syntax-nullish-coalescing-operator": "__VERSION__", +- "@babel/plugin-syntax-numeric-separator": "__VERSION__", +- "@babel/plugin-syntax-object-rest-spread": "__VERSION__", +- "@babel/plugin-syntax-optional-catch-binding": "__VERSION__", +- "@babel/plugin-syntax-optional-chaining": "__VERSION__", +- "@babel/plugin-syntax-private-property-in-object": "__VERSION__", +- "@babel/plugin-syntax-top-level-await": "__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__ || __VERSION__" +- } +- }, +- "node_modules/babel-preset-jest": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "babel-plugin-jest-hoist": "__VERSION__", +- "babel-preset-current-node-syntax": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "@babel/core": "__VERSION__ || __VERSION__" +- } +- }, + "node_modules/balanced-match": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +@@ -2735,29 +871,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/baseline-browser-mapping": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "bin": { +- "baseline-browser-mapping": "dist/cli.cjs" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/bidi-js": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "require-from-string": "__VERSION__" +- } +- }, + "node_modules/brace-expansion": { + "version": "__VERSION__", + "dev": true, +@@ -2780,57 +893,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/browserslist": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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": { +- "baseline-browser-mapping": "__VERSION__", +- "caniuse-lite": "__VERSION__", +- "electron-to-chromium": "__VERSION__", +- "node-releases": "__VERSION__", +- "update-browserslist-db": "__VERSION__" +- }, +- "bin": { +- "browserslist": "cli.js" +- }, +- "engines": { +- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" +- } +- }, +- "node_modules/bser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/bser/-/bser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "node-int64": "__VERSION__" +- } +- }, +- "node_modules/buffer-from": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/cacheable": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-__VERSION__.tgz", +@@ -2907,37 +969,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/camelcase": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/caniuse-lite": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "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": "__VERSION__", + "dev": true, +@@ -2953,90 +984,6 @@ + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, +- "node_modules/char-regex": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/ci-info": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/sibiraj-s" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/cjs-module-lexer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/cliui": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cliui/-/cliui-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "string-width": "__VERSION__", +- "strip-ansi": "__VERSION__", +- "wrap-ansi": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/cliui/node_modules/wrap-ansi": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ansi-styles": "__VERSION__", +- "string-width": "__VERSION__", +- "strip-ansi": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/wrap-ansi?sponsor=1" +- } +- }, +- "node_modules/co": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/co/-/co-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "iojs": ">= __VERSION__", +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/collect-v8-coverage": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/color-convert": { + "version": "__VERSION__", + "dev": true, +@@ -3073,13 +1020,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/convert-source-map": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/cosmiconfig": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-__VERSION__.tgz", +@@ -3155,20 +1095,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/data-urls": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "whatwg-mimetype": "__VERSION__", +- "whatwg-url": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/data-view-buffer": { + "version": "__VERSION__", + "dev": true, +@@ -3233,43 +1159,11 @@ + } + } + }, +- "node_modules/decimal.js": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/dedent": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/dedent/-/dedent-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "babel-plugin-macros": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "babel-plugin-macros": { +- "optional": true +- } +- } +- }, + "node_modules/deep-is": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/deepmerge": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/define-data-property": { + "version": "__VERSION__", + "dev": true, +@@ -3302,16 +1196,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/detect-newline": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/diff-sequences": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-__VERSION__.tgz", +@@ -3359,44 +1243,11 @@ + "node": ">= 0.4" + } + }, +- "node_modules/electron-to-chromium": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC" +- }, +- "node_modules/emittery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/emittery/-/emittery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sindresorhus/emittery?sponsor=1" +- } +- }, + "node_modules/emoji-regex": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/entities": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/entities/-/entities-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/fb55/entities?sponsor=1" +- } +- }, + "node_modules/env-paths": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-__VERSION__.tgz", +@@ -3552,16 +1403,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/escalade": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/escalade/-/escalade-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/escape-string-regexp": { + "version": "__VERSION__", + "dev": true, +@@ -4030,20 +1871,6 @@ + "url": "https://opencollective.com/eslint" + } + }, +- "node_modules/esprima": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/esprima/-/esprima-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "bin": { +- "esparse": "bin/esparse.js", +- "esvalidate": "bin/esvalidate.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/esquery": { + "version": "__VERSION__", + "dev": true, +@@ -4084,65 +1911,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/execa": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/execa/-/execa-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cross-spawn": "__VERSION__", +- "get-stream": "__VERSION__", +- "human-signals": "__VERSION__", +- "is-stream": "__VERSION__", +- "merge-stream": "__VERSION__", +- "npm-run-path": "__VERSION__", +- "onetime": "__VERSION__", +- "signal-exit": "__VERSION__", +- "strip-final-newline": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sindresorhus/execa?sponsor=1" +- } +- }, +- "node_modules/execa/node_modules/signal-exit": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC" +- }, +- "node_modules/exit-x": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/exit-x/-/exit-x-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/expect": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/expect/-/expect-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/expect-utils": "__VERSION__", +- "@jest/get-type": "__VERSION__", +- "jest-matcher-utils": "__VERSION__", +- "jest-message-util": "__VERSION__", +- "jest-mock": "__VERSION__", +- "jest-util": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/fast-deep-equal": { + "version": "__VERSION__", + "dev": true, +@@ -4228,16 +1996,6 @@ + "reusify": "__VERSION__" + } + }, +- "node_modules/fb-watchman": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "bser": "__VERSION__" +- } +- }, + "node_modules/file-entry-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +@@ -4264,20 +2022,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/find-up": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/find-up/-/find-up-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "locate-path": "__VERSION__", +- "path-exists": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/flat-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +@@ -4313,21 +2057,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/fsevents": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "hasInstallScript": true, +- "license": "MIT", +- "optional": true, +- "os": [ +- "darwin" +- ], +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/function-bind": { + "version": "__VERSION__", + "dev": true, +@@ -4371,26 +2100,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/gensync": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/gensync/-/gensync-__VERSION__", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/get-caller-file": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "engines": { +- "node": "6.* || 8.* || >= 10.*" +- } +- }, + "node_modules/get-intrinsic": { + "version": "__VERSION__", + "dev": true, +@@ -4414,16 +2123,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/get-package-type": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/get-proto": { + "version": "__VERSION__", + "dev": true, +@@ -4436,19 +2135,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/get-stream": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/get-symbol-description": { + "version": "__VERSION__", + "dev": true, +@@ -4465,24 +2151,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/glob/-/glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BlueOak-__VERSION__", +- "dependencies": { +- "minimatch": "__VERSION__", +- "minipass": "__VERSION__", +- "path-scurry": "__VERSION__" +- }, +- "engines": { +- "node": "18 || 20 || >=22" +- }, +- "funding": { +- "url": "https://github.com/sponsors/isaacs" +- } +- }, + "node_modules/glob-parent": { + "version": "__VERSION__", + "dev": true, +@@ -4494,45 +2162,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/glob/node_modules/balanced-match": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "18 || 20 || >=22" +- } +- }, +- "node_modules/glob/node_modules/brace-expansion": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "balanced-match": "__VERSION__" +- }, +- "engines": { +- "node": "20 || >=22" +- } +- }, +- "node_modules/glob/node_modules/minimatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BlueOak-__VERSION__", +- "dependencies": { +- "brace-expansion": "__VERSION__" +- }, +- "engines": { +- "node": "18 || 20 || >=22" +- }, +- "funding": { +- "url": "https://github.com/sponsors/isaacs" +- } +- }, + "node_modules/global-modules": { + "version": "__VERSION__", + "dev": true, +@@ -4633,13 +2262,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/graceful-fs": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC" +- }, + "node_modules/has-bigints": { + "version": "__VERSION__", + "dev": true, +@@ -4740,19 +2362,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/html-encoding-sniffer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@exodus/bytes": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/html-entities": { + "version": "__VERSION__", + "dev": true, +@@ -4768,13 +2377,6 @@ + ], + "license": "MIT" + }, +- "node_modules/html-escaper": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/html-tags": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-__VERSION__.tgz", +@@ -4788,16 +2390,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/human-signals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/ignore": { + "version": "__VERSION__", + "dev": true, +@@ -4829,26 +2421,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/import-local": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/import-local/-/import-local-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "pkg-dir": "__VERSION__", +- "resolve-cwd": "__VERSION__" +- }, +- "bin": { +- "import-local-fixture": "fixtures/cli.js" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/imurmurhash": { + "version": "__VERSION__", + "dev": true, +@@ -5031,16 +2603,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-generator-fn": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/is-generator-function": { + "version": "__VERSION__", + "dev": true, +@@ -5127,13 +2689,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-potential-custom-element-name": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/is-regex": { + "version": "__VERSION__", + "dev": true, +@@ -5176,19 +2731,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/is-stream": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/is-string": { + "version": "__VERSION__", + "dev": true, +@@ -5284,716 +2826,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/istanbul-lib-coverage": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/istanbul-lib-instrument": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "@babel/core": "__VERSION__", +- "@babel/parser": "__VERSION__", +- "@istanbuljs/schema": "__VERSION__", +- "istanbul-lib-coverage": "__VERSION__", +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/istanbul-lib-instrument/node_modules/semver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/istanbul-lib-report": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "istanbul-lib-coverage": "__VERSION__", +- "make-dir": "__VERSION__", +- "supports-color": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/istanbul-lib-source-maps": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "@jridgewell/trace-mapping": "__VERSION__", +- "debug": "__VERSION__", +- "istanbul-lib-coverage": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/istanbul-reports": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "html-escaper": "__VERSION__", +- "istanbul-lib-report": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/jest": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest/-/jest-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/core": "__VERSION__", +- "@jest/types": "__VERSION__", +- "import-local": "__VERSION__", +- "jest-cli": "__VERSION__" +- }, +- "bin": { +- "jest": "bin/jest.js" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "node-notifier": "__VERSION__ || __VERSION__ || __VERSION__" +- }, +- "peerDependenciesMeta": { +- "node-notifier": { +- "optional": true +- } +- } +- }, +- "node_modules/jest-changed-files": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "execa": "__VERSION__", +- "jest-util": "__VERSION__", +- "p-limit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-circus": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/environment": "__VERSION__", +- "@jest/expect": "__VERSION__", +- "@jest/test-result": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "chalk": "__VERSION__", +- "co": "__VERSION__", +- "dedent": "__VERSION__", +- "is-generator-fn": "__VERSION__", +- "jest-each": "__VERSION__", +- "jest-matcher-utils": "__VERSION__", +- "jest-message-util": "__VERSION__", +- "jest-runtime": "__VERSION__", +- "jest-snapshot": "__VERSION__", +- "jest-util": "__VERSION__", +- "p-limit": "__VERSION__", +- "pretty-format": "__VERSION__", +- "pure-rand": "__VERSION__", +- "slash": "__VERSION__", +- "stack-utils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-cli": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/core": "__VERSION__", +- "@jest/test-result": "__VERSION__", +- "@jest/types": "__VERSION__", +- "chalk": "__VERSION__", +- "exit-x": "__VERSION__", +- "import-local": "__VERSION__", +- "jest-config": "__VERSION__", +- "jest-util": "__VERSION__", +- "jest-validate": "__VERSION__", +- "yargs": "__VERSION__" +- }, +- "bin": { +- "jest": "bin/jest.js" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "node-notifier": "__VERSION__ || __VERSION__ || __VERSION__" +- }, +- "peerDependenciesMeta": { +- "node-notifier": { +- "optional": true +- } +- } +- }, +- "node_modules/jest-config": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/core": "__VERSION__", +- "@jest/get-type": "__VERSION__", +- "@jest/pattern": "__VERSION__", +- "@jest/test-sequencer": "__VERSION__", +- "@jest/types": "__VERSION__", +- "babel-jest": "__VERSION__", +- "chalk": "__VERSION__", +- "ci-info": "__VERSION__", +- "deepmerge": "__VERSION__", +- "glob": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "jest-circus": "__VERSION__", +- "jest-docblock": "__VERSION__", +- "jest-environment-node": "__VERSION__", +- "jest-regex-util": "__VERSION__", +- "jest-resolve": "__VERSION__", +- "jest-runner": "__VERSION__", +- "jest-util": "__VERSION__", +- "jest-validate": "__VERSION__", +- "parse-json": "__VERSION__", +- "pretty-format": "__VERSION__", +- "slash": "__VERSION__", +- "strip-json-comments": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "@types/node": "*", +- "esbuild-register": "__VERSION__", +- "ts-node": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "@types/node": { +- "optional": true +- }, +- "esbuild-register": { +- "optional": true +- }, +- "ts-node": { +- "optional": true +- } +- } +- }, +- "node_modules/jest-diff": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/diff-sequences": "__VERSION__", +- "@jest/get-type": "__VERSION__", +- "chalk": "__VERSION__", +- "pretty-format": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-docblock": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "detect-newline": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-each": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/get-type": "__VERSION__", +- "@jest/types": "__VERSION__", +- "chalk": "__VERSION__", +- "jest-util": "__VERSION__", +- "pretty-format": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-environment-jsdom": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/environment": "__VERSION__", +- "@jest/environment-jsdom-abstract": "__VERSION__", +- "jsdom": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "canvas": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "canvas": { +- "optional": true +- } +- } +- }, +- "node_modules/jest-environment-node": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/environment": "__VERSION__", +- "@jest/fake-timers": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "jest-mock": "__VERSION__", +- "jest-util": "__VERSION__", +- "jest-validate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-haste-map": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "anymatch": "__VERSION__", +- "fb-watchman": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "jest-regex-util": "__VERSION__", +- "jest-util": "__VERSION__", +- "jest-worker": "__VERSION__", +- "picomatch": "__VERSION__", +- "walker": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "optionalDependencies": { +- "fsevents": "__VERSION__" +- } +- }, +- "node_modules/jest-leak-detector": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/get-type": "__VERSION__", +- "pretty-format": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-matcher-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/get-type": "__VERSION__", +- "chalk": "__VERSION__", +- "jest-diff": "__VERSION__", +- "pretty-format": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-message-util": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/code-frame": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@types/stack-utils": "__VERSION__", +- "chalk": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "jest-util": "__VERSION__", +- "picomatch": "__VERSION__", +- "pretty-format": "__VERSION__", +- "slash": "__VERSION__", +- "stack-utils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-mock": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "jest-util": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-pnp-resolver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "jest-resolve": "*" +- }, +- "peerDependenciesMeta": { +- "jest-resolve": { +- "optional": true +- } +- } +- }, +- "node_modules/jest-regex-util": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-resolve": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "chalk": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "jest-haste-map": "__VERSION__", +- "jest-pnp-resolver": "__VERSION__", +- "jest-util": "__VERSION__", +- "jest-validate": "__VERSION__", +- "slash": "__VERSION__", +- "unrs-resolver": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-resolve-dependencies": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "jest-regex-util": "__VERSION__", +- "jest-snapshot": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-runner": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/console": "__VERSION__", +- "@jest/environment": "__VERSION__", +- "@jest/test-result": "__VERSION__", +- "@jest/transform": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "chalk": "__VERSION__", +- "emittery": "__VERSION__", +- "exit-x": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "jest-docblock": "__VERSION__", +- "jest-environment-node": "__VERSION__", +- "jest-haste-map": "__VERSION__", +- "jest-leak-detector": "__VERSION__", +- "jest-message-util": "__VERSION__", +- "jest-resolve": "__VERSION__", +- "jest-runtime": "__VERSION__", +- "jest-util": "__VERSION__", +- "jest-watcher": "__VERSION__", +- "jest-worker": "__VERSION__", +- "p-limit": "__VERSION__", +- "source-map-support": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-runtime": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/environment": "__VERSION__", +- "@jest/fake-timers": "__VERSION__", +- "@jest/globals": "__VERSION__", +- "@jest/source-map": "__VERSION__", +- "@jest/test-result": "__VERSION__", +- "@jest/transform": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "chalk": "__VERSION__", +- "cjs-module-lexer": "__VERSION__", +- "collect-v8-coverage": "__VERSION__", +- "glob": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "jest-haste-map": "__VERSION__", +- "jest-message-util": "__VERSION__", +- "jest-mock": "__VERSION__", +- "jest-regex-util": "__VERSION__", +- "jest-resolve": "__VERSION__", +- "jest-snapshot": "__VERSION__", +- "jest-util": "__VERSION__", +- "slash": "__VERSION__", +- "strip-bom": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-runtime/node_modules/strip-bom": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/jest-snapshot": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/core": "__VERSION__", +- "@babel/generator": "__VERSION__", +- "@babel/plugin-syntax-jsx": "__VERSION__", +- "@babel/plugin-syntax-typescript": "__VERSION__", +- "@babel/types": "__VERSION__", +- "@jest/expect-utils": "__VERSION__", +- "@jest/get-type": "__VERSION__", +- "@jest/snapshot-utils": "__VERSION__", +- "@jest/transform": "__VERSION__", +- "@jest/types": "__VERSION__", +- "babel-preset-current-node-syntax": "__VERSION__", +- "chalk": "__VERSION__", +- "expect": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "jest-diff": "__VERSION__", +- "jest-matcher-utils": "__VERSION__", +- "jest-message-util": "__VERSION__", +- "jest-util": "__VERSION__", +- "pretty-format": "__VERSION__", +- "semver": "__VERSION__", +- "synckit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-snapshot/node_modules/semver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/jest-util": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "chalk": "__VERSION__", +- "ci-info": "__VERSION__", +- "graceful-fs": "__VERSION__", +- "picomatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-validate": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/get-type": "__VERSION__", +- "@jest/types": "__VERSION__", +- "camelcase": "__VERSION__", +- "chalk": "__VERSION__", +- "leven": "__VERSION__", +- "pretty-format": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-validate/node_modules/camelcase": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/jest-watcher": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/test-result": "__VERSION__", +- "@jest/types": "__VERSION__", +- "@types/node": "*", +- "ansi-escapes": "__VERSION__", +- "chalk": "__VERSION__", +- "emittery": "__VERSION__", +- "jest-util": "__VERSION__", +- "string-length": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-worker": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/node": "*", +- "@ungap/structured-clone": "__VERSION__", +- "jest-util": "__VERSION__", +- "merge-stream": "__VERSION__", +- "supports-color": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/jest-worker/node_modules/supports-color": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-flag": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/supports-color?sponsor=1" +- } +- }, + "node_modules/js-tokens": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-__VERSION__.tgz", +@@ -6034,96 +2866,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/jsdom": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@asamuzakjp/css-color": "__VERSION__", +- "@asamuzakjp/dom-selector": "__VERSION__", +- "@bramus/specificity": "__VERSION__", +- "@csstools/css-syntax-patches-for-csstree": "__VERSION__", +- "@exodus/bytes": "__VERSION__", +- "css-tree": "__VERSION__", +- "data-urls": "__VERSION__", +- "decimal.js": "__VERSION__", +- "html-encoding-sniffer": "__VERSION__", +- "is-potential-custom-element-name": "__VERSION__", +- "lru-cache": "__VERSION__", +- "parse5": "__VERSION__", +- "saxes": "__VERSION__", +- "symbol-tree": "__VERSION__", +- "tough-cookie": "__VERSION__", +- "undici": "__VERSION__", +- "w3c-xmlserializer": "__VERSION__", +- "webidl-conversions": "__VERSION__", +- "whatwg-mimetype": "__VERSION__", +- "whatwg-url": "__VERSION__", +- "xml-name-validator": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "peerDependencies": { +- "canvas": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "canvas": { +- "optional": true +- } +- } +- }, +- "node_modules/jsdom/node_modules/entities": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/entities/-/entities-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/fb55/entities?sponsor=1" +- } +- }, +- "node_modules/jsdom/node_modules/lru-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BlueOak-__VERSION__", +- "engines": { +- "node": "20 || >=22" +- } +- }, +- "node_modules/jsdom/node_modules/parse5": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/parse5/-/parse5-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "entities": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/inikulin/parse5?sponsor=1" +- } +- }, +- "node_modules/jsesc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "jsesc": "bin/jsesc" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/json-buffer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-__VERSION__.tgz", +@@ -6186,16 +2928,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/leven": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/leven/-/leven-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/levn": { + "version": "__VERSION__", + "dev": true, +@@ -6215,19 +2947,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/locate-path": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-locate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/lodash.merge": { + "version": "__VERSION__", + "dev": true, +@@ -6238,55 +2957,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/lru-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "yallist": "__VERSION__" +- } +- }, +- "node_modules/make-dir": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/make-dir/node_modules/semver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/makeerror": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "tmpl": "__VERSION__" +- } +- }, + "node_modules/math-intrinsics": { + "version": "__VERSION__", + "dev": true, +@@ -6326,13 +2996,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/merge-stream": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/merge2": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-__VERSION__.tgz", +@@ -6370,16 +3033,6 @@ + "url": "https://github.com/sponsors/jonschlinkert" + } + }, +- "node_modules/mimic-fn": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/minimatch": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-__VERSION__.tgz", +@@ -6401,16 +3054,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/minipass": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/minipass/-/minipass-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BlueOak-__VERSION__", +- "engines": { +- "node": ">=16 || 14 >=14.17" +- } +- }, + "node_modules/ms": { + "version": "__VERSION__", + "dev": true, +@@ -6435,44 +3078,11 @@ + "node": "^10 || ^12 || ^13.7 || ^14 || >=__VERSION__" + } + }, +- "node_modules/napi-postinstall": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "napi-postinstall": "lib/cli.js" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/napi-postinstall" +- } +- }, + "node_modules/natural-compare": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/node-int64": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/node-releases": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/normalize-path": { + "version": "__VERSION__", + "dev": true, +@@ -6481,19 +3091,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/npm-run-path": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "path-key": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/object-deep-merge": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/object-deep-merge/-/object-deep-merge-__VERSION__.tgz", +@@ -6586,22 +3183,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/onetime": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/onetime/-/onetime-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "mimic-fn": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/optionator": { + "version": "__VERSION__", + "dev": true, +@@ -6648,45 +3229,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/p-locate": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-limit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/p-locate/node_modules/p-limit": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-try": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/p-try": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/p-try/-/p-try-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/parent-module": { + "version": "__VERSION__", + "dev": true, +@@ -6730,19 +3272,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/parse5": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/parse5/-/parse5-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "entities": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/inikulin/parse5?sponsor=1" +- } +- }, + "node_modules/path-exists": { + "version": "__VERSION__", + "dev": true, +@@ -6764,33 +3293,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/path-scurry": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BlueOak-__VERSION__", +- "dependencies": { +- "lru-cache": "__VERSION__", +- "minipass": "__VERSION__" +- }, +- "engines": { +- "node": "18 || 20 || >=22" +- }, +- "funding": { +- "url": "https://github.com/sponsors/isaacs" +- } +- }, +- "node_modules/path-scurry/node_modules/lru-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BlueOak-__VERSION__", +- "engines": { +- "node": "20 || >=22" +- } +- }, + "node_modules/path-type": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-__VERSION__.tgz", +@@ -6806,42 +3308,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/picomatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/jonschlinkert" +- } +- }, +- "node_modules/pirates": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/pirates/-/pirates-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 6" +- } +- }, +- "node_modules/pkg-dir": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "find-up": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/possible-typed-array-names": { + "version": "__VERSION__", + "dev": true, +@@ -6975,35 +3441,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/pretty-format": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@jest/schemas": "__VERSION__", +- "ansi-styles": "__VERSION__", +- "react-is-18": "npm:react-is@__VERSION__", +- "react-is-19": "npm:react-is@__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/pretty-format/node_modules/ansi-styles": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/ansi-styles?sponsor=1" +- } +- }, + "node_modules/punycode": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-__VERSION__.tgz", +@@ -7014,23 +3451,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/pure-rand": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "individual", +- "url": "https://github.com/sponsors/dubzzz" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/fast-check" +- } +- ], +- "license": "MIT" +- }, + "node_modules/qified": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/qified/-/qified-__VERSION__.tgz", +@@ -7081,22 +3501,6 @@ + "url": "https://opencollective.com/ramda" + } + }, +- "node_modules/react-is-18": { +- "name": "react-is", +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/react-is/-/react-is-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/react-is-19": { +- "name": "react-is", +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/react-is/-/react-is-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/reflect.getprototypeof": { + "version": "__VERSION__", + "dev": true, +@@ -7137,16 +3541,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/require-directory": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/require-from-string": { + "version": "__VERSION__", + "dev": true, +@@ -7185,19 +3579,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/resolve-cwd": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "resolve-from": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/resolve-from": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-__VERSION__.tgz", +@@ -7292,19 +3673,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/saxes": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/saxes/-/saxes-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "xmlchars": "__VERSION__" +- }, +- "engines": { +- "node": ">=__VERSION__" +- } +- }, + "node_modules/semver": { + "version": "__VERSION__", + "dev": true, +@@ -7482,16 +3850,6 @@ + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, +- "node_modules/source-map": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/source-map/-/source-map-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/source-map-js": { + "version": "__VERSION__", + "dev": true, +@@ -7500,17 +3858,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/source-map-support": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "buffer-from": "__VERSION__", +- "source-map": "__VERSION__" +- } +- }, + "node_modules/spdx-exceptions": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-__VERSION__.tgz", +@@ -7536,36 +3883,6 @@ + "dev": true, + "license": "CC0-1.0" + }, +- "node_modules/sprintf-js": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause" +- }, +- "node_modules/stack-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "escape-string-regexp": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/stack-utils/node_modules/escape-string-regexp": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/stop-iteration-iterator": { + "version": "__VERSION__", + "dev": true, +@@ -7578,20 +3895,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/string-length": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/string-length/-/string-length-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "char-regex": "__VERSION__", +- "strip-ansi": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/string-width": { + "version": "__VERSION__", + "dev": true, +@@ -7677,16 +3980,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/strip-final-newline": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/strip-json-comments": { + "version": "__VERSION__", + "dev": true, +@@ -7908,13 +4201,6 @@ + "version": "__VERSION__", + "dev": true + }, +- "node_modules/symbol-tree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/synckit": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-__VERSION__.tgz", +@@ -7966,87 +4252,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/test-exclude": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "@istanbuljs/schema": "__VERSION__", +- "glob": "__VERSION__", +- "minimatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/test-exclude/node_modules/balanced-match": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "18 || 20 || >=22" +- } +- }, +- "node_modules/test-exclude/node_modules/brace-expansion": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "balanced-match": "__VERSION__" +- }, +- "engines": { +- "node": "20 || >=22" +- } +- }, +- "node_modules/test-exclude/node_modules/minimatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BlueOak-__VERSION__", +- "dependencies": { +- "brace-expansion": "__VERSION__" +- }, +- "engines": { +- "node": "18 || 20 || >=22" +- }, +- "funding": { +- "url": "https://github.com/sponsors/isaacs" +- } +- }, +- "node_modules/tldts": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/tldts/-/tldts-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "tldts-core": "__VERSION__" +- }, +- "bin": { +- "tldts": "bin/cli.js" +- } +- }, +- "node_modules/tldts-core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/tmpl": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause" +- }, + "node_modules/to-regex-range": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-__VERSION__.tgz", +@@ -8075,32 +4280,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/tough-cookie": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "tldts": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/tr46": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/tr46/-/tr46-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "punycode": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/tsconfig-paths": { + "version": "__VERSION__", + "dev": true, +@@ -8112,14 +4291,6 @@ + "strip-bom": "__VERSION__" + } + }, +- "node_modules/tslib": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/tslib/-/tslib-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "0BSD", +- "optional": true +- }, + "node_modules/type-check": { + "version": "__VERSION__", + "dev": true, +@@ -8131,29 +4302,6 @@ + "node": ">= __VERSION__" + } + }, +- "node_modules/type-detect": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/type-fest": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "(MIT OR CC0-1.0)", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/typed-array-buffer": { + "version": "__VERSION__", + "dev": true, +@@ -8241,92 +4389,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/undici": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/undici/-/undici-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/undici-types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/unrs-resolver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "hasInstallScript": true, +- "license": "MIT", +- "dependencies": { +- "napi-postinstall": "__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/unrs-resolver" +- }, +- "optionalDependencies": { +- "@unrs/resolver-binding-android-arm-eabi": "__VERSION__", +- "@unrs/resolver-binding-android-arm64": "__VERSION__", +- "@unrs/resolver-binding-darwin-arm64": "__VERSION__", +- "@unrs/resolver-binding-darwin-x64": "__VERSION__", +- "@unrs/resolver-binding-freebsd-x64": "__VERSION__", +- "@unrs/resolver-binding-linux-arm-gnueabihf": "__VERSION__", +- "@unrs/resolver-binding-linux-arm-musleabihf": "__VERSION__", +- "@unrs/resolver-binding-linux-arm64-gnu": "__VERSION__", +- "@unrs/resolver-binding-linux-arm64-musl": "__VERSION__", +- "@unrs/resolver-binding-linux-loong64-gnu": "__VERSION__", +- "@unrs/resolver-binding-linux-loong64-musl": "__VERSION__", +- "@unrs/resolver-binding-linux-ppc64-gnu": "__VERSION__", +- "@unrs/resolver-binding-linux-riscv64-gnu": "__VERSION__", +- "@unrs/resolver-binding-linux-riscv64-musl": "__VERSION__", +- "@unrs/resolver-binding-linux-s390x-gnu": "__VERSION__", +- "@unrs/resolver-binding-linux-x64-gnu": "__VERSION__", +- "@unrs/resolver-binding-linux-x64-musl": "__VERSION__", +- "@unrs/resolver-binding-openharmony-arm64": "__VERSION__", +- "@unrs/resolver-binding-wasm32-wasi": "__VERSION__", +- "@unrs/resolver-binding-win32-arm64-msvc": "__VERSION__", +- "@unrs/resolver-binding-win32-ia32-msvc": "__VERSION__", +- "@unrs/resolver-binding-win32-x64-msvc": "__VERSION__" +- } +- }, +- "node_modules/update-browserslist-db": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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": "__VERSION__", +- "picocolors": "__VERSION__" +- }, +- "bin": { +- "update-browserslist-db": "cli.js" +- }, +- "peerDependencies": { +- "browserslist": ">= __VERSION__" +- } +- }, + "node_modules/uri-js": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-__VERSION__.tgz", +@@ -8344,79 +4406,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/v8-to-istanbul": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "@jridgewell/trace-mapping": "__VERSION__", +- "@types/istanbul-lib-coverage": "__VERSION__", +- "convert-source-map": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/w3c-xmlserializer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "xml-name-validator": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/walker": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/walker/-/walker-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "makeerror": "__VERSION__" +- } +- }, +- "node_modules/webidl-conversions": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/whatwg-mimetype": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/whatwg-url": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@exodus/bytes": "__VERSION__", +- "tr46": "__VERSION__", +- "webidl-conversions": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/which": { + "version": "__VERSION__", + "dev": true, +@@ -8534,40 +4523,6 @@ + "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/xml-name-validator": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/xmlchars": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/y18n": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/y18n/-/y18n-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/yallist": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/yallist/-/yallist-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC" +- }, + "node_modules/yaml": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-__VERSION__.tgz", +@@ -8599,35 +4554,6 @@ + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" +- } +- }, +- "node_modules/yargs": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/yargs/-/yargs-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cliui": "__VERSION__", +- "escalade": "__VERSION__", +- "get-caller-file": "__VERSION__", +- "require-directory": "__VERSION__", +- "string-width": "__VERSION__", +- "y18n": "__VERSION__", +- "yargs-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/yargs-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "engines": { +- "node": "__VERSION__" + } + }, + "node_modules/yocto-queue": { diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest_circleci/package.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest_circleci/package.json index c765b3d1aa..9fdbc4c89a 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest_circleci/package.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_jest_circleci/package.json @@ -1,15 +1,17 @@ -@@ -13,13 +13,10 @@ - "lint": "yarn run lint-js && yarn run lint-css", - "lint-fix-js": "eslint web/modules/custom --ext .js --no-error-on-unmatched-pattern --fix", +@@ -13,15 +13,12 @@ + "lint": "npm run lint-js && npm run lint-css", + "lint-fix-js": "eslint web/modules/custom --no-error-on-unmatched-pattern --fix", "lint-fix-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\" --fix", -- "lint-fix": "yarn run lint-fix-js && yarn run lint-fix-css", +- "lint-fix": "npm run lint-fix-js && npm run lint-fix-css", - "test": "jest --coverage --passWithNoTests" -+ "lint-fix": "yarn run lint-fix-js && yarn run lint-fix-css" ++ "lint-fix": "npm run lint-fix-js && npm run lint-fix-css" }, "devDependencies": { + "@eslint/compat": "__VERSION__", + "@eslint/js": "__VERSION__", "@homer0/prettier-plugin-jsdoc": "__VERSION__", - "jest": "__VERSION__", - "jest-environment-jsdom": "__VERSION__", "eslint": "__VERSION__", - "eslint-config-airbnb-base": "__VERSION__", "eslint-config-prettier": "__VERSION__", + "eslint-plugin-import": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpcs/composer.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpcs/composer.json index a3a9c2da65..a4a41875da 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpcs/composer.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpcs/composer.json @@ -19,7 +19,7 @@ "phpspec/prophecy-phpunit": "__VERSION__", "phpstan/extension-installer": "__VERSION__", "phpstan/phpstan": "__VERSION__", -@@ -82,7 +78,6 @@ +@@ -83,7 +79,6 @@ "allow-plugins": { "composer/installers": true, "cweagans/composer-patches": true, diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpcs/web/sites/default/settings.php b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpcs/web/sites/default/settings.php index 74bc259741..55559c353d 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpcs/web/sites/default/settings.php +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpcs/web/sites/default/settings.php @@ -1,6 +1,6 @@ @@ -14,10 +14,6 @@ * environments. - * @see https://www.vortextemplate.com/docs/drupal/settings + * @see https://www.vortextemplate.com/docs/development/settings * - * phpcs:disable Drupal.Commenting.InlineComment.NoSpaceBefore - * phpcs:disable Drupal.Commenting.InlineComment.SpacingAfter diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpcs_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpcs_circleci/.circleci/config.yml index dfce6278d9..8c66b4dec0 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpcs_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpcs_circleci/.circleci/config.yml @@ -139,7 +139,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -163,13 +163,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -180,14 +180,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -202,6 +203,28 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -254,10 +277,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -299,7 +322,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -308,7 +331,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -316,27 +339,29 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -345,14 +370,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -361,7 +386,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -373,10 +398,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -385,9 +411,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpcs_circleci/composer.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpcs_circleci/composer.json index a3a9c2da65..a4a41875da 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpcs_circleci/composer.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpcs_circleci/composer.json @@ -19,7 +19,7 @@ "phpspec/prophecy-phpunit": "__VERSION__", "phpstan/extension-installer": "__VERSION__", "phpstan/phpstan": "__VERSION__", -@@ -82,7 +78,6 @@ +@@ -83,7 +79,6 @@ "allow-plugins": { "composer/installers": true, "cweagans/composer-patches": true, diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpcs_circleci/web/sites/default/settings.php b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpcs_circleci/web/sites/default/settings.php index 74bc259741..55559c353d 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpcs_circleci/web/sites/default/settings.php +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpcs_circleci/web/sites/default/settings.php @@ -1,6 +1,6 @@ @@ -14,10 +14,6 @@ * environments. - * @see https://www.vortextemplate.com/docs/drupal/settings + * @see https://www.vortextemplate.com/docs/development/settings * - * phpcs:disable Drupal.Commenting.InlineComment.NoSpaceBefore - * phpcs:disable Drupal.Commenting.InlineComment.SpacingAfter diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpstan/composer.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpstan/composer.json index 880c1e3033..b0295c969a 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpstan/composer.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpstan/composer.json @@ -12,7 +12,7 @@ "phpunit/phpunit": "__VERSION__", "pyrech/composer-changelogs": "__VERSION__", "rector/rector": "__VERSION__", -@@ -86,7 +83,6 @@ +@@ -87,7 +84,6 @@ "drupal/core-composer-scaffold": true, "ergebnis/composer-normalize": true, "php-http/discovery": true, diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpstan_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpstan_circleci/.circleci/config.yml index a7f2442c04..bd2832283b 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpstan_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpstan_circleci/.circleci/config.yml @@ -139,7 +139,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -163,13 +163,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -180,14 +180,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -202,6 +203,28 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -254,10 +277,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -299,7 +322,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -308,7 +331,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -316,27 +339,29 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -345,14 +370,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -361,7 +386,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -373,10 +398,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -385,9 +411,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpstan_circleci/composer.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpstan_circleci/composer.json index 880c1e3033..b0295c969a 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpstan_circleci/composer.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpstan_circleci/composer.json @@ -12,7 +12,7 @@ "phpunit/phpunit": "__VERSION__", "pyrech/composer-changelogs": "__VERSION__", "rector/rector": "__VERSION__", -@@ -86,7 +83,6 @@ +@@ -87,7 +84,6 @@ "drupal/core-composer-scaffold": true, "ergebnis/composer-normalize": true, "php-http/discovery": true, diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit/.ahoy.yml index 891fa4efb5..f24ddc3f16 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit/.ahoy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit/.ahoy.yml @@ -1,6 +1,6 @@ @@ -242,27 +242,6 @@ - ahoy cli "yarn run lint-fix" - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" + ahoy cli "npm run lint-fix" + ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" - test: - usage: Run all PHPUnit tests. @@ -25,4 +25,4 @@ - test-js: usage: Run Jest JavaScript unit tests. - cmd: ahoy cli "yarn test" + cmd: ahoy cli "npm test" diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit/.github/workflows/build-test-deploy.yml index b13f1f82c2..8ada07b194 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit/.github/workflows/build-test-deploy.yml @@ -1,22 +1,30 @@ -@@ -309,66 +309,6 @@ - run: docker compose exec -T cli bash -c "yarn test" +@@ -200,7 +200,6 @@ + VORTEX_CI_RUNNER_INDEX: ${{ strategy.job-index }} + VORTEX_CI_RUNNER_TOTAL: ${{ strategy.job-total }} + VORTEX_CI_IS_JEST_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- VORTEX_CI_IS_PHPUNIT_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + VORTEX_CI_IS_SDC_DEVEL_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + # Runs on every instance, using the `p` profile. + VORTEX_CI_IS_BEHAT_RUNNER: true +@@ -335,66 +334,6 @@ + run: docker compose exec -T cli bash -c "npm test" continue-on-error: ${{ vars.VORTEX_CI_JEST_IGNORE_FAILURE == '1' }} - - name: Test with PHPUnit -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} - run: docker compose exec -T cli vendor/bin/phpunit - continue-on-error: ${{ vars.VORTEX_CI_PHPUNIT_IGNORE_FAILURE == '1' }} - - - name: Process PHPUnit logs and coverage -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} - run: | - mkdir -p ".logs" - if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then -- docker compose cp cli:/app/.logs/. ".logs/" +- docker compose --progress quiet cp cli:/app/.logs/. ".logs/" - fi - - - name: Extract code coverage -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} - run: | - RATE=$(grep -om1 'line-rate="[0-9.]*"' .logs/coverage/phpunit/cobertura.xml | tr -cd '0-9.') - PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") @@ -34,7 +42,7 @@ - VORTEX_CI_CODE_COVERAGE_THRESHOLD: ${{ vars.VORTEX_CI_CODE_COVERAGE_THRESHOLD || '90' }} - - - name: Post coverage summary as PR comment -- if: ${{ github.event_name == 'pull_request' && (matrix.instance == 0 || strategy.job-total == 1) && vars.VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP != '1' }} +- if: ${{ github.event_name == 'pull_request' && env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' && vars.VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP != '1' }} - uses: marocchino/sticky-pull-request-comment@__HASH__ # __VERSION__ - with: - header: coverage-gha @@ -53,7 +61,7 @@ - hide_and_recreate: true - - - name: Check code coverage threshold -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} - run: | - if [ "${COVERAGE_PERCENT//.}" -lt "$((VORTEX_CI_CODE_COVERAGE_THRESHOLD*100))" ]; then - echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD}%" @@ -63,9 +71,9 @@ - VORTEX_CI_CODE_COVERAGE_THRESHOLD: ${{ vars.VORTEX_CI_CODE_COVERAGE_THRESHOLD || '90' }} - - name: Validate Single Directory Components - if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + if: ${{ env.VORTEX_CI_IS_SDC_DEVEL_RUNNER == 'true' }} run: | -@@ -411,16 +351,6 @@ +@@ -436,16 +375,6 @@ path: .logs include-hidden-files: true if-no-files-found: error diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit/.gitignore b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit/.gitignore index 2dd6018681..a04ee779b3 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit/.gitignore +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit/.gitignore @@ -1,4 +1,4 @@ -@@ -50,7 +50,6 @@ +@@ -52,7 +52,6 @@ .artifacts .data .logs diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit/composer.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit/composer.json index fcb8573355..6d922172e8 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit/composer.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit/composer.json @@ -8,8 +8,8 @@ - "phpunit/phpunit": "__VERSION__", "pyrech/composer-changelogs": "__VERSION__", "rector/rector": "__VERSION__", - "vincentlanglet/twig-cs-fixer": "__VERSION__" -@@ -73,11 +71,6 @@ + "softcreatr/jsonpath": "^0.10 || ^1.0", +@@ -74,11 +72,6 @@ ], "minimum-stability": "stable", "prefer-stable": true, diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit/docs/testing.md b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit/docs/testing.md index 470daca117..8630a60b2e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit/docs/testing.md +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit/docs/testing.md @@ -6,7 +6,7 @@ - -Unit, Kernel, Functional tests. - --See [documentation](https://www.vortextemplate.com/docs/development/phpunit) +-See [documentation](https://www.vortextemplate.com/docs/development/testing/phpunit) -on how to run tests, configure environment variables and code coverage, and use -test reports in continuous integration pipeline. - diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit_circleci/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit_circleci/.ahoy.yml index 891fa4efb5..f24ddc3f16 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit_circleci/.ahoy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit_circleci/.ahoy.yml @@ -1,6 +1,6 @@ @@ -242,27 +242,6 @@ - ahoy cli "yarn run lint-fix" - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" + ahoy cli "npm run lint-fix" + ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" - test: - usage: Run all PHPUnit tests. @@ -25,4 +25,4 @@ - test-js: usage: Run Jest JavaScript unit tests. - cmd: ahoy cli "yarn test" + cmd: ahoy cli "npm test" diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit_circleci/.circleci/config.yml index 0c6b02acbe..b4a49a9399 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit_circleci/.circleci/config.yml @@ -139,7 +139,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -167,13 +167,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -184,14 +184,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -206,6 +207,27 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -258,10 +280,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -303,7 +325,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -312,7 +334,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -320,12 +342,14 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -337,10 +361,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -349,9 +374,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit_circleci/.gitignore b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit_circleci/.gitignore index 2dd6018681..a04ee779b3 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit_circleci/.gitignore +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit_circleci/.gitignore @@ -1,4 +1,4 @@ -@@ -50,7 +50,6 @@ +@@ -52,7 +52,6 @@ .artifacts .data .logs diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit_circleci/composer.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit_circleci/composer.json index fcb8573355..6d922172e8 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit_circleci/composer.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit_circleci/composer.json @@ -8,8 +8,8 @@ - "phpunit/phpunit": "__VERSION__", "pyrech/composer-changelogs": "__VERSION__", "rector/rector": "__VERSION__", - "vincentlanglet/twig-cs-fixer": "__VERSION__" -@@ -73,11 +71,6 @@ + "softcreatr/jsonpath": "^0.10 || ^1.0", +@@ -74,11 +72,6 @@ ], "minimum-stability": "stable", "prefer-stable": true, diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit_circleci/docs/testing.md b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit_circleci/docs/testing.md index 470daca117..8630a60b2e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit_circleci/docs/testing.md +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit_circleci/docs/testing.md @@ -6,7 +6,7 @@ - -Unit, Kernel, Functional tests. - --See [documentation](https://www.vortextemplate.com/docs/development/phpunit) +-See [documentation](https://www.vortextemplate.com/docs/development/testing/phpunit) -on how to run tests, configure environment variables and code coverage, and use -test reports in continuous integration pipeline. - diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_rector/composer.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_rector/composer.json index f992d6fb20..dc290842a1 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_rector/composer.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_rector/composer.json @@ -11,6 +11,6 @@ "phpunit/phpunit": "__VERSION__", "pyrech/composer-changelogs": "__VERSION__", - "rector/rector": "__VERSION__", + "softcreatr/jsonpath": "^0.10 || ^1.0", "vincentlanglet/twig-cs-fixer": "__VERSION__" }, - "conflict": { diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_rector_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_rector_circleci/.circleci/config.yml index 40ebec3928..8780bddd36 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_rector_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_rector_circleci/.circleci/config.yml @@ -139,7 +139,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -163,13 +163,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -180,14 +180,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -202,6 +203,28 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -254,10 +277,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -299,7 +322,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -308,7 +331,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -316,27 +339,29 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -345,14 +370,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -361,7 +386,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -373,10 +398,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -385,9 +411,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_rector_circleci/composer.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_rector_circleci/composer.json index f992d6fb20..dc290842a1 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_rector_circleci/composer.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_rector_circleci/composer.json @@ -11,6 +11,6 @@ "phpunit/phpunit": "__VERSION__", "pyrech/composer-changelogs": "__VERSION__", - "rector/rector": "__VERSION__", + "softcreatr/jsonpath": "^0.10 || ^1.0", "vincentlanglet/twig-cs-fixer": "__VERSION__" }, - "conflict": { diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint/package-lock.json new file mode 100644 index 0000000000..1059f590d7 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint/package-lock.json @@ -0,0 +1,1392 @@ +@@ -10,6 +10,8 @@ + "@eslint/compat": "__VERSION__", + "@eslint/js": "__VERSION__", + "@homer0/prettier-plugin-jsdoc": "__VERSION__", ++ "jest": "__VERSION__", ++ "jest-environment-jsdom": "__VERSION__", + "eslint": "__VERSION__", + "eslint-config-prettier": "__VERSION__", + "eslint-plugin-import": "__VERSION__", +@@ -18,12 +20,7 @@ + "eslint-plugin-prettier": "__VERSION__", + "eslint-plugin-yml": "__VERSION__", + "globals": "__VERSION__", +- "jest": "__VERSION__", +- "jest-environment-jsdom": "__VERSION__", +- "prettier": "__VERSION__", +- "stylelint": "__VERSION__", +- "stylelint-config-standard": "__VERSION__", +- "stylelint-order": "__VERSION__" ++ "prettier": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__", +@@ -698,67 +695,6 @@ + "specificity": "bin/cli.js" + } + }, +- "node_modules/@cacheable/memory": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@cacheable/utils": "__VERSION__", +- "@keyv/bigmap": "__VERSION__", +- "hookified": "__VERSION__", +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hashery": "__VERSION__", +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": ">= 18" +- }, +- "peerDependencies": { +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hashery": "__VERSION__", +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/utils/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, + "node_modules/@csstools/color-helpers": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-__VERSION__.tgz", +@@ -779,29 +715,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/@csstools/css-parser-algorithms": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-__VERSION__.tgz", +@@ -827,84 +740,6 @@ + } + } + }, +- "node_modules/@csstools/css-tokenizer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@csstools/media-query-list-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@csstools/selector-specificity": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT-0", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss-selector-parser": "__VERSION__" +- } +- }, +- "node_modules/@dual-bundle/import-meta-resolve": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/JounQin" +- } +- }, + "node_modules/@emnapi/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-__VERSION__.tgz", +@@ -1717,13 +1552,6 @@ + "@jridgewell/sourcemap-codec": "__VERSION__" + } + }, +- "node_modules/@keyv/serialize": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-__VERSION__.tgz", +@@ -1746,44 +1574,6 @@ + "@emnapi/runtime": "__VERSION__ || __VERSION__" + } + }, +- "node_modules/@nodelib/fs.scandir": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.stat": "__VERSION__", +- "run-parallel": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/@nodelib/fs.stat": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/@nodelib/fs.walk": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.scandir": "__VERSION__", +- "fastq": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, + "node_modules/@pkgr/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-__VERSION__.tgz", +@@ -2515,16 +2305,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/array-union": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/array-union/-/array-union-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/array.prototype.findlastindex": { + "version": "__VERSION__", + "dev": true, +@@ -2599,14 +2379,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/astral-regex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/async-function": { + "version": "__VERSION__", + "dev": true, +@@ -2767,19 +2539,6 @@ + "concat-map": "__VERSION__" + } + }, +- "node_modules/braces": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/braces/-/braces-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fill-range": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/browserslist": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-__VERSION__.tgz", +@@ -2831,30 +2590,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/cacheable": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@cacheable/memory": "__VERSION__", +- "@cacheable/utils": "__VERSION__", +- "hookified": "__VERSION__", +- "keyv": "__VERSION__", +- "qified": "__VERSION__" +- } +- }, +- "node_modules/cacheable/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, + "node_modules/call-bind": { + "version": "__VERSION__", + "dev": true, +@@ -3053,11 +2788,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/colord": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/comment-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", +@@ -3080,33 +2810,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/cosmiconfig": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "env-paths": "__VERSION__", +- "import-fresh": "__VERSION__", +- "js-yaml": "__VERSION__", +- "parse-json": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/d-fischer" +- }, +- "peerDependencies": { +- "typescript": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "typescript": { +- "optional": true +- } +- } +- }, + "node_modules/cross-spawn": { + "version": "__VERSION__", + "dev": true, +@@ -3120,14 +2823,6 @@ + "node": ">= 8" + } + }, +- "node_modules/css-functions-list": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/css-tree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-__VERSION__.tgz", +@@ -3142,19 +2837,6 @@ + "node": "^10 || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/cssesc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "cssesc": "bin/cssesc" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/data-urls": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-__VERSION__.tgz", +@@ -3322,19 +3004,6 @@ + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/dir-glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "path-type": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/doctrine": { + "version": "__VERSION__", + "dev": true, +@@ -3397,16 +3066,6 @@ + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, +- "node_modules/env-paths": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/error-ex": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-__VERSION__.tgz", +@@ -4153,36 +3812,6 @@ + "dev": true, + "license": "Apache-2.0" + }, +- "node_modules/fast-glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.stat": "__VERSION__", +- "@nodelib/fs.walk": "__VERSION__", +- "glob-parent": "__VERSION__", +- "merge2": "__VERSION__", +- "micromatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/fast-glob/node_modules/glob-parent": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "is-glob": "__VERSION__" +- }, +- "engines": { +- "node": ">= 6" +- } +- }, + "node_modules/fast-json-stable-stringify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-__VERSION__.tgz", +@@ -4195,39 +3824,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/fast-uri": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/fastify" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/fastify" +- } +- ], +- "license": "BSD-3-Clause" +- }, +- "node_modules/fastest-levenshtein": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/fastq": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fastq/-/fastq-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "reusify": "__VERSION__" +- } +- }, + "node_modules/fb-watchman": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-__VERSION__.tgz", +@@ -4251,19 +3847,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/fill-range": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "to-regex-range": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/find-up": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-__VERSION__.tgz", +@@ -4533,41 +4116,6 @@ + "url": "https://github.com/sponsors/isaacs" + } + }, +- "node_modules/global-modules": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "global-prefix": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/global-prefix": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ini": "__VERSION__", +- "kind-of": "__VERSION__", +- "which": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/global-prefix/node_modules/which": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "isexe": "__VERSION__" +- }, +- "bin": { +- "which": "bin/which" +- } +- }, + "node_modules/globals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +@@ -4596,32 +4144,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/globby": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globby/-/globby-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-union": "__VERSION__", +- "dir-glob": "__VERSION__", +- "fast-glob": "__VERSION__", +- "ignore": "__VERSION__", +- "merge2": "__VERSION__", +- "slash": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/globjoin": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/gopd": { + "version": "__VERSION__", + "dev": true, +@@ -4709,19 +4231,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/hashery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hashery/-/hashery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/hasown": { + "version": "__VERSION__", + "dev": true, +@@ -4733,13 +4242,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/hookified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/html-encoding-sniffer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-__VERSION__.tgz", +@@ -4775,19 +4277,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/html-tags": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/human-signals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-__VERSION__.tgz", +@@ -4857,11 +4346,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/ini": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC" +- }, + "node_modules/internal-slot": { + "version": "__VERSION__", + "dev": true, +@@ -5092,16 +4576,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/is-number": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/is-number/-/is-number-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/is-number-object": { + "version": "__VERSION__", + "dev": true, +@@ -5117,16 +4591,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/is-plain-object": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/is-potential-custom-element-name": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-__VERSION__.tgz", +@@ -6171,21 +5635,6 @@ + "json-buffer": "__VERSION__" + } + }, +- "node_modules/kind-of": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/known-css-properties": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/leven": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/leven/-/leven-__VERSION__.tgz", +@@ -6233,11 +5682,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/lodash.truncate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/lru-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-__VERSION__.tgz", +@@ -6295,17 +5739,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/mathml-tag-names": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/wooorm" +- } +- }, + "node_modules/mdn-data": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-__VERSION__.tgz", +@@ -6313,19 +5746,6 @@ + "dev": true, + "license": "CC0-1.0" + }, +- "node_modules/meow": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/meow/-/meow-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/merge-stream": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-__VERSION__.tgz", +@@ -6333,43 +5753,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/merge2": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/merge2/-/merge2-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/micromatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "braces": "__VERSION__", +- "picomatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/micromatch/node_modules/picomatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/jonschlinkert" +- } +- }, + "node_modules/mimic-fn": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-__VERSION__.tgz", +@@ -6416,25 +5799,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/nanoid": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "license": "MIT", +- "bin": { +- "nanoid": "bin/nanoid.cjs" +- }, +- "engines": { +- "node": "^10 || ^12 || ^13.7 || ^14 || >=__VERSION__" +- } +- }, + "node_modules/napi-postinstall": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-__VERSION__.tgz", +@@ -6791,16 +6155,6 @@ + "node": "20 || >=22" + } + }, +- "node_modules/path-type": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/path-type/-/path-type-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/picocolors": { + "version": "__VERSION__", + "dev": true, +@@ -6850,96 +6204,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/postcss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss/-/postcss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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": "__VERSION__", +- "picocolors": "__VERSION__", +- "source-map-js": "__VERSION__" +- }, +- "engines": { +- "node": "^10 || ^12 || >=14" +- } +- }, +- "node_modules/postcss-resolve-nested-selector": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/postcss-safe-parser": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/postcss/" +- }, +- { +- "type": "tidelift", +- "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, +- "node_modules/postcss-selector-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cssesc": "__VERSION__", +- "util-deprecate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/postcss-sorting": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, +- "node_modules/postcss-value-parser": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/prelude-ls": { + "version": "__VERSION__", + "dev": true, +@@ -7031,47 +6295,6 @@ + ], + "license": "MIT" + }, +- "node_modules/qified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/qified/-/qified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/qified/node_modules/hookified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/queue-microtask": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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/ramda": { + "version": "__VERSION__", + "dev": true, +@@ -7208,41 +6431,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/reusify": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/reusify/-/reusify-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "iojs": "__VERSION__", +- "node": "__VERSION__" +- } +- }, +- "node_modules/run-parallel": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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": "__VERSION__" +- } +- }, + "node_modules/safe-array-concat": { + "version": "__VERSION__", + "dev": true, +@@ -7466,22 +6654,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/slice-ansi": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ansi-styles": "__VERSION__", +- "astral-regex": "__VERSION__", +- "is-fullwidth-code-point": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/slice-ansi?sponsor=1" +- } +- }, + "node_modules/source-map": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-__VERSION__.tgz", +@@ -7698,173 +6870,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/stylelint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-syntax-patches-for-csstree": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__", +- "@csstools/media-query-list-parser": "__VERSION__", +- "@csstools/selector-specificity": "__VERSION__", +- "@dual-bundle/import-meta-resolve": "__VERSION__", +- "balanced-match": "__VERSION__", +- "colord": "__VERSION__", +- "cosmiconfig": "__VERSION__", +- "css-functions-list": "__VERSION__", +- "css-tree": "__VERSION__", +- "debug": "__VERSION__", +- "fast-glob": "__VERSION__", +- "fastest-levenshtein": "__VERSION__", +- "file-entry-cache": "__VERSION__", +- "global-modules": "__VERSION__", +- "globby": "__VERSION__", +- "globjoin": "__VERSION__", +- "html-tags": "__VERSION__", +- "ignore": "__VERSION__", +- "imurmurhash": "__VERSION__", +- "is-plain-object": "__VERSION__", +- "known-css-properties": "__VERSION__", +- "mathml-tag-names": "__VERSION__", +- "meow": "__VERSION__", +- "micromatch": "__VERSION__", +- "normalize-path": "__VERSION__", +- "picocolors": "__VERSION__", +- "postcss": "__VERSION__", +- "postcss-resolve-nested-selector": "__VERSION__", +- "postcss-safe-parser": "__VERSION__", +- "postcss-selector-parser": "__VERSION__", +- "postcss-value-parser": "__VERSION__", +- "resolve-from": "__VERSION__", +- "string-width": "__VERSION__", +- "supports-hyperlinks": "__VERSION__", +- "svg-tags": "__VERSION__", +- "table": "__VERSION__", +- "write-file-atomic": "__VERSION__" +- }, +- "bin": { +- "stylelint": "bin/stylelint.mjs" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-recommended": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-standard": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "stylelint-config-recommended": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint-order": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "postcss": "__VERSION__", +- "postcss-sorting": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__ || __VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/balanced-match": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/stylelint/node_modules/file-entry-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flat-cache": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/flat-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cacheable": "__VERSION__", +- "flatted": "__VERSION__", +- "hookified": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/ignore": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 4" +- } +- }, + "node_modules/supports-color": { + "version": "__VERSION__", + "dev": true, +@@ -7876,23 +6881,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/supports-hyperlinks": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-flag": "__VERSION__", +- "supports-color": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" +- } +- }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "__VERSION__", + "dev": true, +@@ -7904,10 +6892,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/svg-tags": { +- "version": "__VERSION__", +- "dev": true +- }, + "node_modules/symbol-tree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-__VERSION__.tgz", +@@ -7931,41 +6915,6 @@ + "url": "https://opencollective.com/synckit" + } + }, +- "node_modules/table": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "ajv": "__VERSION__", +- "lodash.truncate": "__VERSION__", +- "slice-ansi": "__VERSION__", +- "string-width": "__VERSION__", +- "strip-ansi": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/table/node_modules/ajv": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-deep-equal": "__VERSION__", +- "fast-uri": "__VERSION__", +- "json-schema-traverse": "__VERSION__", +- "require-from-string": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/epoberezkin" +- } +- }, +- "node_modules/table/node_modules/json-schema-traverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/test-exclude": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-__VERSION__.tgz", +@@ -8047,19 +6996,6 @@ + "dev": true, + "license": "BSD-3-Clause" + }, +- "node_modules/to-regex-range": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-number": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/to-valid-identifier": { + "version": "__VERSION__", + "dev": true, +@@ -8336,13 +7272,6 @@ + "dependencies": { + "punycode": "__VERSION__" + } +- }, +- "node_modules/util-deprecate": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" + }, + "node_modules/v8-to-istanbul": { + "version": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint/package.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint/package.json index fe37c7513a..c46a5b6eac 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint/package.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint/package.json @@ -1,25 +1,26 @@ @@ -9,11 +9,9 @@ }, "scripts": { - "lint-js": "eslint web/modules/custom --ext .js --max-warnings=0 --no-error-on-unmatched-pattern", + "lint-js": "eslint web/modules/custom --max-warnings=0 --no-error-on-unmatched-pattern", - "lint-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\"", -- "lint": "yarn run lint-js && yarn run lint-css", -+ "lint": "yarn run lint-js", - "lint-fix-js": "eslint web/modules/custom --ext .js --no-error-on-unmatched-pattern --fix", +- "lint": "npm run lint-js && npm run lint-css", ++ "lint": "npm run lint-js", + "lint-fix-js": "eslint web/modules/custom --no-error-on-unmatched-pattern --fix", - "lint-fix-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\" --fix", -- "lint-fix": "yarn run lint-fix-js && yarn run lint-fix-css", -+ "lint-fix": "yarn run lint-fix-js", +- "lint-fix": "npm run lint-fix-js && npm run lint-fix-css", ++ "lint-fix": "npm run lint-fix-js", "test": "jest --coverage --passWithNoTests" }, "devDependencies": { -@@ -28,9 +26,6 @@ - "eslint-plugin-no-jquery": "__VERSION__", +@@ -30,10 +28,7 @@ "eslint-plugin-prettier": "__VERSION__", "eslint-plugin-yml": "__VERSION__", + "globals": "__VERSION__", - "prettier": "__VERSION__", - "stylelint": "__VERSION__", - "stylelint-config-standard": "__VERSION__", - "stylelint-order": "__VERSION__" + "prettier": "__VERSION__" - } - } + }, + "overrides": { + "test-exclude": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint/web/themes/custom/star_wars/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint/web/themes/custom/star_wars/package-lock.json new file mode 100644 index 0000000000..511112a27c --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint/web/themes/custom/star_wars/package-lock.json @@ -0,0 +1,1493 @@ +@@ -27,222 +27,9 @@ + "postcss-cli": "__VERSION__", + "prettier": "__VERSION__", + "sass": "__VERSION__", +- "stylelint": "__VERSION__", +- "stylelint-config-standard": "__VERSION__", +- "stylelint-config-standard-scss": "__VERSION__", +- "stylelint-order": "__VERSION__", +- "stylelint-scss": "__VERSION__", + "terser": "__VERSION__" + } + }, +- "node_modules/@babel/code-frame": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-validator-identifier": "__VERSION__", +- "js-tokens": "__VERSION__", +- "picocolors": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/helper-validator-identifier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@cacheable/utils": "__VERSION__", +- "@keyv/bigmap": "__VERSION__", +- "hookified": "__VERSION__", +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hashery": "__VERSION__", +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": ">= 18" +- }, +- "peerDependencies": { +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hashery": "__VERSION__", +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/utils/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, +- "node_modules/@csstools/css-parser-algorithms": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@csstools/css-syntax-patches-for-csstree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT-0", +- "peerDependencies": { +- "css-tree": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "css-tree": { +- "optional": true +- } +- } +- }, +- "node_modules/@csstools/css-tokenizer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@csstools/media-query-list-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@csstools/selector-specificity": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT-0", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss-selector-parser": "__VERSION__" +- } +- }, +- "node_modules/@dual-bundle/import-meta-resolve": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/JounQin" +- } +- }, + "node_modules/@es-joy/jsdoccomment": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-__VERSION__.tgz", +@@ -563,51 +350,6 @@ + "@jridgewell/sourcemap-codec": "__VERSION__" + } + }, +- "node_modules/@keyv/serialize": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@nodelib/fs.scandir": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.stat": "__VERSION__", +- "run-parallel": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/@nodelib/fs.stat": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/@nodelib/fs.walk": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.scandir": "__VERSION__", +- "fastq": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, + "node_modules/@parcel/watcher": { + "version": "__VERSION__", + "dev": true, +@@ -1124,16 +866,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/array-union": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/array-union/-/array-union-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/array.prototype.findlastindex": { + "version": "__VERSION__", + "dev": true, +@@ -1208,14 +940,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/astral-regex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/async-function": { + "version": "__VERSION__", + "dev": true, +@@ -1275,13 +999,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/balanced-match": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/baseline-browser-mapping": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-__VERSION__.tgz", +@@ -1370,30 +1087,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/cacheable": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@cacheable/memory": "__VERSION__", +- "@cacheable/utils": "__VERSION__", +- "hookified": "__VERSION__", +- "keyv": "__VERSION__", +- "qified": "__VERSION__" +- } +- }, +- "node_modules/cacheable/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, + "node_modules/call-bind": { + "version": "__VERSION__", + "dev": true, +@@ -1617,11 +1310,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/colord": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/commander": { + "version": "__VERSION__", + "dev": true, +@@ -1642,31 +1330,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/cosmiconfig": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "env-paths": "__VERSION__", +- "import-fresh": "__VERSION__", +- "js-yaml": "__VERSION__", +- "parse-json": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/d-fischer" +- }, +- "peerDependencies": { +- "typescript": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "typescript": { +- "optional": true +- } +- } +- }, + "node_modules/cross-spawn": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-__VERSION__.tgz", +@@ -1698,42 +1361,6 @@ + "node": ">= 8" + } + }, +- "node_modules/css-functions-list": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/css-tree": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "mdn-data": "__VERSION__", +- "source-map-js": "__VERSION__" +- }, +- "engines": { +- "node": "^10 || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/css-tree/node_modules/mdn-data": { +- "version": "__VERSION__", +- "dev": true, +- "license": "CC0-1.0" +- }, +- "node_modules/cssesc": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "cssesc": "bin/cssesc" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/data-view-buffer": { + "version": "__VERSION__", + "dev": true, +@@ -1870,19 +1497,6 @@ + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/dir-glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "path-type": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/doctrine": { + "version": "__VERSION__", + "dev": true, +@@ -1919,22 +1533,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/env-paths": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/error-ex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-arrayish": "__VERSION__" +- } +- }, + "node_modules/es-abstract": { + "version": "__VERSION__", + "dev": true, +@@ -2565,23 +2163,6 @@ + "dev": true, + "license": "Apache-2.0" + }, +- "node_modules/fast-glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.stat": "__VERSION__", +- "@nodelib/fs.walk": "__VERSION__", +- "glob-parent": "__VERSION__", +- "merge2": "__VERSION__", +- "micromatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/fast-json-stable-stringify": { + "version": "__VERSION__", + "dev": true, +@@ -2592,39 +2173,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/fast-uri": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/fastify" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/fastify" +- } +- ], +- "license": "BSD-3-Clause" +- }, +- "node_modules/fastest-levenshtein": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/fastq": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fastq/-/fastq-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "reusify": "__VERSION__" +- } +- }, + "node_modules/file-entry-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +@@ -2863,30 +2411,6 @@ + "node": ">= 6" + } + }, +- "node_modules/global-modules": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "global-prefix": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/global-prefix": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ini": "__VERSION__", +- "kind-of": "__VERSION__", +- "which": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/globals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +@@ -2915,42 +2439,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/globby": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globby/-/globby-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-union": "__VERSION__", +- "dir-glob": "__VERSION__", +- "fast-glob": "__VERSION__", +- "ignore": "__VERSION__", +- "merge2": "__VERSION__", +- "slash": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/globby/node_modules/slash": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/slash/-/slash-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/globjoin": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/gopd": { + "version": "__VERSION__", + "dev": true, +@@ -3036,19 +2524,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/hashery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hashery/-/hashery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/hasown": { + "version": "__VERSION__", + "dev": true, +@@ -3060,13 +2535,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/hookified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/html-entities": { + "version": "__VERSION__", + "dev": true, +@@ -3082,19 +2550,6 @@ + ], + "license": "MIT" + }, +- "node_modules/html-tags": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/ignore": { + "version": "__VERSION__", + "dev": true, +@@ -3139,11 +2594,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/ini": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC" +- }, + "node_modules/internal-slot": { + "version": "__VERSION__", + "dev": true, +@@ -3173,11 +2623,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/is-arrayish": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/is-async-function": { + "version": "__VERSION__", + "dev": true, +@@ -3424,14 +2869,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/is-plain-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/is-regex": { + "version": "__VERSION__", + "dev": true, +@@ -3580,11 +3017,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/js-tokens": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/js-yaml": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-__VERSION__.tgz", +@@ -3625,11 +3057,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/json-parse-even-better-errors": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/json-schema-traverse": { + "version": "__VERSION__", + "dev": true, +@@ -3702,14 +3129,6 @@ + "json-buffer": "__VERSION__" + } + }, +- "node_modules/kind-of": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/klaw-sync": { + "version": "__VERSION__", + "dev": true, +@@ -3718,11 +3137,6 @@ + "graceful-fs": "__VERSION__" + } + }, +- "node_modules/known-css-properties": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/levn": { + "version": "__VERSION__", + "dev": true, +@@ -3746,11 +3160,6 @@ + "url": "https://github.com/sponsors/antonk52" + } + }, +- "node_modules/lines-and-columns": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/locate-path": { + "version": "__VERSION__", + "dev": true, +@@ -3780,11 +3189,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/lodash.truncate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/math-intrinsics": { + "version": "__VERSION__", + "dev": true, +@@ -3793,47 +3197,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/mathml-tag-names": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/wooorm" +- } +- }, +- "node_modules/mdn-data": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC0-1.0" +- }, +- "node_modules/meow": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/meow/-/meow-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/merge2": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/merge2/-/merge2-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 8" +- } +- }, + "node_modules/micromatch": { + "version": "__VERSION__", + "dev": true, +@@ -4141,23 +3504,6 @@ + "parse-statements": "__VERSION__" + } + }, +- "node_modules/parse-json": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/code-frame": "__VERSION__", +- "error-ex": "__VERSION__", +- "json-parse-even-better-errors": "__VERSION__", +- "lines-and-columns": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/parse-statements": { + "version": "__VERSION__", + "dev": true, +@@ -4244,16 +3590,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/path-type": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/path-type/-/path-type-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/picocolors": { + "version": "__VERSION__", + "dev": true, +@@ -4453,13 +3789,6 @@ + } + } + }, +- "node_modules/postcss-media-query-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/postcss-reporter": { + "version": "__VERSION__", + "dev": true, +@@ -4485,85 +3814,6 @@ + "postcss": "__VERSION__" + } + }, +- "node_modules/postcss-resolve-nested-selector": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/postcss-safe-parser": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/postcss/" +- }, +- { +- "type": "tidelift", +- "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, +- "node_modules/postcss-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/postcss/" +- }, +- { +- "type": "tidelift", +- "url": "https://tidelift.com/funding/github/npm/postcss-scss" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, +- "node_modules/postcss-selector-parser": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cssesc": "__VERSION__", +- "util-deprecate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/postcss-sorting": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, + "node_modules/postcss-value-parser": { + "version": "__VERSION__", + "dev": true, +@@ -4620,47 +3870,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/qified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/qified/-/qified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/qified/node_modules/hookified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/queue-microtask": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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/ramda": { + "version": "__VERSION__", + "dev": true, +@@ -4737,14 +3946,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/require-from-string": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/require-main-filename": { + "version": "__VERSION__", + "dev": true, +@@ -4783,51 +3984,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/resolve-from": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/reusify": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/reusify/-/reusify-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "iojs": "__VERSION__", +- "node": "__VERSION__" +- } +- }, +- "node_modules/run-parallel": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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": "__VERSION__" +- } +- }, + "node_modules/safe-array-concat": { + "version": "__VERSION__", + "dev": true, +@@ -5071,19 +4227,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/signal-exit": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/isaacs" +- } +- }, + "node_modules/slash": { + "version": "__VERSION__", + "dev": true, +@@ -5092,22 +4235,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/slice-ansi": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ansi-styles": "__VERSION__", +- "astral-regex": "__VERSION__", +- "is-fullwidth-code-point": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/slice-ansi?sponsor=1" +- } +- }, + "node_modules/source-map": { + "version": "__VERSION__", + "dev": true, +@@ -5267,236 +4394,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/stylelint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-syntax-patches-for-csstree": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__", +- "@csstools/media-query-list-parser": "__VERSION__", +- "@csstools/selector-specificity": "__VERSION__", +- "@dual-bundle/import-meta-resolve": "__VERSION__", +- "balanced-match": "__VERSION__", +- "colord": "__VERSION__", +- "cosmiconfig": "__VERSION__", +- "css-functions-list": "__VERSION__", +- "css-tree": "__VERSION__", +- "debug": "__VERSION__", +- "fast-glob": "__VERSION__", +- "fastest-levenshtein": "__VERSION__", +- "file-entry-cache": "__VERSION__", +- "global-modules": "__VERSION__", +- "globby": "__VERSION__", +- "globjoin": "__VERSION__", +- "html-tags": "__VERSION__", +- "ignore": "__VERSION__", +- "imurmurhash": "__VERSION__", +- "is-plain-object": "__VERSION__", +- "known-css-properties": "__VERSION__", +- "mathml-tag-names": "__VERSION__", +- "meow": "__VERSION__", +- "micromatch": "__VERSION__", +- "normalize-path": "__VERSION__", +- "picocolors": "__VERSION__", +- "postcss": "__VERSION__", +- "postcss-resolve-nested-selector": "__VERSION__", +- "postcss-safe-parser": "__VERSION__", +- "postcss-selector-parser": "__VERSION__", +- "postcss-value-parser": "__VERSION__", +- "resolve-from": "__VERSION__", +- "string-width": "__VERSION__", +- "supports-hyperlinks": "__VERSION__", +- "svg-tags": "__VERSION__", +- "table": "__VERSION__", +- "write-file-atomic": "__VERSION__" +- }, +- "bin": { +- "stylelint": "bin/stylelint.mjs" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-recommended": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-recommended-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "postcss-scss": "__VERSION__", +- "stylelint-config-recommended": "__VERSION__", +- "stylelint-scss": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__", +- "stylelint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "postcss": { +- "optional": true +- } +- } +- }, +- "node_modules/stylelint-config-standard": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "stylelint-config-recommended": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-standard-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "stylelint-config-recommended-scss": "__VERSION__", +- "stylelint-config-standard": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__", +- "stylelint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "postcss": { +- "optional": true +- } +- } +- }, +- "node_modules/stylelint-order": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "postcss": "__VERSION__", +- "postcss-sorting": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__ || __VERSION__" +- } +- }, +- "node_modules/stylelint-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "css-tree": "__VERSION__", +- "is-plain-object": "__VERSION__", +- "known-css-properties": "__VERSION__", +- "mdn-data": "__VERSION__", +- "postcss-media-query-parser": "__VERSION__", +- "postcss-resolve-nested-selector": "__VERSION__", +- "postcss-selector-parser": "__VERSION__", +- "postcss-value-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/file-entry-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flat-cache": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/flat-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cacheable": "__VERSION__", +- "flatted": "__VERSION__", +- "hookified": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/ignore": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 4" +- } +- }, + "node_modules/supports-color": { + "version": "__VERSION__", + "dev": true, +@@ -5508,23 +4405,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/supports-hyperlinks": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-flag": "__VERSION__", +- "supports-color": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" +- } +- }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "__VERSION__", + "dev": true, +@@ -5536,10 +4416,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/svg-tags": { +- "version": "__VERSION__", +- "dev": true +- }, + "node_modules/synckit": { + "version": "__VERSION__", + "dev": true, +@@ -5554,41 +4430,6 @@ + "url": "https://opencollective.com/synckit" + } + }, +- "node_modules/table": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "ajv": "__VERSION__", +- "lodash.truncate": "__VERSION__", +- "slice-ansi": "__VERSION__", +- "string-width": "__VERSION__", +- "strip-ansi": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/table/node_modules/ajv": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-deep-equal": "__VERSION__", +- "fast-uri": "__VERSION__", +- "json-schema-traverse": "__VERSION__", +- "require-from-string": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/epoberezkin" +- } +- }, +- "node_modules/table/node_modules/json-schema-traverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/terser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/terser/-/terser-__VERSION__.tgz", +@@ -5847,22 +4688,6 @@ + "punycode": "__VERSION__" + } + }, +- "node_modules/util-deprecate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/which": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "isexe": "__VERSION__" +- }, +- "bin": { +- "which": "bin/which" +- } +- }, + "node_modules/which-boxed-primitive": { + "version": "__VERSION__", + "dev": true, +@@ -6037,20 +4862,6 @@ + }, + "engines": { + "node": "__VERSION__" +- } +- }, +- "node_modules/write-file-atomic": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "imurmurhash": "__VERSION__", +- "signal-exit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/y18n": { diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint/web/themes/custom/star_wars/package.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint/web/themes/custom/star_wars/package.json new file mode 100644 index 0000000000..04445b1033 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint/web/themes/custom/star_wars/package.json @@ -0,0 +1,25 @@ +@@ -22,11 +22,6 @@ + "postcss-cli": "__VERSION__", + "prettier": "__VERSION__", + "sass": "__VERSION__", +- "stylelint": "__VERSION__", +- "stylelint-config-standard": "__VERSION__", +- "stylelint-config-standard-scss": "__VERSION__", +- "stylelint-order": "__VERSION__", +- "stylelint-scss": "__VERSION__", + "terser": "__VERSION__" + }, + "browserslist": [ +@@ -42,10 +37,8 @@ + "copy": "npm run copy:images && npm run copy:fonts", + "copy:fonts": "mkdir -p build/fonts && cp -r fonts/* build/fonts/ 2>/dev/null || true", + "copy:images": "mkdir -p build/images && cp -r images/* build/images/ 2>/dev/null || true", +- "lint": "npm run lint-js && npm run lint-css", +- "lint-css": "stylelint 'scss/**/*.scss'", +- "lint-css-fix": "stylelint 'scss/**/*.scss' --fix", +- "lint-fix": "npm run lint-js-fix && npm run lint-css-fix", ++ "lint": "npm run lint-js", ++ "lint-fix": "npm run lint-js-fix", + "lint-js": "eslint 'js/**/*.js' --ignore-pattern '*.min.js'", + "lint-js-fix": "eslint 'js/**/*.js' --ignore-pattern '*.min.js' --fix", + "postcss:dev": "postcss build/css/star_wars.min.css -o build/css/star_wars.min.css --map", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_circleci/.circleci/config.yml index 127c379866..4acc6eb0fc 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_circleci/.circleci/config.yml @@ -139,7 +139,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -167,13 +167,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -184,14 +184,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -206,6 +207,28 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -258,10 +281,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -303,7 +326,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -312,7 +335,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -320,27 +343,29 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -349,14 +374,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -365,7 +390,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -377,10 +402,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -389,9 +415,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_circleci/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_circleci/package-lock.json new file mode 100644 index 0000000000..1059f590d7 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_circleci/package-lock.json @@ -0,0 +1,1392 @@ +@@ -10,6 +10,8 @@ + "@eslint/compat": "__VERSION__", + "@eslint/js": "__VERSION__", + "@homer0/prettier-plugin-jsdoc": "__VERSION__", ++ "jest": "__VERSION__", ++ "jest-environment-jsdom": "__VERSION__", + "eslint": "__VERSION__", + "eslint-config-prettier": "__VERSION__", + "eslint-plugin-import": "__VERSION__", +@@ -18,12 +20,7 @@ + "eslint-plugin-prettier": "__VERSION__", + "eslint-plugin-yml": "__VERSION__", + "globals": "__VERSION__", +- "jest": "__VERSION__", +- "jest-environment-jsdom": "__VERSION__", +- "prettier": "__VERSION__", +- "stylelint": "__VERSION__", +- "stylelint-config-standard": "__VERSION__", +- "stylelint-order": "__VERSION__" ++ "prettier": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__", +@@ -698,67 +695,6 @@ + "specificity": "bin/cli.js" + } + }, +- "node_modules/@cacheable/memory": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@cacheable/utils": "__VERSION__", +- "@keyv/bigmap": "__VERSION__", +- "hookified": "__VERSION__", +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hashery": "__VERSION__", +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": ">= 18" +- }, +- "peerDependencies": { +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hashery": "__VERSION__", +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/utils/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, + "node_modules/@csstools/color-helpers": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-__VERSION__.tgz", +@@ -779,29 +715,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/@csstools/css-parser-algorithms": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-__VERSION__.tgz", +@@ -827,84 +740,6 @@ + } + } + }, +- "node_modules/@csstools/css-tokenizer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@csstools/media-query-list-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@csstools/selector-specificity": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT-0", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss-selector-parser": "__VERSION__" +- } +- }, +- "node_modules/@dual-bundle/import-meta-resolve": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/JounQin" +- } +- }, + "node_modules/@emnapi/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-__VERSION__.tgz", +@@ -1717,13 +1552,6 @@ + "@jridgewell/sourcemap-codec": "__VERSION__" + } + }, +- "node_modules/@keyv/serialize": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-__VERSION__.tgz", +@@ -1746,44 +1574,6 @@ + "@emnapi/runtime": "__VERSION__ || __VERSION__" + } + }, +- "node_modules/@nodelib/fs.scandir": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.stat": "__VERSION__", +- "run-parallel": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/@nodelib/fs.stat": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/@nodelib/fs.walk": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.scandir": "__VERSION__", +- "fastq": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, + "node_modules/@pkgr/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-__VERSION__.tgz", +@@ -2515,16 +2305,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/array-union": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/array-union/-/array-union-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/array.prototype.findlastindex": { + "version": "__VERSION__", + "dev": true, +@@ -2599,14 +2379,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/astral-regex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/async-function": { + "version": "__VERSION__", + "dev": true, +@@ -2767,19 +2539,6 @@ + "concat-map": "__VERSION__" + } + }, +- "node_modules/braces": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/braces/-/braces-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fill-range": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/browserslist": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-__VERSION__.tgz", +@@ -2831,30 +2590,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/cacheable": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@cacheable/memory": "__VERSION__", +- "@cacheable/utils": "__VERSION__", +- "hookified": "__VERSION__", +- "keyv": "__VERSION__", +- "qified": "__VERSION__" +- } +- }, +- "node_modules/cacheable/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, + "node_modules/call-bind": { + "version": "__VERSION__", + "dev": true, +@@ -3053,11 +2788,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/colord": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/comment-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", +@@ -3080,33 +2810,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/cosmiconfig": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "env-paths": "__VERSION__", +- "import-fresh": "__VERSION__", +- "js-yaml": "__VERSION__", +- "parse-json": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/d-fischer" +- }, +- "peerDependencies": { +- "typescript": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "typescript": { +- "optional": true +- } +- } +- }, + "node_modules/cross-spawn": { + "version": "__VERSION__", + "dev": true, +@@ -3120,14 +2823,6 @@ + "node": ">= 8" + } + }, +- "node_modules/css-functions-list": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/css-tree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-__VERSION__.tgz", +@@ -3142,19 +2837,6 @@ + "node": "^10 || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/cssesc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "cssesc": "bin/cssesc" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/data-urls": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-__VERSION__.tgz", +@@ -3322,19 +3004,6 @@ + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/dir-glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "path-type": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/doctrine": { + "version": "__VERSION__", + "dev": true, +@@ -3397,16 +3066,6 @@ + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, +- "node_modules/env-paths": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/error-ex": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-__VERSION__.tgz", +@@ -4153,36 +3812,6 @@ + "dev": true, + "license": "Apache-2.0" + }, +- "node_modules/fast-glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.stat": "__VERSION__", +- "@nodelib/fs.walk": "__VERSION__", +- "glob-parent": "__VERSION__", +- "merge2": "__VERSION__", +- "micromatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/fast-glob/node_modules/glob-parent": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "is-glob": "__VERSION__" +- }, +- "engines": { +- "node": ">= 6" +- } +- }, + "node_modules/fast-json-stable-stringify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-__VERSION__.tgz", +@@ -4195,39 +3824,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/fast-uri": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/fastify" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/fastify" +- } +- ], +- "license": "BSD-3-Clause" +- }, +- "node_modules/fastest-levenshtein": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/fastq": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fastq/-/fastq-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "reusify": "__VERSION__" +- } +- }, + "node_modules/fb-watchman": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-__VERSION__.tgz", +@@ -4251,19 +3847,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/fill-range": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "to-regex-range": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/find-up": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-__VERSION__.tgz", +@@ -4533,41 +4116,6 @@ + "url": "https://github.com/sponsors/isaacs" + } + }, +- "node_modules/global-modules": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "global-prefix": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/global-prefix": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ini": "__VERSION__", +- "kind-of": "__VERSION__", +- "which": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/global-prefix/node_modules/which": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "isexe": "__VERSION__" +- }, +- "bin": { +- "which": "bin/which" +- } +- }, + "node_modules/globals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +@@ -4596,32 +4144,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/globby": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globby/-/globby-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-union": "__VERSION__", +- "dir-glob": "__VERSION__", +- "fast-glob": "__VERSION__", +- "ignore": "__VERSION__", +- "merge2": "__VERSION__", +- "slash": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/globjoin": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/gopd": { + "version": "__VERSION__", + "dev": true, +@@ -4709,19 +4231,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/hashery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hashery/-/hashery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/hasown": { + "version": "__VERSION__", + "dev": true, +@@ -4733,13 +4242,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/hookified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/html-encoding-sniffer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-__VERSION__.tgz", +@@ -4775,19 +4277,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/html-tags": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/human-signals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-__VERSION__.tgz", +@@ -4857,11 +4346,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/ini": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC" +- }, + "node_modules/internal-slot": { + "version": "__VERSION__", + "dev": true, +@@ -5092,16 +4576,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/is-number": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/is-number/-/is-number-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/is-number-object": { + "version": "__VERSION__", + "dev": true, +@@ -5117,16 +4591,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/is-plain-object": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/is-potential-custom-element-name": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-__VERSION__.tgz", +@@ -6171,21 +5635,6 @@ + "json-buffer": "__VERSION__" + } + }, +- "node_modules/kind-of": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/known-css-properties": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/leven": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/leven/-/leven-__VERSION__.tgz", +@@ -6233,11 +5682,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/lodash.truncate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/lru-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-__VERSION__.tgz", +@@ -6295,17 +5739,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/mathml-tag-names": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/wooorm" +- } +- }, + "node_modules/mdn-data": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-__VERSION__.tgz", +@@ -6313,19 +5746,6 @@ + "dev": true, + "license": "CC0-1.0" + }, +- "node_modules/meow": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/meow/-/meow-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/merge-stream": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-__VERSION__.tgz", +@@ -6333,43 +5753,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/merge2": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/merge2/-/merge2-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/micromatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "braces": "__VERSION__", +- "picomatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/micromatch/node_modules/picomatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/jonschlinkert" +- } +- }, + "node_modules/mimic-fn": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-__VERSION__.tgz", +@@ -6416,25 +5799,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/nanoid": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "license": "MIT", +- "bin": { +- "nanoid": "bin/nanoid.cjs" +- }, +- "engines": { +- "node": "^10 || ^12 || ^13.7 || ^14 || >=__VERSION__" +- } +- }, + "node_modules/napi-postinstall": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-__VERSION__.tgz", +@@ -6791,16 +6155,6 @@ + "node": "20 || >=22" + } + }, +- "node_modules/path-type": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/path-type/-/path-type-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/picocolors": { + "version": "__VERSION__", + "dev": true, +@@ -6850,96 +6204,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/postcss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss/-/postcss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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": "__VERSION__", +- "picocolors": "__VERSION__", +- "source-map-js": "__VERSION__" +- }, +- "engines": { +- "node": "^10 || ^12 || >=14" +- } +- }, +- "node_modules/postcss-resolve-nested-selector": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/postcss-safe-parser": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/postcss/" +- }, +- { +- "type": "tidelift", +- "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, +- "node_modules/postcss-selector-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cssesc": "__VERSION__", +- "util-deprecate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/postcss-sorting": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, +- "node_modules/postcss-value-parser": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/prelude-ls": { + "version": "__VERSION__", + "dev": true, +@@ -7031,47 +6295,6 @@ + ], + "license": "MIT" + }, +- "node_modules/qified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/qified/-/qified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/qified/node_modules/hookified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/queue-microtask": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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/ramda": { + "version": "__VERSION__", + "dev": true, +@@ -7208,41 +6431,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/reusify": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/reusify/-/reusify-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "iojs": "__VERSION__", +- "node": "__VERSION__" +- } +- }, +- "node_modules/run-parallel": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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": "__VERSION__" +- } +- }, + "node_modules/safe-array-concat": { + "version": "__VERSION__", + "dev": true, +@@ -7466,22 +6654,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/slice-ansi": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ansi-styles": "__VERSION__", +- "astral-regex": "__VERSION__", +- "is-fullwidth-code-point": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/slice-ansi?sponsor=1" +- } +- }, + "node_modules/source-map": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-__VERSION__.tgz", +@@ -7698,173 +6870,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/stylelint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-syntax-patches-for-csstree": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__", +- "@csstools/media-query-list-parser": "__VERSION__", +- "@csstools/selector-specificity": "__VERSION__", +- "@dual-bundle/import-meta-resolve": "__VERSION__", +- "balanced-match": "__VERSION__", +- "colord": "__VERSION__", +- "cosmiconfig": "__VERSION__", +- "css-functions-list": "__VERSION__", +- "css-tree": "__VERSION__", +- "debug": "__VERSION__", +- "fast-glob": "__VERSION__", +- "fastest-levenshtein": "__VERSION__", +- "file-entry-cache": "__VERSION__", +- "global-modules": "__VERSION__", +- "globby": "__VERSION__", +- "globjoin": "__VERSION__", +- "html-tags": "__VERSION__", +- "ignore": "__VERSION__", +- "imurmurhash": "__VERSION__", +- "is-plain-object": "__VERSION__", +- "known-css-properties": "__VERSION__", +- "mathml-tag-names": "__VERSION__", +- "meow": "__VERSION__", +- "micromatch": "__VERSION__", +- "normalize-path": "__VERSION__", +- "picocolors": "__VERSION__", +- "postcss": "__VERSION__", +- "postcss-resolve-nested-selector": "__VERSION__", +- "postcss-safe-parser": "__VERSION__", +- "postcss-selector-parser": "__VERSION__", +- "postcss-value-parser": "__VERSION__", +- "resolve-from": "__VERSION__", +- "string-width": "__VERSION__", +- "supports-hyperlinks": "__VERSION__", +- "svg-tags": "__VERSION__", +- "table": "__VERSION__", +- "write-file-atomic": "__VERSION__" +- }, +- "bin": { +- "stylelint": "bin/stylelint.mjs" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-recommended": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-standard": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "stylelint-config-recommended": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint-order": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "postcss": "__VERSION__", +- "postcss-sorting": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__ || __VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/balanced-match": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/stylelint/node_modules/file-entry-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flat-cache": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/flat-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cacheable": "__VERSION__", +- "flatted": "__VERSION__", +- "hookified": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/ignore": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 4" +- } +- }, + "node_modules/supports-color": { + "version": "__VERSION__", + "dev": true, +@@ -7876,23 +6881,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/supports-hyperlinks": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-flag": "__VERSION__", +- "supports-color": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" +- } +- }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "__VERSION__", + "dev": true, +@@ -7904,10 +6892,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/svg-tags": { +- "version": "__VERSION__", +- "dev": true +- }, + "node_modules/symbol-tree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-__VERSION__.tgz", +@@ -7931,41 +6915,6 @@ + "url": "https://opencollective.com/synckit" + } + }, +- "node_modules/table": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "ajv": "__VERSION__", +- "lodash.truncate": "__VERSION__", +- "slice-ansi": "__VERSION__", +- "string-width": "__VERSION__", +- "strip-ansi": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/table/node_modules/ajv": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-deep-equal": "__VERSION__", +- "fast-uri": "__VERSION__", +- "json-schema-traverse": "__VERSION__", +- "require-from-string": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/epoberezkin" +- } +- }, +- "node_modules/table/node_modules/json-schema-traverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/test-exclude": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-__VERSION__.tgz", +@@ -8047,19 +6996,6 @@ + "dev": true, + "license": "BSD-3-Clause" + }, +- "node_modules/to-regex-range": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-number": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/to-valid-identifier": { + "version": "__VERSION__", + "dev": true, +@@ -8336,13 +7272,6 @@ + "dependencies": { + "punycode": "__VERSION__" + } +- }, +- "node_modules/util-deprecate": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" + }, + "node_modules/v8-to-istanbul": { + "version": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_circleci/package.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_circleci/package.json index fe37c7513a..c46a5b6eac 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_circleci/package.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_circleci/package.json @@ -1,25 +1,26 @@ @@ -9,11 +9,9 @@ }, "scripts": { - "lint-js": "eslint web/modules/custom --ext .js --max-warnings=0 --no-error-on-unmatched-pattern", + "lint-js": "eslint web/modules/custom --max-warnings=0 --no-error-on-unmatched-pattern", - "lint-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\"", -- "lint": "yarn run lint-js && yarn run lint-css", -+ "lint": "yarn run lint-js", - "lint-fix-js": "eslint web/modules/custom --ext .js --no-error-on-unmatched-pattern --fix", +- "lint": "npm run lint-js && npm run lint-css", ++ "lint": "npm run lint-js", + "lint-fix-js": "eslint web/modules/custom --no-error-on-unmatched-pattern --fix", - "lint-fix-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\" --fix", -- "lint-fix": "yarn run lint-fix-js && yarn run lint-fix-css", -+ "lint-fix": "yarn run lint-fix-js", +- "lint-fix": "npm run lint-fix-js && npm run lint-fix-css", ++ "lint-fix": "npm run lint-fix-js", "test": "jest --coverage --passWithNoTests" }, "devDependencies": { -@@ -28,9 +26,6 @@ - "eslint-plugin-no-jquery": "__VERSION__", +@@ -30,10 +28,7 @@ "eslint-plugin-prettier": "__VERSION__", "eslint-plugin-yml": "__VERSION__", + "globals": "__VERSION__", - "prettier": "__VERSION__", - "stylelint": "__VERSION__", - "stylelint-config-standard": "__VERSION__", - "stylelint-order": "__VERSION__" + "prettier": "__VERSION__" - } - } + }, + "overrides": { + "test-exclude": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_circleci/web/themes/custom/star_wars/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_circleci/web/themes/custom/star_wars/package-lock.json new file mode 100644 index 0000000000..511112a27c --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_circleci/web/themes/custom/star_wars/package-lock.json @@ -0,0 +1,1493 @@ +@@ -27,222 +27,9 @@ + "postcss-cli": "__VERSION__", + "prettier": "__VERSION__", + "sass": "__VERSION__", +- "stylelint": "__VERSION__", +- "stylelint-config-standard": "__VERSION__", +- "stylelint-config-standard-scss": "__VERSION__", +- "stylelint-order": "__VERSION__", +- "stylelint-scss": "__VERSION__", + "terser": "__VERSION__" + } + }, +- "node_modules/@babel/code-frame": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-validator-identifier": "__VERSION__", +- "js-tokens": "__VERSION__", +- "picocolors": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/helper-validator-identifier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@cacheable/utils": "__VERSION__", +- "@keyv/bigmap": "__VERSION__", +- "hookified": "__VERSION__", +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hashery": "__VERSION__", +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": ">= 18" +- }, +- "peerDependencies": { +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hashery": "__VERSION__", +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/utils/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, +- "node_modules/@csstools/css-parser-algorithms": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@csstools/css-syntax-patches-for-csstree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT-0", +- "peerDependencies": { +- "css-tree": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "css-tree": { +- "optional": true +- } +- } +- }, +- "node_modules/@csstools/css-tokenizer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@csstools/media-query-list-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@csstools/selector-specificity": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT-0", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss-selector-parser": "__VERSION__" +- } +- }, +- "node_modules/@dual-bundle/import-meta-resolve": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/JounQin" +- } +- }, + "node_modules/@es-joy/jsdoccomment": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-__VERSION__.tgz", +@@ -563,51 +350,6 @@ + "@jridgewell/sourcemap-codec": "__VERSION__" + } + }, +- "node_modules/@keyv/serialize": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@nodelib/fs.scandir": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.stat": "__VERSION__", +- "run-parallel": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/@nodelib/fs.stat": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/@nodelib/fs.walk": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.scandir": "__VERSION__", +- "fastq": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, + "node_modules/@parcel/watcher": { + "version": "__VERSION__", + "dev": true, +@@ -1124,16 +866,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/array-union": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/array-union/-/array-union-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/array.prototype.findlastindex": { + "version": "__VERSION__", + "dev": true, +@@ -1208,14 +940,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/astral-regex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/async-function": { + "version": "__VERSION__", + "dev": true, +@@ -1275,13 +999,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/balanced-match": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/baseline-browser-mapping": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-__VERSION__.tgz", +@@ -1370,30 +1087,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/cacheable": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@cacheable/memory": "__VERSION__", +- "@cacheable/utils": "__VERSION__", +- "hookified": "__VERSION__", +- "keyv": "__VERSION__", +- "qified": "__VERSION__" +- } +- }, +- "node_modules/cacheable/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, + "node_modules/call-bind": { + "version": "__VERSION__", + "dev": true, +@@ -1617,11 +1310,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/colord": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/commander": { + "version": "__VERSION__", + "dev": true, +@@ -1642,31 +1330,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/cosmiconfig": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "env-paths": "__VERSION__", +- "import-fresh": "__VERSION__", +- "js-yaml": "__VERSION__", +- "parse-json": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/d-fischer" +- }, +- "peerDependencies": { +- "typescript": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "typescript": { +- "optional": true +- } +- } +- }, + "node_modules/cross-spawn": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-__VERSION__.tgz", +@@ -1698,42 +1361,6 @@ + "node": ">= 8" + } + }, +- "node_modules/css-functions-list": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/css-tree": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "mdn-data": "__VERSION__", +- "source-map-js": "__VERSION__" +- }, +- "engines": { +- "node": "^10 || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/css-tree/node_modules/mdn-data": { +- "version": "__VERSION__", +- "dev": true, +- "license": "CC0-1.0" +- }, +- "node_modules/cssesc": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "cssesc": "bin/cssesc" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/data-view-buffer": { + "version": "__VERSION__", + "dev": true, +@@ -1870,19 +1497,6 @@ + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/dir-glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "path-type": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/doctrine": { + "version": "__VERSION__", + "dev": true, +@@ -1919,22 +1533,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/env-paths": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/error-ex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-arrayish": "__VERSION__" +- } +- }, + "node_modules/es-abstract": { + "version": "__VERSION__", + "dev": true, +@@ -2565,23 +2163,6 @@ + "dev": true, + "license": "Apache-2.0" + }, +- "node_modules/fast-glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.stat": "__VERSION__", +- "@nodelib/fs.walk": "__VERSION__", +- "glob-parent": "__VERSION__", +- "merge2": "__VERSION__", +- "micromatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/fast-json-stable-stringify": { + "version": "__VERSION__", + "dev": true, +@@ -2592,39 +2173,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/fast-uri": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/fastify" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/fastify" +- } +- ], +- "license": "BSD-3-Clause" +- }, +- "node_modules/fastest-levenshtein": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/fastq": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fastq/-/fastq-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "reusify": "__VERSION__" +- } +- }, + "node_modules/file-entry-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +@@ -2863,30 +2411,6 @@ + "node": ">= 6" + } + }, +- "node_modules/global-modules": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "global-prefix": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/global-prefix": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ini": "__VERSION__", +- "kind-of": "__VERSION__", +- "which": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/globals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +@@ -2915,42 +2439,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/globby": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globby/-/globby-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-union": "__VERSION__", +- "dir-glob": "__VERSION__", +- "fast-glob": "__VERSION__", +- "ignore": "__VERSION__", +- "merge2": "__VERSION__", +- "slash": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/globby/node_modules/slash": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/slash/-/slash-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/globjoin": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/gopd": { + "version": "__VERSION__", + "dev": true, +@@ -3036,19 +2524,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/hashery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hashery/-/hashery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/hasown": { + "version": "__VERSION__", + "dev": true, +@@ -3060,13 +2535,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/hookified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/html-entities": { + "version": "__VERSION__", + "dev": true, +@@ -3082,19 +2550,6 @@ + ], + "license": "MIT" + }, +- "node_modules/html-tags": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/ignore": { + "version": "__VERSION__", + "dev": true, +@@ -3139,11 +2594,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/ini": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC" +- }, + "node_modules/internal-slot": { + "version": "__VERSION__", + "dev": true, +@@ -3173,11 +2623,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/is-arrayish": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/is-async-function": { + "version": "__VERSION__", + "dev": true, +@@ -3424,14 +2869,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/is-plain-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/is-regex": { + "version": "__VERSION__", + "dev": true, +@@ -3580,11 +3017,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/js-tokens": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/js-yaml": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-__VERSION__.tgz", +@@ -3625,11 +3057,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/json-parse-even-better-errors": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/json-schema-traverse": { + "version": "__VERSION__", + "dev": true, +@@ -3702,14 +3129,6 @@ + "json-buffer": "__VERSION__" + } + }, +- "node_modules/kind-of": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/klaw-sync": { + "version": "__VERSION__", + "dev": true, +@@ -3718,11 +3137,6 @@ + "graceful-fs": "__VERSION__" + } + }, +- "node_modules/known-css-properties": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/levn": { + "version": "__VERSION__", + "dev": true, +@@ -3746,11 +3160,6 @@ + "url": "https://github.com/sponsors/antonk52" + } + }, +- "node_modules/lines-and-columns": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/locate-path": { + "version": "__VERSION__", + "dev": true, +@@ -3780,11 +3189,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/lodash.truncate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/math-intrinsics": { + "version": "__VERSION__", + "dev": true, +@@ -3793,47 +3197,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/mathml-tag-names": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/wooorm" +- } +- }, +- "node_modules/mdn-data": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC0-1.0" +- }, +- "node_modules/meow": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/meow/-/meow-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/merge2": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/merge2/-/merge2-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 8" +- } +- }, + "node_modules/micromatch": { + "version": "__VERSION__", + "dev": true, +@@ -4141,23 +3504,6 @@ + "parse-statements": "__VERSION__" + } + }, +- "node_modules/parse-json": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/code-frame": "__VERSION__", +- "error-ex": "__VERSION__", +- "json-parse-even-better-errors": "__VERSION__", +- "lines-and-columns": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/parse-statements": { + "version": "__VERSION__", + "dev": true, +@@ -4244,16 +3590,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/path-type": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/path-type/-/path-type-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/picocolors": { + "version": "__VERSION__", + "dev": true, +@@ -4453,13 +3789,6 @@ + } + } + }, +- "node_modules/postcss-media-query-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/postcss-reporter": { + "version": "__VERSION__", + "dev": true, +@@ -4485,85 +3814,6 @@ + "postcss": "__VERSION__" + } + }, +- "node_modules/postcss-resolve-nested-selector": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/postcss-safe-parser": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/postcss/" +- }, +- { +- "type": "tidelift", +- "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, +- "node_modules/postcss-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/postcss/" +- }, +- { +- "type": "tidelift", +- "url": "https://tidelift.com/funding/github/npm/postcss-scss" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, +- "node_modules/postcss-selector-parser": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cssesc": "__VERSION__", +- "util-deprecate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/postcss-sorting": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, + "node_modules/postcss-value-parser": { + "version": "__VERSION__", + "dev": true, +@@ -4620,47 +3870,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/qified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/qified/-/qified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/qified/node_modules/hookified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/queue-microtask": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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/ramda": { + "version": "__VERSION__", + "dev": true, +@@ -4737,14 +3946,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/require-from-string": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/require-main-filename": { + "version": "__VERSION__", + "dev": true, +@@ -4783,51 +3984,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/resolve-from": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/reusify": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/reusify/-/reusify-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "iojs": "__VERSION__", +- "node": "__VERSION__" +- } +- }, +- "node_modules/run-parallel": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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": "__VERSION__" +- } +- }, + "node_modules/safe-array-concat": { + "version": "__VERSION__", + "dev": true, +@@ -5071,19 +4227,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/signal-exit": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/isaacs" +- } +- }, + "node_modules/slash": { + "version": "__VERSION__", + "dev": true, +@@ -5092,22 +4235,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/slice-ansi": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ansi-styles": "__VERSION__", +- "astral-regex": "__VERSION__", +- "is-fullwidth-code-point": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/slice-ansi?sponsor=1" +- } +- }, + "node_modules/source-map": { + "version": "__VERSION__", + "dev": true, +@@ -5267,236 +4394,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/stylelint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-syntax-patches-for-csstree": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__", +- "@csstools/media-query-list-parser": "__VERSION__", +- "@csstools/selector-specificity": "__VERSION__", +- "@dual-bundle/import-meta-resolve": "__VERSION__", +- "balanced-match": "__VERSION__", +- "colord": "__VERSION__", +- "cosmiconfig": "__VERSION__", +- "css-functions-list": "__VERSION__", +- "css-tree": "__VERSION__", +- "debug": "__VERSION__", +- "fast-glob": "__VERSION__", +- "fastest-levenshtein": "__VERSION__", +- "file-entry-cache": "__VERSION__", +- "global-modules": "__VERSION__", +- "globby": "__VERSION__", +- "globjoin": "__VERSION__", +- "html-tags": "__VERSION__", +- "ignore": "__VERSION__", +- "imurmurhash": "__VERSION__", +- "is-plain-object": "__VERSION__", +- "known-css-properties": "__VERSION__", +- "mathml-tag-names": "__VERSION__", +- "meow": "__VERSION__", +- "micromatch": "__VERSION__", +- "normalize-path": "__VERSION__", +- "picocolors": "__VERSION__", +- "postcss": "__VERSION__", +- "postcss-resolve-nested-selector": "__VERSION__", +- "postcss-safe-parser": "__VERSION__", +- "postcss-selector-parser": "__VERSION__", +- "postcss-value-parser": "__VERSION__", +- "resolve-from": "__VERSION__", +- "string-width": "__VERSION__", +- "supports-hyperlinks": "__VERSION__", +- "svg-tags": "__VERSION__", +- "table": "__VERSION__", +- "write-file-atomic": "__VERSION__" +- }, +- "bin": { +- "stylelint": "bin/stylelint.mjs" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-recommended": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-recommended-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "postcss-scss": "__VERSION__", +- "stylelint-config-recommended": "__VERSION__", +- "stylelint-scss": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__", +- "stylelint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "postcss": { +- "optional": true +- } +- } +- }, +- "node_modules/stylelint-config-standard": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "stylelint-config-recommended": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-standard-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "stylelint-config-recommended-scss": "__VERSION__", +- "stylelint-config-standard": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__", +- "stylelint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "postcss": { +- "optional": true +- } +- } +- }, +- "node_modules/stylelint-order": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "postcss": "__VERSION__", +- "postcss-sorting": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__ || __VERSION__" +- } +- }, +- "node_modules/stylelint-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "css-tree": "__VERSION__", +- "is-plain-object": "__VERSION__", +- "known-css-properties": "__VERSION__", +- "mdn-data": "__VERSION__", +- "postcss-media-query-parser": "__VERSION__", +- "postcss-resolve-nested-selector": "__VERSION__", +- "postcss-selector-parser": "__VERSION__", +- "postcss-value-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/file-entry-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flat-cache": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/flat-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cacheable": "__VERSION__", +- "flatted": "__VERSION__", +- "hookified": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/ignore": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 4" +- } +- }, + "node_modules/supports-color": { + "version": "__VERSION__", + "dev": true, +@@ -5508,23 +4405,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/supports-hyperlinks": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-flag": "__VERSION__", +- "supports-color": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" +- } +- }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "__VERSION__", + "dev": true, +@@ -5536,10 +4416,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/svg-tags": { +- "version": "__VERSION__", +- "dev": true +- }, + "node_modules/synckit": { + "version": "__VERSION__", + "dev": true, +@@ -5554,41 +4430,6 @@ + "url": "https://opencollective.com/synckit" + } + }, +- "node_modules/table": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "ajv": "__VERSION__", +- "lodash.truncate": "__VERSION__", +- "slice-ansi": "__VERSION__", +- "string-width": "__VERSION__", +- "strip-ansi": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/table/node_modules/ajv": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-deep-equal": "__VERSION__", +- "fast-uri": "__VERSION__", +- "json-schema-traverse": "__VERSION__", +- "require-from-string": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/epoberezkin" +- } +- }, +- "node_modules/table/node_modules/json-schema-traverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/terser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/terser/-/terser-__VERSION__.tgz", +@@ -5847,22 +4688,6 @@ + "punycode": "__VERSION__" + } + }, +- "node_modules/util-deprecate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/which": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "isexe": "__VERSION__" +- }, +- "bin": { +- "which": "bin/which" +- } +- }, + "node_modules/which-boxed-primitive": { + "version": "__VERSION__", + "dev": true, +@@ -6037,20 +4862,6 @@ + }, + "engines": { + "node": "__VERSION__" +- } +- }, +- "node_modules/write-file-atomic": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "imurmurhash": "__VERSION__", +- "signal-exit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" + } + }, + "node_modules/y18n": { diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_circleci/web/themes/custom/star_wars/package.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_circleci/web/themes/custom/star_wars/package.json new file mode 100644 index 0000000000..04445b1033 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_circleci/web/themes/custom/star_wars/package.json @@ -0,0 +1,25 @@ +@@ -22,11 +22,6 @@ + "postcss-cli": "__VERSION__", + "prettier": "__VERSION__", + "sass": "__VERSION__", +- "stylelint": "__VERSION__", +- "stylelint-config-standard": "__VERSION__", +- "stylelint-config-standard-scss": "__VERSION__", +- "stylelint-order": "__VERSION__", +- "stylelint-scss": "__VERSION__", + "terser": "__VERSION__" + }, + "browserslist": [ +@@ -42,10 +37,8 @@ + "copy": "npm run copy:images && npm run copy:fonts", + "copy:fonts": "mkdir -p build/fonts && cp -r fonts/* build/fonts/ 2>/dev/null || true", + "copy:images": "mkdir -p build/images && cp -r images/* build/images/ 2>/dev/null || true", +- "lint": "npm run lint-js && npm run lint-css", +- "lint-css": "stylelint 'scss/**/*.scss'", +- "lint-css-fix": "stylelint 'scss/**/*.scss' --fix", +- "lint-fix": "npm run lint-js-fix && npm run lint-css-fix", ++ "lint": "npm run lint-js", ++ "lint-fix": "npm run lint-js-fix", + "lint-js": "eslint 'js/**/*.js' --ignore-pattern '*.min.js'", + "lint-js-fix": "eslint 'js/**/*.js' --ignore-pattern '*.min.js' --fix", + "postcss:dev": "postcss build/css/star_wars.min.css -o build/css/star_wars.min.css --map", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/.ahoy.yml index 111fcd24fe..0b33e1b47f 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/.ahoy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/.ahoy.yml @@ -9,25 +9,25 @@ @@ -170,25 +169,7 @@ aliases: [fe-install] cmd: | - ahoy cli "yarn install --frozen-lockfile" -- ahoy cli "yarn --cwd=${WEBROOT}/themes/custom/${DRUPAL_THEME} install --frozen-lockfile" + ahoy cli "npm ci" +- ahoy cli "npm --prefix=${WEBROOT}/themes/custom/${DRUPAL_THEME} ci" - fe: - usage: Build front-end assets. - aliases: [fe-build] -- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run build" +- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run build" - - fed: - usage: Build front-end assets for development. - aliases: [fe-build-dev] -- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run build-dev" +- cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run build-dev" - - few: - usage: Watch front-end assets during development. - aliases: [fe-watch] - cmd: | - ahoy cli "pkill -9 -f grunt" || true -- ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run watch" +- ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run watch" - lint: usage: Lint back-end and front-end code. @@ -35,8 +35,8 @@ @@ -208,7 +189,6 @@ cmd: | ahoy cli vendor/bin/twig-cs-fixer lint - ahoy cli "yarn run lint" -- ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" + ahoy cli "npm run lint" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" lint-tests: usage: Lint tests code. @@ -58,8 +58,8 @@ @@ -240,7 +212,6 @@ cmd: | ahoy cli vendor/bin/twig-cs-fixer lint --fix - ahoy cli "yarn run lint-fix" -- ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" + ahoy cli "npm run lint-fix" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" test: usage: Run all PHPUnit tests. diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/.docker/cli.dockerfile b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/.docker/cli.dockerfile index 4abfebbece..573ef6b35d 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/.docker/cli.dockerfile +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/.docker/cli.dockerfile @@ -7,16 +7,17 @@ ENV DRUPAL_THEME=${DRUPAL_THEME} ARG VORTEX_FRONTEND_BUILD_SKIP="0" -@@ -94,12 +94,5 @@ +@@ -94,13 +94,5 @@ # Create file directories and set correct permissions. # hadolint ignore=SC2174 # only the leaf directory needs the mode RUN mkdir -p -m 2775 "/app/${WEBROOT}/${DRUPAL_PUBLIC_FILES}" "/app/${WEBROOT}/${DRUPAL_PRIVATE_FILES}" "${DRUPAL_TEMPORARY_FILES}" - -RUN if [ "${VORTEX_FRONTEND_BUILD_SKIP}" != "1" ]; then \ - theme_path="/app/${WEBROOT}/themes/custom/${DRUPAL_THEME}"; \ -- yarn --cwd="${theme_path}" install --frozen-lockfile --no-progress && \ -- yarn --cwd="${theme_path}" run build && \ -- yarn cache clean; \ +- export npm_config_cache=/tmp/npm-cache; \ +- npm --prefix="${theme_path}" ci --no-progress --no-audit --no-fund && \ +- npm --prefix="${theme_path}" run build && \ +- rm -rf /tmp/npm-cache; \ - fi WORKDIR /app diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/.github/workflows/build-test-deploy.yml index f9fb5e8dca..5d7488dc0f 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/.github/workflows/build-test-deploy.yml @@ -1,22 +1,30 @@ @@ -155,11 +155,6 @@ - run: docker compose exec -T cli bash -c "yarn run lint" + run: docker compose exec -T cli bash -c "npm run lint" continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} - - name: Lint theme code with NodeJS linters - if: ${{ vars.VORTEX_FRONTEND_BUILD_SKIP != '1' }} -- run: docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" +- run: docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" - continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} - test: runs-on: ubuntu-latest if: ${{ !inputs.deploy_target && (github.event_name == 'push' || !startsWith(github.head_ref, 'project/')) }} -@@ -368,18 +363,6 @@ +@@ -201,7 +196,6 @@ + VORTEX_CI_RUNNER_TOTAL: ${{ strategy.job-total }} + VORTEX_CI_IS_JEST_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + VORTEX_CI_IS_PHPUNIT_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- VORTEX_CI_IS_SDC_DEVEL_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + # Runs on every instance, using the `p` profile. + VORTEX_CI_IS_BEHAT_RUNNER: true + # Subtracted from the instance index to derive the profile number. Raise +@@ -394,18 +388,6 @@ fi env: VORTEX_CI_CODE_COVERAGE_THRESHOLD: ${{ vars.VORTEX_CI_CODE_COVERAGE_THRESHOLD || '90' }} - - - name: Validate Single Directory Components -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- if: ${{ env.VORTEX_CI_IS_SDC_DEVEL_RUNNER == 'true' }} - run: | - [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) @@ -28,4 +36,4 @@ - continue-on-error: ${{ vars.VORTEX_CI_SDC_DEVEL_IGNORE_FAILURE == '1' }} - name: Test with Behat - run: | + if: ${{ env.VORTEX_CI_IS_BEHAT_RUNNER == 'true' }} diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/package-lock.json new file mode 100644 index 0000000000..1059f590d7 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/package-lock.json @@ -0,0 +1,1392 @@ +@@ -10,6 +10,8 @@ + "@eslint/compat": "__VERSION__", + "@eslint/js": "__VERSION__", + "@homer0/prettier-plugin-jsdoc": "__VERSION__", ++ "jest": "__VERSION__", ++ "jest-environment-jsdom": "__VERSION__", + "eslint": "__VERSION__", + "eslint-config-prettier": "__VERSION__", + "eslint-plugin-import": "__VERSION__", +@@ -18,12 +20,7 @@ + "eslint-plugin-prettier": "__VERSION__", + "eslint-plugin-yml": "__VERSION__", + "globals": "__VERSION__", +- "jest": "__VERSION__", +- "jest-environment-jsdom": "__VERSION__", +- "prettier": "__VERSION__", +- "stylelint": "__VERSION__", +- "stylelint-config-standard": "__VERSION__", +- "stylelint-order": "__VERSION__" ++ "prettier": "__VERSION__" + }, + "engines": { + "node": ">= __VERSION__", +@@ -698,67 +695,6 @@ + "specificity": "bin/cli.js" + } + }, +- "node_modules/@cacheable/memory": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@cacheable/utils": "__VERSION__", +- "@keyv/bigmap": "__VERSION__", +- "hookified": "__VERSION__", +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hashery": "__VERSION__", +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": ">= 18" +- }, +- "peerDependencies": { +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hashery": "__VERSION__", +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/utils/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, + "node_modules/@csstools/color-helpers": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-__VERSION__.tgz", +@@ -779,29 +715,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/@csstools/css-parser-algorithms": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-__VERSION__.tgz", +@@ -827,84 +740,6 @@ + } + } + }, +- "node_modules/@csstools/css-tokenizer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@csstools/media-query-list-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@csstools/selector-specificity": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT-0", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss-selector-parser": "__VERSION__" +- } +- }, +- "node_modules/@dual-bundle/import-meta-resolve": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/JounQin" +- } +- }, + "node_modules/@emnapi/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-__VERSION__.tgz", +@@ -1717,13 +1552,6 @@ + "@jridgewell/sourcemap-codec": "__VERSION__" + } + }, +- "node_modules/@keyv/serialize": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-__VERSION__.tgz", +@@ -1746,44 +1574,6 @@ + "@emnapi/runtime": "__VERSION__ || __VERSION__" + } + }, +- "node_modules/@nodelib/fs.scandir": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.stat": "__VERSION__", +- "run-parallel": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/@nodelib/fs.stat": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/@nodelib/fs.walk": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.scandir": "__VERSION__", +- "fastq": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, + "node_modules/@pkgr/core": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-__VERSION__.tgz", +@@ -2515,16 +2305,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/array-union": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/array-union/-/array-union-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/array.prototype.findlastindex": { + "version": "__VERSION__", + "dev": true, +@@ -2599,14 +2379,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/astral-regex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/async-function": { + "version": "__VERSION__", + "dev": true, +@@ -2767,19 +2539,6 @@ + "concat-map": "__VERSION__" + } + }, +- "node_modules/braces": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/braces/-/braces-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fill-range": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/browserslist": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-__VERSION__.tgz", +@@ -2831,30 +2590,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/cacheable": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@cacheable/memory": "__VERSION__", +- "@cacheable/utils": "__VERSION__", +- "hookified": "__VERSION__", +- "keyv": "__VERSION__", +- "qified": "__VERSION__" +- } +- }, +- "node_modules/cacheable/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, + "node_modules/call-bind": { + "version": "__VERSION__", + "dev": true, +@@ -3053,11 +2788,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/colord": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/comment-parser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", +@@ -3080,33 +2810,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/cosmiconfig": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "env-paths": "__VERSION__", +- "import-fresh": "__VERSION__", +- "js-yaml": "__VERSION__", +- "parse-json": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/d-fischer" +- }, +- "peerDependencies": { +- "typescript": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "typescript": { +- "optional": true +- } +- } +- }, + "node_modules/cross-spawn": { + "version": "__VERSION__", + "dev": true, +@@ -3120,14 +2823,6 @@ + "node": ">= 8" + } + }, +- "node_modules/css-functions-list": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/css-tree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-__VERSION__.tgz", +@@ -3142,19 +2837,6 @@ + "node": "^10 || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/cssesc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "cssesc": "bin/cssesc" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/data-urls": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-__VERSION__.tgz", +@@ -3322,19 +3004,6 @@ + "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" + } + }, +- "node_modules/dir-glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "path-type": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/doctrine": { + "version": "__VERSION__", + "dev": true, +@@ -3397,16 +3066,6 @@ + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, +- "node_modules/env-paths": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/error-ex": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-__VERSION__.tgz", +@@ -4153,36 +3812,6 @@ + "dev": true, + "license": "Apache-2.0" + }, +- "node_modules/fast-glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.stat": "__VERSION__", +- "@nodelib/fs.walk": "__VERSION__", +- "glob-parent": "__VERSION__", +- "merge2": "__VERSION__", +- "micromatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/fast-glob/node_modules/glob-parent": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "is-glob": "__VERSION__" +- }, +- "engines": { +- "node": ">= 6" +- } +- }, + "node_modules/fast-json-stable-stringify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-__VERSION__.tgz", +@@ -4195,39 +3824,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/fast-uri": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/fastify" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/fastify" +- } +- ], +- "license": "BSD-3-Clause" +- }, +- "node_modules/fastest-levenshtein": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/fastq": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fastq/-/fastq-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "reusify": "__VERSION__" +- } +- }, + "node_modules/fb-watchman": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-__VERSION__.tgz", +@@ -4251,19 +3847,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/fill-range": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "to-regex-range": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/find-up": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-__VERSION__.tgz", +@@ -4533,41 +4116,6 @@ + "url": "https://github.com/sponsors/isaacs" + } + }, +- "node_modules/global-modules": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "global-prefix": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/global-prefix": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ini": "__VERSION__", +- "kind-of": "__VERSION__", +- "which": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/global-prefix/node_modules/which": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "isexe": "__VERSION__" +- }, +- "bin": { +- "which": "bin/which" +- } +- }, + "node_modules/globals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +@@ -4596,32 +4144,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/globby": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globby/-/globby-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-union": "__VERSION__", +- "dir-glob": "__VERSION__", +- "fast-glob": "__VERSION__", +- "ignore": "__VERSION__", +- "merge2": "__VERSION__", +- "slash": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/globjoin": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/gopd": { + "version": "__VERSION__", + "dev": true, +@@ -4709,19 +4231,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/hashery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hashery/-/hashery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/hasown": { + "version": "__VERSION__", + "dev": true, +@@ -4733,13 +4242,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/hookified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/html-encoding-sniffer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-__VERSION__.tgz", +@@ -4775,19 +4277,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/html-tags": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/human-signals": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-__VERSION__.tgz", +@@ -4857,11 +4346,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/ini": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC" +- }, + "node_modules/internal-slot": { + "version": "__VERSION__", + "dev": true, +@@ -5092,16 +4576,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/is-number": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/is-number/-/is-number-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/is-number-object": { + "version": "__VERSION__", + "dev": true, +@@ -5117,16 +4591,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/is-plain-object": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/is-potential-custom-element-name": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-__VERSION__.tgz", +@@ -6171,21 +5635,6 @@ + "json-buffer": "__VERSION__" + } + }, +- "node_modules/kind-of": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/known-css-properties": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/leven": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/leven/-/leven-__VERSION__.tgz", +@@ -6233,11 +5682,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/lodash.truncate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/lru-cache": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-__VERSION__.tgz", +@@ -6295,17 +5739,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/mathml-tag-names": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/wooorm" +- } +- }, + "node_modules/mdn-data": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-__VERSION__.tgz", +@@ -6313,19 +5746,6 @@ + "dev": true, + "license": "CC0-1.0" + }, +- "node_modules/meow": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/meow/-/meow-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/merge-stream": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-__VERSION__.tgz", +@@ -6333,43 +5753,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/merge2": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/merge2/-/merge2-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/micromatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "braces": "__VERSION__", +- "picomatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/micromatch/node_modules/picomatch": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/jonschlinkert" +- } +- }, + "node_modules/mimic-fn": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-__VERSION__.tgz", +@@ -6416,25 +5799,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/nanoid": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "license": "MIT", +- "bin": { +- "nanoid": "bin/nanoid.cjs" +- }, +- "engines": { +- "node": "^10 || ^12 || ^13.7 || ^14 || >=__VERSION__" +- } +- }, + "node_modules/napi-postinstall": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-__VERSION__.tgz", +@@ -6791,16 +6155,6 @@ + "node": "20 || >=22" + } + }, +- "node_modules/path-type": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/path-type/-/path-type-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/picocolors": { + "version": "__VERSION__", + "dev": true, +@@ -6850,96 +6204,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/postcss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss/-/postcss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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": "__VERSION__", +- "picocolors": "__VERSION__", +- "source-map-js": "__VERSION__" +- }, +- "engines": { +- "node": "^10 || ^12 || >=14" +- } +- }, +- "node_modules/postcss-resolve-nested-selector": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/postcss-safe-parser": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/postcss/" +- }, +- { +- "type": "tidelift", +- "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, +- "node_modules/postcss-selector-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cssesc": "__VERSION__", +- "util-deprecate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/postcss-sorting": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, +- "node_modules/postcss-value-parser": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/prelude-ls": { + "version": "__VERSION__", + "dev": true, +@@ -7031,47 +6295,6 @@ + ], + "license": "MIT" + }, +- "node_modules/qified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/qified/-/qified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/qified/node_modules/hookified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/queue-microtask": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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/ramda": { + "version": "__VERSION__", + "dev": true, +@@ -7208,41 +6431,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/reusify": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/reusify/-/reusify-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "iojs": "__VERSION__", +- "node": "__VERSION__" +- } +- }, +- "node_modules/run-parallel": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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": "__VERSION__" +- } +- }, + "node_modules/safe-array-concat": { + "version": "__VERSION__", + "dev": true, +@@ -7466,22 +6654,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/slice-ansi": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ansi-styles": "__VERSION__", +- "astral-regex": "__VERSION__", +- "is-fullwidth-code-point": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/slice-ansi?sponsor=1" +- } +- }, + "node_modules/source-map": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-__VERSION__.tgz", +@@ -7698,173 +6870,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/stylelint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-syntax-patches-for-csstree": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__", +- "@csstools/media-query-list-parser": "__VERSION__", +- "@csstools/selector-specificity": "__VERSION__", +- "@dual-bundle/import-meta-resolve": "__VERSION__", +- "balanced-match": "__VERSION__", +- "colord": "__VERSION__", +- "cosmiconfig": "__VERSION__", +- "css-functions-list": "__VERSION__", +- "css-tree": "__VERSION__", +- "debug": "__VERSION__", +- "fast-glob": "__VERSION__", +- "fastest-levenshtein": "__VERSION__", +- "file-entry-cache": "__VERSION__", +- "global-modules": "__VERSION__", +- "globby": "__VERSION__", +- "globjoin": "__VERSION__", +- "html-tags": "__VERSION__", +- "ignore": "__VERSION__", +- "imurmurhash": "__VERSION__", +- "is-plain-object": "__VERSION__", +- "known-css-properties": "__VERSION__", +- "mathml-tag-names": "__VERSION__", +- "meow": "__VERSION__", +- "micromatch": "__VERSION__", +- "normalize-path": "__VERSION__", +- "picocolors": "__VERSION__", +- "postcss": "__VERSION__", +- "postcss-resolve-nested-selector": "__VERSION__", +- "postcss-safe-parser": "__VERSION__", +- "postcss-selector-parser": "__VERSION__", +- "postcss-value-parser": "__VERSION__", +- "resolve-from": "__VERSION__", +- "string-width": "__VERSION__", +- "supports-hyperlinks": "__VERSION__", +- "svg-tags": "__VERSION__", +- "table": "__VERSION__", +- "write-file-atomic": "__VERSION__" +- }, +- "bin": { +- "stylelint": "bin/stylelint.mjs" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-recommended": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-standard": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "stylelint-config-recommended": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint-order": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "postcss": "__VERSION__", +- "postcss-sorting": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__ || __VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/balanced-match": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/stylelint/node_modules/file-entry-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flat-cache": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/flat-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cacheable": "__VERSION__", +- "flatted": "__VERSION__", +- "hookified": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/ignore": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 4" +- } +- }, + "node_modules/supports-color": { + "version": "__VERSION__", + "dev": true, +@@ -7876,23 +6881,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/supports-hyperlinks": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-flag": "__VERSION__", +- "supports-color": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" +- } +- }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "__VERSION__", + "dev": true, +@@ -7904,10 +6892,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/svg-tags": { +- "version": "__VERSION__", +- "dev": true +- }, + "node_modules/symbol-tree": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-__VERSION__.tgz", +@@ -7931,41 +6915,6 @@ + "url": "https://opencollective.com/synckit" + } + }, +- "node_modules/table": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "ajv": "__VERSION__", +- "lodash.truncate": "__VERSION__", +- "slice-ansi": "__VERSION__", +- "string-width": "__VERSION__", +- "strip-ansi": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/table/node_modules/ajv": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-deep-equal": "__VERSION__", +- "fast-uri": "__VERSION__", +- "json-schema-traverse": "__VERSION__", +- "require-from-string": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/epoberezkin" +- } +- }, +- "node_modules/table/node_modules/json-schema-traverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/test-exclude": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-__VERSION__.tgz", +@@ -8047,19 +6996,6 @@ + "dev": true, + "license": "BSD-3-Clause" + }, +- "node_modules/to-regex-range": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-number": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/to-valid-identifier": { + "version": "__VERSION__", + "dev": true, +@@ -8336,13 +7272,6 @@ + "dependencies": { + "punycode": "__VERSION__" + } +- }, +- "node_modules/util-deprecate": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" + }, + "node_modules/v8-to-istanbul": { + "version": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/package.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/package.json index fe37c7513a..c46a5b6eac 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/package.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/package.json @@ -1,25 +1,26 @@ @@ -9,11 +9,9 @@ }, "scripts": { - "lint-js": "eslint web/modules/custom --ext .js --max-warnings=0 --no-error-on-unmatched-pattern", + "lint-js": "eslint web/modules/custom --max-warnings=0 --no-error-on-unmatched-pattern", - "lint-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\"", -- "lint": "yarn run lint-js && yarn run lint-css", -+ "lint": "yarn run lint-js", - "lint-fix-js": "eslint web/modules/custom --ext .js --no-error-on-unmatched-pattern --fix", +- "lint": "npm run lint-js && npm run lint-css", ++ "lint": "npm run lint-js", + "lint-fix-js": "eslint web/modules/custom --no-error-on-unmatched-pattern --fix", - "lint-fix-css": "stylelint --allow-empty-input \"web/modules/custom/**/*.css\" --fix", -- "lint-fix": "yarn run lint-fix-js && yarn run lint-fix-css", -+ "lint-fix": "yarn run lint-fix-js", +- "lint-fix": "npm run lint-fix-js && npm run lint-fix-css", ++ "lint-fix": "npm run lint-fix-js", "test": "jest --coverage --passWithNoTests" }, "devDependencies": { -@@ -28,9 +26,6 @@ - "eslint-plugin-no-jquery": "__VERSION__", +@@ -30,10 +28,7 @@ "eslint-plugin-prettier": "__VERSION__", "eslint-plugin-yml": "__VERSION__", + "globals": "__VERSION__", - "prettier": "__VERSION__", - "stylelint": "__VERSION__", - "stylelint-config-standard": "__VERSION__", - "stylelint-order": "__VERSION__" + "prettier": "__VERSION__" - } - } + }, + "overrides": { + "test-exclude": "__VERSION__", diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/web/themes/custom/star_wars/-eslint.config.mjs b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/web/themes/custom/star_wars/-eslint.config.mjs new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/web/themes/custom/star_wars/-package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/web/themes/custom/star_wars/-package-lock.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig/.ahoy.yml index 22e129cf40..067fce807f 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig/.ahoy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig/.ahoy.yml @@ -3,14 +3,14 @@ usage: Lint front-end code. cmd: | - ahoy cli vendor/bin/twig-cs-fixer lint - ahoy cli "yarn run lint" - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" + ahoy cli "npm run lint" + ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" @@ -238,7 +237,6 @@ lint-fe-fix: usage: Fix lint issues of front-end code. cmd: | - ahoy cli vendor/bin/twig-cs-fixer lint --fix - ahoy cli "yarn run lint-fix" - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" + ahoy cli "npm run lint-fix" + ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig/.gitignore b/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig/.gitignore index ce68729374..8a8ad2ca1f 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig/.gitignore +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig/.gitignore @@ -1,4 +1,4 @@ -@@ -51,7 +51,6 @@ +@@ -53,7 +53,6 @@ .data .logs .phpunit.cache diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig/composer.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig/composer.json index c660c875a5..c049863d83 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig/composer.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig/composer.json @@ -1,10 +1,10 @@ -@@ -59,8 +59,7 @@ - "phpstan/phpstan": "__VERSION__", +@@ -60,8 +60,7 @@ "phpunit/phpunit": "__VERSION__", "pyrech/composer-changelogs": "__VERSION__", -- "rector/rector": "__VERSION__", + "rector/rector": "__VERSION__", +- "softcreatr/jsonpath": "^0.10 || ^1.0", - "vincentlanglet/twig-cs-fixer": "__VERSION__" -+ "rector/rector": "__VERSION__" ++ "softcreatr/jsonpath": "^0.10 || ^1.0" }, "conflict": { "drupal/drupal": "*" diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig_circleci/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig_circleci/.ahoy.yml index 22e129cf40..067fce807f 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig_circleci/.ahoy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig_circleci/.ahoy.yml @@ -3,14 +3,14 @@ usage: Lint front-end code. cmd: | - ahoy cli vendor/bin/twig-cs-fixer lint - ahoy cli "yarn run lint" - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" + ahoy cli "npm run lint" + ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" @@ -238,7 +237,6 @@ lint-fe-fix: usage: Fix lint issues of front-end code. cmd: | - ahoy cli vendor/bin/twig-cs-fixer lint --fix - ahoy cli "yarn run lint-fix" - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" + ahoy cli "npm run lint-fix" + ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig_circleci/.circleci/config.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig_circleci/.circleci/config.yml index 10fc6eb4c2..0521c41e9b 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig_circleci/.circleci/config.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig_circleci/.circleci/config.yml @@ -139,7 +139,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Validate Composer configuration is normalized @@ -163,13 +163,13 @@ jobs: - run: name: Lint module code with NodeJS linters - command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Lint theme code with NodeJS linters command: | [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 - docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] + docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ] # Audit job runs in its own workflow, independently of the commit workflow. audit: @@ -180,14 +180,15 @@ jobs: - *step_setup_remote_docker - - run: - name: Scan for committed secrets with Gitleaks - command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] - - run: name: Audit Composer packages command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ] + - run: + name: Scan for committed secrets with Gitleaks + when: always + command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:__VERSION__ dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ] + # Test the provisioned site. Runs in parallel with the lint and build jobs. # Provisioning and testing happen within the same job to save time on # re-provisioning. @@ -202,6 +203,28 @@ jobs: - *step_process_codebase_for_ci - *load_variables_from_dotenv + - run: + name: Set test runner roles + command: | + # Which tools run on this node. Tools that only need to run once are + # pinned to the first node. Add a line for every additional tool and + # reference it in that tool's step. + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + { + echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}" + echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}" + echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)" + # Runs on every node, using the `p` profile. + echo "export VORTEX_CI_IS_BEHAT_RUNNER=1" + # Subtracted from the node index to derive the profile number. + # Raise it by one for every leading node that does not run + # Behat, so the first Behat node still selects the `p0` + # catch-all profile. + echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0" + } >> "${BASH_ENV}" + - run: name: Validate Composer configuration command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ] @@ -254,10 +277,10 @@ jobs: name: Export DB after fetch command: | [ ! -f /tmp/fetch-db-success ] && echo "==> Database fetch semaphore file is missing. DB export will not proceed." && exit 0 - docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true + docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision" ./vendor/bin/vortex-export-db db.sql - docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true + docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true no_output_timeout: 30m # Save the clean DB dump to the cache before the slow dev-dependency @@ -299,7 +322,7 @@ jobs: docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" - docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" + docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - run: name: Provision site @@ -308,7 +331,7 @@ jobs: # container to avoid holding two copies for the rest of the job. if [ -f .data/db.sql ]; then docker compose exec cli mkdir -p .data - docker compose cp -L .data/db.sql cli:/app/.data/db.sql + docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql rm -f .data/db.sql fi docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision @@ -316,27 +339,29 @@ jobs: - run: name: Test with Jest - command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] + command: | + [ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0 + docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Test with PHPUnit command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ] - run: name: Process PHPUnit logs and coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 mkdir -p "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" fi - run: name: Extract code coverage command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.') PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)" @@ -345,14 +370,14 @@ jobs: - run: name: Post coverage summary as PR comment command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0 .circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt - run: name: Check code coverage threshold command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0 if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%" exit 1 @@ -361,7 +386,7 @@ jobs: - run: name: Validate Single Directory Components command: | - [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0 + [ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0 [ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0 output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1) echo "${output}" @@ -373,10 +398,11 @@ jobs: - run: name: Test with Behat command: | - if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi + [ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0 + if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ - docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ + docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ [ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ] no_output_timeout: 30m @@ -385,9 +411,9 @@ jobs: command: | mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}" if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then - docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" + docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/" if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then - docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" + docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/" fi fi when: always diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig_circleci/.gitignore b/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig_circleci/.gitignore index ce68729374..8a8ad2ca1f 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig_circleci/.gitignore +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig_circleci/.gitignore @@ -1,4 +1,4 @@ -@@ -51,7 +51,6 @@ +@@ -53,7 +53,6 @@ .data .logs .phpunit.cache diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig_circleci/composer.json b/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig_circleci/composer.json index c660c875a5..c049863d83 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig_circleci/composer.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_no_twig_circleci/composer.json @@ -1,10 +1,10 @@ -@@ -59,8 +59,7 @@ - "phpstan/phpstan": "__VERSION__", +@@ -60,8 +60,7 @@ "phpunit/phpunit": "__VERSION__", "pyrech/composer-changelogs": "__VERSION__", -- "rector/rector": "__VERSION__", + "rector/rector": "__VERSION__", +- "softcreatr/jsonpath": "^0.10 || ^1.0", - "vincentlanglet/twig-cs-fixer": "__VERSION__" -+ "rector/rector": "__VERSION__" ++ "softcreatr/jsonpath": "^0.10 || ^1.0" }, "conflict": { "drupal/drupal": "*" diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_none/-eslint.config.mjs b/.vortex/cli/tests/Fixtures/handler_process/tools_none/-eslint.config.mjs new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_none/-package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_none/-package-lock.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_none/.ahoy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_none/.ahoy.yml index 54987f9933..43f2735563 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_none/.ahoy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_none/.ahoy.yml @@ -1,4 +1,4 @@ -@@ -192,29 +192,13 @@ +@@ -192,29 +192,11 @@ lint: usage: Lint back-end and front-end code. cmd: | @@ -17,9 +17,9 @@ usage: Lint front-end code. cmd: | - ahoy cli vendor/bin/twig-cs-fixer lint -- ahoy cli "yarn run lint" - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" - +- ahoy cli "npm run lint" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" +- - lint-tests: - usage: Lint tests code. - cmd: | @@ -28,7 +28,7 @@ lint-sdc: usage: Validate Single Directory Components (requires a provisioned site). cmd: | -@@ -226,51 +210,12 @@ +@@ -226,52 +208,11 @@ lint-fix: usage: Fix lint issues of back-end and front-end code. cmd: | @@ -45,8 +45,8 @@ usage: Fix lint issues of front-end code. cmd: | - ahoy cli vendor/bin/twig-cs-fixer lint --fix -- ahoy cli "yarn run lint-fix" - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" +- ahoy cli "npm run lint-fix" +- ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix" - - test: - usage: Run all PHPUnit tests. @@ -71,12 +71,13 @@ - - test-js: - usage: Run Jest JavaScript unit tests. -- cmd: ahoy cli "yarn test" +- cmd: ahoy cli "npm test" - - test-bdd: - usage: Run BDD tests. - aliases: [test-behat] - cmd: ahoy cli php -d memory_limit=-1 vendor/bin/behat --colors "$@" - +- debug: usage: Enable PHP Xdebug. + aliases: [xdebug] diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_none/.github/workflows/build-test-deploy.yml b/.vortex/cli/tests/Fixtures/handler_process/tools_none/.github/workflows/build-test-deploy.yml index 6950ec5fa7..716b80a76f 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_none/.github/workflows/build-test-deploy.yml +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_none/.github/workflows/build-test-deploy.yml @@ -16,11 +16,11 @@ - name: Build stack run: docker compose up --no-deps --detach cli -@@ -125,36 +114,11 @@ +@@ -125,41 +114,11 @@ docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" -- docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" +- docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - name: Validate Composer configuration is normalized run: docker compose exec -T cli composer normalize --dry-run @@ -47,44 +47,65 @@ - continue-on-error: ${{ vars.VORTEX_CI_GHERKIN_LINT_IGNORE_FAILURE == '1' }} - - - name: Lint module code with NodeJS linters -- run: docker compose exec -T cli bash -c "yarn run lint" +- run: docker compose exec -T cli bash -c "npm run lint" - continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} - - - name: Lint theme code with NodeJS linters - if: ${{ vars.VORTEX_FRONTEND_BUILD_SKIP != '1' }} - run: docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" -@@ -290,7 +254,6 @@ +- - name: Lint theme code with NodeJS linters +- if: ${{ vars.VORTEX_FRONTEND_BUILD_SKIP != '1' }} +- run: docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" +- continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }} +- + test: + runs-on: ubuntu-latest + if: ${{ !inputs.deploy_target && (github.event_name == 'push' || !startsWith(github.head_ref, 'project/')) }} +@@ -199,15 +158,7 @@ + # https://www.vortextemplate.com/docs/continuous-integration#test-parallelism + VORTEX_CI_RUNNER_INDEX: ${{ strategy.job-index }} + VORTEX_CI_RUNNER_TOTAL: ${{ strategy.job-total }} +- VORTEX_CI_IS_JEST_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- VORTEX_CI_IS_PHPUNIT_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + VORTEX_CI_IS_SDC_DEVEL_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- # Runs on every instance, using the `p` profile. +- VORTEX_CI_IS_BEHAT_RUNNER: true +- # Subtracted from the instance index to derive the profile number. Raise +- # it by one for every leading instance that does not run Behat, so the +- # first Behat instance still selects the `p0` catch-all profile. +- VORTEX_CI_BEHAT_PROFILE_OFFSET: 0 + + steps: + # Frees disk space by removing preinstalled toolchains unused by this project. +@@ -316,7 +267,6 @@ docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \ if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \ COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist" -- docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile" +- docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci" - name: Provision site run: | -@@ -304,71 +267,6 @@ +@@ -330,71 +280,6 @@ docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision timeout-minutes: 30 - - name: Test with Jest -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} -- run: docker compose exec -T cli bash -c "yarn test" +- if: ${{ env.VORTEX_CI_IS_JEST_RUNNER == 'true' }} +- run: docker compose exec -T cli bash -c "npm test" - continue-on-error: ${{ vars.VORTEX_CI_JEST_IGNORE_FAILURE == '1' }} - - - name: Test with PHPUnit -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} - run: docker compose exec -T cli vendor/bin/phpunit - continue-on-error: ${{ vars.VORTEX_CI_PHPUNIT_IGNORE_FAILURE == '1' }} - - - name: Process PHPUnit logs and coverage -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} - run: | - mkdir -p ".logs" - if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then -- docker compose cp cli:/app/.logs/. ".logs/" +- docker compose --progress quiet cp cli:/app/.logs/. ".logs/" - fi - - - name: Extract code coverage -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} - run: | - RATE=$(grep -om1 'line-rate="[0-9.]*"' .logs/coverage/phpunit/cobertura.xml | tr -cd '0-9.') - PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}") @@ -102,7 +123,7 @@ - VORTEX_CI_CODE_COVERAGE_THRESHOLD: ${{ vars.VORTEX_CI_CODE_COVERAGE_THRESHOLD || '90' }} - - - name: Post coverage summary as PR comment -- if: ${{ github.event_name == 'pull_request' && (matrix.instance == 0 || strategy.job-total == 1) && vars.VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP != '1' }} +- if: ${{ github.event_name == 'pull_request' && env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' && vars.VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP != '1' }} - uses: marocchino/sticky-pull-request-comment@__HASH__ # __VERSION__ - with: - header: coverage-gha @@ -121,7 +142,7 @@ - hide_and_recreate: true - - - name: Check code coverage threshold -- if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} +- if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }} - run: | - if [ "${COVERAGE_PERCENT//.}" -lt "$((VORTEX_CI_CODE_COVERAGE_THRESHOLD*100))" ]; then - echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD}%" @@ -131,30 +152,29 @@ - VORTEX_CI_CODE_COVERAGE_THRESHOLD: ${{ vars.VORTEX_CI_CODE_COVERAGE_THRESHOLD || '90' }} - - name: Validate Single Directory Components - if: ${{ matrix.instance == 0 || strategy.job-total == 1 }} + if: ${{ env.VORTEX_CI_IS_SDC_DEVEL_RUNNER == 'true' }} run: | -@@ -381,20 +279,6 @@ +@@ -407,19 +292,6 @@ fi continue-on-error: ${{ vars.VORTEX_CI_SDC_DEVEL_IGNORE_FAILURE == '1' }} - - name: Test with Behat +- if: ${{ env.VORTEX_CI_IS_BEHAT_RUNNER == 'true' }} - run: | - # shellcheck disable=SC2170 -- if [ "${STRATEGY_JOB_TOTAL}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${STRATEGY_JOB_INDEX}}"; fi +- if [ "${VORTEX_CI_RUNNER_TOTAL}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi - echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile" -- docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ -- docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" +- docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \ +- docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" - env: - VORTEX_CI_BEHAT_PROFILE: ${{ vars.VORTEX_CI_BEHAT_PROFILE }} -- STRATEGY_JOB_TOTAL: ${{ strategy.job-total }} -- STRATEGY_JOB_INDEX: ${{ strategy.job-index }} - continue-on-error: ${{ vars.VORTEX_CI_BEHAT_IGNORE_FAILURE == '1' }} - timeout-minutes: 30 - - name: Process test logs and artifacts if: always() run: | -@@ -411,16 +295,6 @@ +@@ -436,16 +308,6 @@ path: .logs include-hidden-files: true if-no-files-found: error diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_none/.gitignore b/.vortex/cli/tests/Fixtures/handler_process/tools_none/.gitignore index c6a1337389..50c5849c5b 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_none/.gitignore +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_none/.gitignore @@ -1,4 +1,4 @@ -@@ -50,8 +50,6 @@ +@@ -52,8 +52,6 @@ .artifacts .data .logs diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_none/composer.json b/.vortex/cli/tests/Fixtures/handler_process/tools_none/composer.json index 266fd24116..dd3b4bce9e 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_none/composer.json +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_none/composer.json @@ -1,4 +1,4 @@ -@@ -38,29 +38,11 @@ +@@ -38,30 +38,12 @@ "webflo/drupal-finder": "__VERSION__" }, "require-dev": { @@ -22,14 +22,15 @@ - "phpstan/extension-installer": "__VERSION__", - "phpstan/phpstan": "__VERSION__", - "phpunit/phpunit": "__VERSION__", -- "pyrech/composer-changelogs": "__VERSION__", + "pyrech/composer-changelogs": "__VERSION__", - "rector/rector": "__VERSION__", +- "softcreatr/jsonpath": "^0.10 || ^1.0", - "vincentlanglet/twig-cs-fixer": "__VERSION__" -+ "pyrech/composer-changelogs": "__VERSION__" ++ "softcreatr/jsonpath": "^0.10 || ^1.0" }, "conflict": { "drupal/drupal": "*" -@@ -73,20 +55,13 @@ +@@ -74,20 +56,13 @@ ], "minimum-stability": "stable", "prefer-stable": true, diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_none/docs/testing.md b/.vortex/cli/tests/Fixtures/handler_process/tools_none/docs/testing.md index 60ba6f00a8..eea38786eb 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_none/docs/testing.md +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_none/docs/testing.md @@ -7,7 +7,7 @@ - -Unit, Kernel, Functional tests. - --See [documentation](https://www.vortextemplate.com/docs/development/phpunit) +-See [documentation](https://www.vortextemplate.com/docs/development/testing/phpunit) -on how to run tests, configure environment variables and code coverage, and use -test reports in continuous integration pipeline. - @@ -141,7 +141,7 @@ - -BDD end-to-end tests. - --See [documentation](https://www.vortextemplate.com/docs/development/behat) +-See [documentation](https://www.vortextemplate.com/docs/development/testing/behat) -on how to run Behat tests, configure environment variables, and use test reports -in continuous integration pipeline. - diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_none/tests/behat/features/-password_reset.feature b/.vortex/cli/tests/Fixtures/handler_process/tools_none/tests/behat/features/-password_reset.feature new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_none/tests/behat/features/-redirect.feature b/.vortex/cli/tests/Fixtures/handler_process/tools_none/tests/behat/features/-redirect.feature new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_none/tests/behat/fixtures/-response.json b/.vortex/cli/tests/Fixtures/handler_process/tools_none/tests/behat/fixtures/-response.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_none/tests/behat/fixtures/-response.xml b/.vortex/cli/tests/Fixtures/handler_process/tools_none/tests/behat/fixtures/-response.xml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_none/web/sites/default/settings.php b/.vortex/cli/tests/Fixtures/handler_process/tools_none/web/sites/default/settings.php index 74bc259741..55559c353d 100644 --- a/.vortex/cli/tests/Fixtures/handler_process/tools_none/web/sites/default/settings.php +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_none/web/sites/default/settings.php @@ -1,6 +1,6 @@ @@ -14,10 +14,6 @@ * environments. - * @see https://www.vortextemplate.com/docs/drupal/settings + * @see https://www.vortextemplate.com/docs/development/settings * - * phpcs:disable Drupal.Commenting.InlineComment.NoSpaceBefore - * phpcs:disable Drupal.Commenting.InlineComment.SpacingAfter diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_none/web/themes/custom/star_wars/README.md b/.vortex/cli/tests/Fixtures/handler_process/tools_none/web/themes/custom/star_wars/README.md new file mode 100644 index 0000000000..3d20bae61b --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_none/web/themes/custom/star_wars/README.md @@ -0,0 +1,6 @@ +@@ -20,5 +20,3 @@ + | `npm run build` | Production build (minified, no source maps) | + | `npm run build-dev` | Development build (expanded, with source maps) | + | `npm run watch` | Watch for changes and rebuild automatically | +-| `npm run lint` | Check code style (JS and SCSS) | +-| `npm run lint-fix` | Fix code style issues automatically | diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_none/web/themes/custom/star_wars/package-lock.json b/.vortex/cli/tests/Fixtures/handler_process/tools_none/web/themes/custom/star_wars/package-lock.json new file mode 100644 index 0000000000..b755e7a9be --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_none/web/themes/custom/star_wars/package-lock.json @@ -0,0 +1,4550 @@ +@@ -9,520 +9,15 @@ + "version": "__VERSION__", + "hasInstallScript": true, + "devDependencies": { +- "@eslint/compat": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@homer0/prettier-plugin-jsdoc": "__VERSION__", + "autoprefixer": "__VERSION__", + "chokidar-cli": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": "__VERSION__", +- "eslint-plugin-import": "__VERSION__", +- "eslint-plugin-jsdoc": "__VERSION__", +- "eslint-plugin-no-jquery": "__VERSION__", +- "eslint-plugin-prettier": "__VERSION__", +- "eslint-plugin-yml": "__VERSION__", +- "globals": "__VERSION__", + "patch-package": "__VERSION__", + "postcss": "__VERSION__", + "postcss-cli": "__VERSION__", +- "prettier": "__VERSION__", + "sass": "__VERSION__", +- "stylelint": "__VERSION__", +- "stylelint-config-standard": "__VERSION__", +- "stylelint-config-standard-scss": "__VERSION__", +- "stylelint-order": "__VERSION__", +- "stylelint-scss": "__VERSION__", + "terser": "__VERSION__" + } + }, +- "node_modules/@babel/code-frame": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/helper-validator-identifier": "__VERSION__", +- "js-tokens": "__VERSION__", +- "picocolors": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@babel/helper-validator-identifier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@cacheable/utils": "__VERSION__", +- "@keyv/bigmap": "__VERSION__", +- "hookified": "__VERSION__", +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hashery": "__VERSION__", +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": ">= 18" +- }, +- "peerDependencies": { +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/memory/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hashery": "__VERSION__", +- "keyv": "__VERSION__" +- } +- }, +- "node_modules/@cacheable/utils/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, +- "node_modules/@csstools/css-parser-algorithms": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@csstools/css-syntax-patches-for-csstree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT-0", +- "peerDependencies": { +- "css-tree": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "css-tree": { +- "optional": true +- } +- } +- }, +- "node_modules/@csstools/css-tokenizer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@csstools/media-query-list-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__" +- } +- }, +- "node_modules/@csstools/selector-specificity": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/csstools" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/csstools" +- } +- ], +- "license": "MIT-0", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss-selector-parser": "__VERSION__" +- } +- }, +- "node_modules/@dual-bundle/import-meta-resolve": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/JounQin" +- } +- }, +- "node_modules/@es-joy/jsdoccomment": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/estree": "__VERSION__", +- "@typescript-eslint/types": "__VERSION__", +- "comment-parser": "__VERSION__", +- "esquery": "__VERSION__", +- "jsdoc-type-pratt-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- } +- }, +- "node_modules/@es-joy/resolve.exports": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@eslint-community/eslint-utils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint-community/regexpp": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/compat": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "peerDependencies": { +- "eslint": "^8.40 || 9 || 10" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- } +- } +- }, +- "node_modules/@eslint/compat/node_modules/@eslint/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@types/json-schema": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- } +- }, +- "node_modules/@eslint/config-array": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/object-schema": "__VERSION__", +- "debug": "__VERSION__", +- "minimatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/config-helpers": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@types/json-schema": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/eslintrc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ajv": "__VERSION__", +- "debug": "__VERSION__", +- "espree": "__VERSION__", +- "globals": "__VERSION__", +- "ignore": "__VERSION__", +- "import-fresh": "__VERSION__", +- "js-yaml": "__VERSION__", +- "minimatch": "__VERSION__", +- "strip-json-comments": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/@eslint/eslintrc/node_modules/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/@eslint/js": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://eslint.org/donate" +- } +- }, +- "node_modules/@eslint/object-schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@eslint/plugin-kit": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@eslint/core": "__VERSION__", +- "levn": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/@homer0/prettier-plugin-jsdoc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@homer0/prettier-plugin-jsdoc/-/prettier-plugin-jsdoc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "comment-parser": "__VERSION__", +- "ramda": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "prettier": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/core": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@humanfs/types": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/node": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "@humanfs/core": "__VERSION__", +- "@humanfs/types": "__VERSION__", +- "@humanwhocodes/retry": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanfs/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/@humanwhocodes/module-importer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/nzakas" +- } +- }, +- "node_modules/@humanwhocodes/retry": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/nzakas" +- } +- }, + "node_modules/@jridgewell/gen-mapping": { + "version": "__VERSION__", + "dev": true, +@@ -563,51 +58,6 @@ + "@jridgewell/sourcemap-codec": "__VERSION__" + } + }, +- "node_modules/@keyv/serialize": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@nodelib/fs.scandir": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.stat": "__VERSION__", +- "run-parallel": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/@nodelib/fs.stat": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 8" +- } +- }, +- "node_modules/@nodelib/fs.walk": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.scandir": "__VERSION__", +- "fastq": "__VERSION__" +- }, +- "engines": { +- "node": ">= 8" +- } +- }, + "node_modules/@parcel/watcher": { + "version": "__VERSION__", + "dev": true, +@@ -944,64 +394,6 @@ + "url": "https://github.com/sponsors/jonschlinkert" + } + }, +- "node_modules/@pkgr/core": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/pkgr" +- } +- }, +- "node_modules/@rtsao/scc": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@sindresorhus/base62": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/@types/estree": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/json-schema": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/json5": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@typescript-eslint/types": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/typescript-eslint" +- } +- }, + "node_modules/@yarnpkg/lockfile": { + "version": "__VERSION__", + "dev": true, +@@ -1018,29 +410,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/acorn-jsx": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "acorn": "__VERSION__ || __VERSION__ || __VERSION__" +- } +- }, +- "node_modules/ajv": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-deep-equal": "__VERSION__", +- "fast-json-stable-stringify": "__VERSION__", +- "json-schema-traverse": "__VERSION__", +- "uri-js": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/epoberezkin" +- } +- }, + "node_modules/ansi-regex": { + "version": "__VERSION__", + "dev": true, +@@ -1075,155 +444,6 @@ + "node": ">= 8" + } + }, +- "node_modules/are-docs-informative": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/argparse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Python-2.0" +- }, +- "node_modules/array-buffer-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "is-array-buffer": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array-includes": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-string": "__VERSION__", +- "math-intrinsics": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array-union": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/array-union/-/array-union-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/array.prototype.findlastindex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array.prototype.flat": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/array.prototype.flatmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-shim-unscopables": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/arraybuffer.prototype.slice": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-buffer-byte-length": "__VERSION__", +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-array-buffer": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/astral-regex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/async-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/autoprefixer": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-__VERSION__.tgz", +@@ -1261,27 +481,6 @@ + "postcss": "__VERSION__" + } + }, +- "node_modules/available-typed-arrays": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "possible-typed-array-names": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/balanced-match": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/baseline-browser-mapping": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-__VERSION__.tgz", +@@ -1306,20 +505,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/brace-expansion": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "balanced-match": "__VERSION__", +- "concat-map": "__VERSION__" +- } +- }, +- "node_modules/brace-expansion/node_modules/balanced-match": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/braces": { + "version": "__VERSION__", + "dev": true, +@@ -1370,30 +555,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/cacheable": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@cacheable/memory": "__VERSION__", +- "@cacheable/utils": "__VERSION__", +- "hookified": "__VERSION__", +- "keyv": "__VERSION__", +- "qified": "__VERSION__" +- } +- }, +- "node_modules/cacheable/node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@keyv/serialize": "__VERSION__" +- } +- }, + "node_modules/call-bind": { + "version": "__VERSION__", + "dev": true, +@@ -1438,14 +599,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/callsites": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/camelcase": { + "version": "__VERSION__", + "dev": true, +@@ -1617,56 +770,11 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/colord": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/commander": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/comment-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/concat-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/cosmiconfig": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "env-paths": "__VERSION__", +- "import-fresh": "__VERSION__", +- "js-yaml": "__VERSION__", +- "parse-json": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/d-fischer" +- }, +- "peerDependencies": { +- "typescript": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "typescript": { +- "optional": true +- } +- } +- }, + "node_modules/cross-spawn": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-__VERSION__.tgz", +@@ -1698,106 +806,6 @@ + "node": ">= 8" + } + }, +- "node_modules/css-functions-list": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/css-tree": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "mdn-data": "__VERSION__", +- "source-map-js": "__VERSION__" +- }, +- "engines": { +- "node": "^10 || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/css-tree/node_modules/mdn-data": { +- "version": "__VERSION__", +- "dev": true, +- "license": "CC0-1.0" +- }, +- "node_modules/cssesc": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "cssesc": "bin/cssesc" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/data-view-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/data-view-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/inspect-js" +- } +- }, +- "node_modules/data-view-byte-offset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-data-view": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "supports-color": { +- "optional": true +- } +- } +- }, + "node_modules/decamelize": { + "version": "__VERSION__", + "dev": true, +@@ -1806,11 +814,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/deep-is": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/define-data-property": { + "version": "__VERSION__", + "dev": true, +@@ -1827,22 +830,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/define-properties": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "object-keys": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/dependency-graph": { + "version": "__VERSION__", + "dev": true, +@@ -1860,40 +847,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/diff-sequences": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, +- "node_modules/dir-glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "path-type": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/doctrine": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "dependencies": { +- "esutils": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/dunder-proto": { + "version": "__VERSION__", + "dev": true, +@@ -1919,106 +872,6 @@ + "dev": true, + "license": "MIT" + }, +- "node_modules/env-paths": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/error-ex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-arrayish": "__VERSION__" +- } +- }, +- "node_modules/es-abstract": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-buffer-byte-length": "__VERSION__", +- "arraybuffer.prototype.slice": "__VERSION__", +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "data-view-buffer": "__VERSION__", +- "data-view-byte-length": "__VERSION__", +- "data-view-byte-offset": "__VERSION__", +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "es-set-tostringtag": "__VERSION__", +- "es-to-primitive": "__VERSION__", +- "function.prototype.name": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "get-proto": "__VERSION__", +- "get-symbol-description": "__VERSION__", +- "globalthis": "__VERSION__", +- "gopd": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "has-proto": "__VERSION__", +- "has-symbols": "__VERSION__", +- "hasown": "__VERSION__", +- "internal-slot": "__VERSION__", +- "is-array-buffer": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-data-view": "__VERSION__", +- "is-negative-zero": "__VERSION__", +- "is-regex": "__VERSION__", +- "is-set": "__VERSION__", +- "is-shared-array-buffer": "__VERSION__", +- "is-string": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "is-weakref": "__VERSION__", +- "math-intrinsics": "__VERSION__", +- "object-inspect": "__VERSION__", +- "object-keys": "__VERSION__", +- "object.assign": "__VERSION__", +- "own-keys": "__VERSION__", +- "regexp.prototype.flags": "__VERSION__", +- "safe-array-concat": "__VERSION__", +- "safe-push-apply": "__VERSION__", +- "safe-regex-test": "__VERSION__", +- "set-proto": "__VERSION__", +- "stop-iteration-iterator": "__VERSION__", +- "string.prototype.trim": "__VERSION__", +- "string.prototype.trimend": "__VERSION__", +- "string.prototype.trimstart": "__VERSION__", +- "typed-array-buffer": "__VERSION__", +- "typed-array-byte-length": "__VERSION__", +- "typed-array-byte-offset": "__VERSION__", +- "typed-array-length": "__VERSION__", +- "unbox-primitive": "__VERSION__", +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/es-abstract-get": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "is-callable": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/es-define-property": { + "version": "__VERSION__", + "dev": true, +@@ -2046,49 +899,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/es-set-tostringtag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-shim-unscopables": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/es-to-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-abstract-get": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-date-object": "__VERSION__", +- "is-symbol": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/escalade": { + "version": "__VERSION__", + "dev": true, +@@ -2097,547 +907,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/escape-string-regexp": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/eslint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint/-/eslint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@eslint-community/eslint-utils": "__VERSION__", +- "@eslint-community/regexpp": "__VERSION__", +- "@eslint/config-array": "__VERSION__", +- "@eslint/config-helpers": "__VERSION__", +- "@eslint/core": "__VERSION__", +- "@eslint/eslintrc": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@eslint/plugin-kit": "__VERSION__", +- "@humanfs/node": "__VERSION__", +- "@humanwhocodes/module-importer": "__VERSION__", +- "@humanwhocodes/retry": "__VERSION__", +- "@types/estree": "__VERSION__", +- "ajv": "__VERSION__", +- "chalk": "__VERSION__", +- "cross-spawn": "__VERSION__", +- "debug": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "eslint-scope": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__", +- "espree": "__VERSION__", +- "esquery": "__VERSION__", +- "esutils": "__VERSION__", +- "fast-deep-equal": "__VERSION__", +- "file-entry-cache": "__VERSION__", +- "find-up": "__VERSION__", +- "glob-parent": "__VERSION__", +- "ignore": "__VERSION__", +- "imurmurhash": "__VERSION__", +- "is-glob": "__VERSION__", +- "json-stable-stringify-without-jsonify": "__VERSION__", +- "lodash.merge": "__VERSION__", +- "minimatch": "__VERSION__", +- "natural-compare": "__VERSION__", +- "optionator": "__VERSION__" +- }, +- "bin": { +- "eslint": "bin/eslint.js" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://eslint.org/donate" +- }, +- "peerDependencies": { +- "jiti": "*" +- }, +- "peerDependenciesMeta": { +- "jiti": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-compat-utils": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-compat-utils/node_modules/semver": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/semver/-/semver-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/eslint-config-prettier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "eslint-config-prettier": "bin/cli.js" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint-config-prettier" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-import-resolver-node": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__", +- "is-core-module": "__VERSION__", +- "resolve": "__VERSION__" +- } +- }, +- "node_modules/eslint-import-resolver-node/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-module-utils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-module-utils/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-import": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@rtsao/scc": "__VERSION__", +- "array-includes": "__VERSION__", +- "array.prototype.findlastindex": "__VERSION__", +- "array.prototype.flat": "__VERSION__", +- "array.prototype.flatmap": "__VERSION__", +- "debug": "__VERSION__", +- "doctrine": "__VERSION__", +- "eslint-import-resolver-node": "__VERSION__", +- "eslint-module-utils": "__VERSION__", +- "hasown": "__VERSION__", +- "is-core-module": "__VERSION__", +- "is-glob": "__VERSION__", +- "minimatch": "__VERSION__", +- "object.fromentries": "__VERSION__", +- "object.groupby": "__VERSION__", +- "object.values": "__VERSION__", +- "semver": "__VERSION__", +- "string.prototype.trimend": "__VERSION__", +- "tsconfig-paths": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || __VERSION__ || ^8 || ^9" +- } +- }, +- "node_modules/eslint-plugin-import/node_modules/debug": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ms": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "@es-joy/jsdoccomment": "__VERSION__", +- "@es-joy/resolve.exports": "__VERSION__", +- "are-docs-informative": "__VERSION__", +- "comment-parser": "__VERSION__", +- "debug": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "espree": "__VERSION__", +- "esquery": "__VERSION__", +- "html-entities": "__VERSION__", +- "object-deep-merge": "__VERSION__", +- "parse-imports-exports": "__VERSION__", +- "semver": "__VERSION__", +- "spdx-expression-parse": "__VERSION__", +- "to-valid-identifier": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=24" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__ || __VERSION__ || __VERSION__ || __VERSION__" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/espree": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "acorn": "__VERSION__", +- "acorn-jsx": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=24" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-plugin-jsdoc/node_modules/semver": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/eslint-plugin-no-jquery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "eslint": "__VERSION__", +- "oxlint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- }, +- "oxlint": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-plugin-prettier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prettier-linter-helpers": "__VERSION__", +- "synckit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint-plugin-prettier" +- }, +- "peerDependencies": { +- "@types/eslint": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": ">= __VERSION__ <__VERSION__ || >=__VERSION__", +- "prettier": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "@types/eslint": { +- "optional": true +- }, +- "eslint-config-prettier": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-plugin-yml": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "debug": "__VERSION__", +- "diff-sequences": "__VERSION__", +- "escape-string-regexp": "__VERSION__", +- "eslint-compat-utils": "__VERSION__", +- "natural-compare": "__VERSION__", +- "yaml-eslint-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ota-meshi" +- }, +- "peerDependencies": { +- "eslint": "__VERSION__" +- } +- }, +- "node_modules/eslint-scope": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "esrecurse": "__VERSION__", +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/eslint/node_modules/glob-parent": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "is-glob": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/espree": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/espree/-/espree-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "acorn": "__VERSION__", +- "acorn-jsx": "__VERSION__", +- "eslint-visitor-keys": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/espree/node_modules/eslint-visitor-keys": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" +- } +- }, +- "node_modules/esquery": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/esrecurse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "estraverse": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/estraverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/esutils": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/fast-deep-equal": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/fast-diff": { +- "version": "__VERSION__", +- "dev": true, +- "license": "Apache-2.0" +- }, +- "node_modules/fast-glob": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@nodelib/fs.stat": "__VERSION__", +- "@nodelib/fs.walk": "__VERSION__", +- "glob-parent": "__VERSION__", +- "merge2": "__VERSION__", +- "micromatch": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/fast-json-stable-stringify": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/fast-levenshtein": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/fast-uri": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/fastify" +- }, +- { +- "type": "opencollective", +- "url": "https://opencollective.com/fastify" +- } +- ], +- "license": "BSD-3-Clause" +- }, +- "node_modules/fastest-levenshtein": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/fastq": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/fastq/-/fastq-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "reusify": "__VERSION__" +- } +- }, +- "node_modules/file-entry-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flat-cache": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/fill-range": { + "version": "__VERSION__", + "dev": true, +@@ -2649,21 +918,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/find-up": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "locate-path": "__VERSION__", +- "path-exists": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/find-yarn-workspace-root": { + "version": "__VERSION__", + "dev": true, +@@ -2672,41 +926,6 @@ + "micromatch": "__VERSION__" + } + }, +- "node_modules/flat-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flatted": "__VERSION__", +- "keyv": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/flatted": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flatted/-/flatted-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC" +- }, +- "node_modules/for-each": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-callable": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/fraction.js": { + "version": "__VERSION__", + "dev": true, +@@ -2755,44 +974,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/function.prototype.name": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "es-define-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "functions-have-names": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "hasown": "__VERSION__", +- "is-callable": "__VERSION__", +- "is-document.all": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/functions-have-names": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/generator-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/get-caller-file": { + "version": "__VERSION__", + "dev": true, +@@ -2836,22 +1017,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/get-symbol-description": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/glob-parent": { + "version": "__VERSION__", + "dev": true, +@@ -2863,94 +1028,6 @@ + "node": ">= 6" + } + }, +- "node_modules/global-modules": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "global-prefix": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/global-prefix": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ini": "__VERSION__", +- "kind-of": "__VERSION__", +- "which": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/globals": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globals/-/globals-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/globalthis": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-properties": "__VERSION__", +- "gopd": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/globby": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/globby/-/globby-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array-union": "__VERSION__", +- "dir-glob": "__VERSION__", +- "fast-glob": "__VERSION__", +- "ignore": "__VERSION__", +- "merge2": "__VERSION__", +- "slash": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/globby/node_modules/slash": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/slash/-/slash-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/globjoin": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/gopd": { + "version": "__VERSION__", + "dev": true, +@@ -2967,17 +1044,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/has-bigints": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/has-flag": { + "version": "__VERSION__", + "dev": true, +@@ -2997,20 +1063,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/has-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/has-symbols": { + "version": "__VERSION__", + "dev": true, +@@ -3022,33 +1074,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/has-tostringtag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-symbols": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/hashery": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hashery/-/hashery-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/hasown": { + "version": "__VERSION__", + "dev": true, +@@ -3060,156 +1085,11 @@ + "node": ">= 0.4" + } + }, +- "node_modules/hookified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/html-entities": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/mdevils" +- }, +- { +- "type": "patreon", +- "url": "https://patreon.com/mdevils" +- } +- ], +- "license": "MIT" +- }, +- "node_modules/html-tags": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/ignore": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 4" +- } +- }, + "node_modules/immutable": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/import-fresh": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "parent-module": "__VERSION__", +- "resolve-from": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/import-fresh/node_modules/resolve-from": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/imurmurhash": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/ini": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC" +- }, +- "node_modules/internal-slot": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "hasown": "__VERSION__", +- "side-channel": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/is-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-arrayish": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/is-async-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "async-function": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-proto": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-bigint": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-bigints": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-binary-path": { + "version": "__VERSION__", + "dev": true, +@@ -3221,77 +1101,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-boolean-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-callable": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-core-module": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-data-view": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-date-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-docker": { + "version": "__VERSION__", + "dev": true, +@@ -3306,20 +1115,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/is-document.all": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-extglob": { + "version": "__VERSION__", + "dev": true, +@@ -3328,20 +1123,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-finalizationregistry": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-fullwidth-code-point": { + "version": "__VERSION__", + "dev": true, +@@ -3350,24 +1131,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-generator-function": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "generator-function": "__VERSION__", +- "get-proto": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-glob": { + "version": "__VERSION__", + "dev": true, +@@ -3379,28 +1142,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-negative-zero": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-number": { + "version": "__VERSION__", + "dev": true, +@@ -3409,156 +1150,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/is-number-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-plain-object": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/is-regex": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "gopd": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "hasown": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-set": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-shared-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-string": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-symbol": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-symbols": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-typed-array": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakref": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/is-weakset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/is-wsl": { + "version": "__VERSION__", + "dev": true, +@@ -3580,61 +1171,6 @@ + "dev": true, + "license": "ISC" + }, +- "node_modules/js-tokens": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/js-yaml": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/puzrin" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/nodeca" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "argparse": "__VERSION__" +- }, +- "bin": { +- "js-yaml": "bin/js-yaml.js" +- } +- }, +- "node_modules/jsdoc-type-pratt-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/json-buffer": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json-parse-even-better-errors": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json-schema-traverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/json-stable-stringify": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-__VERSION__.tgz", +@@ -3655,22 +1191,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/json-stable-stringify-without-jsonify": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/json5": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "minimist": "__VERSION__" +- }, +- "bin": { +- "json5": "lib/cli.js" +- } +- }, + "node_modules/jsonfile": { + "version": "__VERSION__", + "dev": true, +@@ -3692,24 +1212,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/keyv": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/keyv/-/keyv-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "json-buffer": "__VERSION__" +- } +- }, +- "node_modules/kind-of": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/klaw-sync": { + "version": "__VERSION__", + "dev": true, +@@ -3718,23 +1220,6 @@ + "graceful-fs": "__VERSION__" + } + }, +- "node_modules/known-css-properties": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/levn": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prelude-ls": "__VERSION__", +- "type-check": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, + "node_modules/lilconfig": { + "version": "__VERSION__", + "dev": true, +@@ -3746,45 +1231,16 @@ + "url": "https://github.com/sponsors/antonk52" + } + }, +- "node_modules/lines-and-columns": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/locate-path": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-locate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/lodash.debounce": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/lodash.merge": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/lodash.throttle": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/lodash.truncate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/math-intrinsics": { + "version": "__VERSION__", + "dev": true, +@@ -3793,47 +1249,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/mathml-tag-names": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/wooorm" +- } +- }, +- "node_modules/mdn-data": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC0-1.0" +- }, +- "node_modules/meow": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/meow/-/meow-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/merge2": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/merge2/-/merge2-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 8" +- } +- }, + "node_modules/micromatch": { + "version": "__VERSION__", + "dev": true, +@@ -3846,17 +1261,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/minimatch": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "brace-expansion": "__VERSION__" +- }, +- "engines": { +- "node": "*" +- } +- }, + "node_modules/minimist": { + "version": "__VERSION__", + "dev": true, +@@ -3865,11 +1269,6 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/ms": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/nanoid": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-__VERSION__.tgz", +@@ -3889,11 +1288,6 @@ + "node": "^10 || ^12 || ^13.7 || ^14 || >=__VERSION__" + } + }, +- "node_modules/natural-compare": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/node-addon-api": { + "version": "__VERSION__", + "dev": true, +@@ -3900,23 +1294,6 @@ + "license": "MIT", + "optional": true + }, +- "node_modules/node-exports-info": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "array.prototype.flatmap": "__VERSION__", +- "es-errors": "__VERSION__", +- "object.entries": "__VERSION__", +- "semver": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/node-releases": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-__VERSION__.tgz", +@@ -3935,22 +1312,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/object-deep-merge": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/object-inspect": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/object-keys": { + "version": "__VERSION__", + "dev": true, +@@ -3959,86 +1320,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/object.assign": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "has-symbols": "__VERSION__", +- "object-keys": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object.entries": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/object.fromentries": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/object.groupby": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/object.values": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/open": { + "version": "__VERSION__", + "dev": true, +@@ -4054,66 +1335,6 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/optionator": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "deep-is": "__VERSION__", +- "fast-levenshtein": "__VERSION__", +- "levn": "__VERSION__", +- "prelude-ls": "__VERSION__", +- "type-check": "__VERSION__", +- "word-wrap": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/own-keys": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "get-intrinsic": "__VERSION__", +- "object-keys": "__VERSION__", +- "safe-push-apply": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/p-limit": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "yocto-queue": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/p-locate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "p-limit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, + "node_modules/p-try": { + "version": "__VERSION__", + "dev": true, +@@ -4122,47 +1343,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/parent-module": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "callsites": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/parse-imports-exports": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "parse-statements": "__VERSION__" +- } +- }, +- "node_modules/parse-json": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@babel/code-frame": "__VERSION__", +- "error-ex": "__VERSION__", +- "json-parse-even-better-errors": "__VERSION__", +- "lines-and-columns": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/parse-statements": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/patch-package": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-__VERSION__.tgz", +@@ -4221,14 +1401,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/path-exists": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/path-key": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-__VERSION__.tgz", +@@ -4239,21 +1411,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/path-parse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/path-type": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/path-type/-/path-type-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/picocolors": { + "version": "__VERSION__", + "dev": true, +@@ -4278,14 +1435,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/possible-typed-array-names": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/postcss": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-__VERSION__.tgz", +@@ -4453,13 +1602,6 @@ + } + } + }, +- "node_modules/postcss-media-query-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/postcss-reporter": { + "version": "__VERSION__", + "dev": true, +@@ -4485,125 +1627,11 @@ + "postcss": "__VERSION__" + } + }, +- "node_modules/postcss-resolve-nested-selector": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/postcss-safe-parser": { +- "version": "__VERSION__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/postcss/" +- }, +- { +- "type": "tidelift", +- "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, +- "node_modules/postcss-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/postcss/" +- }, +- { +- "type": "tidelift", +- "url": "https://tidelift.com/funding/github/npm/postcss-scss" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, +- "node_modules/postcss-selector-parser": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cssesc": "__VERSION__", +- "util-deprecate": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/postcss-sorting": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "peerDependencies": { +- "postcss": "__VERSION__" +- } +- }, + "node_modules/postcss-value-parser": { + "version": "__VERSION__", + "dev": true, + "license": "MIT" + }, +- "node_modules/prelude-ls": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/prettier": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/prettier/-/prettier-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "bin": { +- "prettier": "bin/prettier.cjs" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/prettier/prettier?sponsor=1" +- } +- }, +- "node_modules/prettier-linter-helpers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-diff": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/pretty-hrtime": { + "version": "__VERSION__", + "dev": true, +@@ -4612,64 +1640,6 @@ + "node": ">= 0.8" + } + }, +- "node_modules/punycode": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/qified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/qified/-/qified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "hookified": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/qified/node_modules/hookified": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/hookified/-/hookified-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/queue-microtask": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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/ramda": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "funding": { +- "type": "opencollective", +- "url": "https://opencollective.com/ramda" +- } +- }, + "node_modules/read-cache": { + "version": "__VERSION__", + "dev": true, +@@ -4689,46 +1659,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/reflect.getprototypeof": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "get-proto": "__VERSION__", +- "which-builtin-type": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/regexp.prototype.flags": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "set-function-name": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/require-directory": { + "version": "__VERSION__", + "dev": true, +@@ -4737,146 +1667,11 @@ + "node": "__VERSION__" + } + }, +- "node_modules/require-from-string": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/require-main-filename": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, +- "node_modules/reserved-identifiers": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/resolve": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "is-core-module": "__VERSION__", +- "node-exports-info": "__VERSION__", +- "object-keys": "__VERSION__", +- "path-parse": "__VERSION__", +- "supports-preserve-symlinks-flag": "__VERSION__" +- }, +- "bin": { +- "resolve": "bin/resolve" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/resolve-from": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/reusify": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/reusify/-/reusify-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "iojs": "__VERSION__", +- "node": "__VERSION__" +- } +- }, +- "node_modules/run-parallel": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "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": "__VERSION__" +- } +- }, +- "node_modules/safe-array-concat": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "has-symbols": "__VERSION__", +- "isarray": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/safe-push-apply": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "isarray": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/safe-regex-test": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-regex": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/sass": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/sass/-/sass-__VERSION__.tgz", +@@ -4924,14 +1719,6 @@ + "url": "https://paulmillr.com/funding/" + } + }, +- "node_modules/semver": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" +- } +- }, + "node_modules/set-blocking": { + "version": "__VERSION__", + "dev": true, +@@ -4953,33 +1740,6 @@ + "node": ">= 0.4" + } + }, +- "node_modules/set-function-name": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "define-data-property": "__VERSION__", +- "es-errors": "__VERSION__", +- "functions-have-names": "__VERSION__", +- "has-property-descriptors": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/set-proto": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "dunder-proto": "__VERSION__", +- "es-errors": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/shebang-command": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-__VERSION__.tgz", +@@ -5003,87 +1763,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/side-channel": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "object-inspect": "__VERSION__", +- "side-channel-list": "__VERSION__", +- "side-channel-map": "__VERSION__", +- "side-channel-weakmap": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-list": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-map": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "object-inspect": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/side-channel-weakmap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "get-intrinsic": "__VERSION__", +- "object-inspect": "__VERSION__", +- "side-channel-map": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/signal-exit": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/isaacs" +- } +- }, + "node_modules/slash": { + "version": "__VERSION__", + "dev": true, +@@ -5092,22 +1771,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/slice-ansi": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "ansi-styles": "__VERSION__", +- "astral-regex": "__VERSION__", +- "is-fullwidth-code-point": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/slice-ansi?sponsor=1" +- } +- }, + "node_modules/source-map": { + "version": "__VERSION__", + "dev": true, +@@ -5133,43 +1796,6 @@ + "source-map": "__VERSION__" + } + }, +- "node_modules/spdx-exceptions": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC-BY-3.0" +- }, +- "node_modules/spdx-expression-parse": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "spdx-exceptions": "__VERSION__", +- "spdx-license-ids": "__VERSION__" +- } +- }, +- "node_modules/spdx-license-ids": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "CC0-1.0" +- }, +- "node_modules/stop-iteration-iterator": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-errors": "__VERSION__", +- "internal-slot": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, + "node_modules/string-width": { + "version": "__VERSION__", + "dev": true, +@@ -5183,60 +1809,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/string.prototype.trim": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-data-property": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-abstract": "__VERSION__", +- "es-object-atoms": "__VERSION__", +- "has-property-descriptors": "__VERSION__", +- "safe-regex-test": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/string.prototype.trimend": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/string.prototype.trimstart": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "define-properties": "__VERSION__", +- "es-object-atoms": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/strip-ansi": { + "version": "__VERSION__", + "dev": true, +@@ -5248,255 +1820,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/strip-bom": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/strip-json-comments": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/stylelint": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "@csstools/css-parser-algorithms": "__VERSION__", +- "@csstools/css-syntax-patches-for-csstree": "__VERSION__", +- "@csstools/css-tokenizer": "__VERSION__", +- "@csstools/media-query-list-parser": "__VERSION__", +- "@csstools/selector-specificity": "__VERSION__", +- "@dual-bundle/import-meta-resolve": "__VERSION__", +- "balanced-match": "__VERSION__", +- "colord": "__VERSION__", +- "cosmiconfig": "__VERSION__", +- "css-functions-list": "__VERSION__", +- "css-tree": "__VERSION__", +- "debug": "__VERSION__", +- "fast-glob": "__VERSION__", +- "fastest-levenshtein": "__VERSION__", +- "file-entry-cache": "__VERSION__", +- "global-modules": "__VERSION__", +- "globby": "__VERSION__", +- "globjoin": "__VERSION__", +- "html-tags": "__VERSION__", +- "ignore": "__VERSION__", +- "imurmurhash": "__VERSION__", +- "is-plain-object": "__VERSION__", +- "known-css-properties": "__VERSION__", +- "mathml-tag-names": "__VERSION__", +- "meow": "__VERSION__", +- "micromatch": "__VERSION__", +- "normalize-path": "__VERSION__", +- "picocolors": "__VERSION__", +- "postcss": "__VERSION__", +- "postcss-resolve-nested-selector": "__VERSION__", +- "postcss-safe-parser": "__VERSION__", +- "postcss-selector-parser": "__VERSION__", +- "postcss-value-parser": "__VERSION__", +- "resolve-from": "__VERSION__", +- "string-width": "__VERSION__", +- "supports-hyperlinks": "__VERSION__", +- "svg-tags": "__VERSION__", +- "table": "__VERSION__", +- "write-file-atomic": "__VERSION__" +- }, +- "bin": { +- "stylelint": "bin/stylelint.mjs" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-recommended": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-recommended-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "postcss-scss": "__VERSION__", +- "stylelint-config-recommended": "__VERSION__", +- "stylelint-scss": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__", +- "stylelint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "postcss": { +- "optional": true +- } +- } +- }, +- "node_modules/stylelint-config-standard": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/stylelint" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/stylelint" +- } +- ], +- "license": "MIT", +- "dependencies": { +- "stylelint-config-recommended": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint-config-standard-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "stylelint-config-recommended-scss": "__VERSION__", +- "stylelint-config-standard": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "postcss": "__VERSION__", +- "stylelint": "__VERSION__" +- }, +- "peerDependenciesMeta": { +- "postcss": { +- "optional": true +- } +- } +- }, +- "node_modules/stylelint-order": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "postcss": "__VERSION__", +- "postcss-sorting": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__ || __VERSION__" +- } +- }, +- "node_modules/stylelint-scss": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "css-tree": "__VERSION__", +- "is-plain-object": "__VERSION__", +- "known-css-properties": "__VERSION__", +- "mdn-data": "__VERSION__", +- "postcss-media-query-parser": "__VERSION__", +- "postcss-resolve-nested-selector": "__VERSION__", +- "postcss-selector-parser": "__VERSION__", +- "postcss-value-parser": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "peerDependencies": { +- "stylelint": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/file-entry-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "flat-cache": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/flat-cache": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "cacheable": "__VERSION__", +- "flatted": "__VERSION__", +- "hookified": "__VERSION__" +- } +- }, +- "node_modules/stylelint/node_modules/ignore": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 4" +- } +- }, + "node_modules/supports-color": { + "version": "__VERSION__", + "dev": true, +@@ -5508,87 +1831,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/supports-hyperlinks": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-flag": "__VERSION__", +- "supports-color": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" +- } +- }, +- "node_modules/supports-preserve-symlinks-flag": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/svg-tags": { +- "version": "__VERSION__", +- "dev": true +- }, +- "node_modules/synckit": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@pkgr/core": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://opencollective.com/synckit" +- } +- }, +- "node_modules/table": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "ajv": "__VERSION__", +- "lodash.truncate": "__VERSION__", +- "slice-ansi": "__VERSION__", +- "string-width": "__VERSION__", +- "strip-ansi": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- } +- }, +- "node_modules/table/node_modules/ajv": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "fast-deep-equal": "__VERSION__", +- "fast-uri": "__VERSION__", +- "json-schema-traverse": "__VERSION__", +- "require-from-string": "__VERSION__" +- }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/epoberezkin" +- } +- }, +- "node_modules/table/node_modules/json-schema-traverse": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, + "node_modules/terser": { + "version": "__VERSION__", + "resolved": "https://registry.npmjs.org/terser/-/terser-__VERSION__.tgz", +@@ -5676,130 +1918,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/to-valid-identifier": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@sindresorhus/base62": "__VERSION__", +- "reserved-identifiers": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" +- } +- }, +- "node_modules/tsconfig-paths": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "@types/json5": "__VERSION__", +- "json5": "__VERSION__", +- "minimist": "__VERSION__", +- "strip-bom": "__VERSION__" +- } +- }, +- "node_modules/type-check": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "prelude-ls": "__VERSION__" +- }, +- "engines": { +- "node": ">= __VERSION__" +- } +- }, +- "node_modules/typed-array-buffer": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "es-errors": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- } +- }, +- "node_modules/typed-array-byte-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "has-proto": "__VERSION__", +- "is-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/typed-array-byte-offset": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "has-proto": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "reflect.getprototypeof": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/typed-array-length": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "__VERSION__", +- "for-each": "__VERSION__", +- "gopd": "__VERSION__", +- "is-typed-array": "__VERSION__", +- "possible-typed-array-names": "__VERSION__", +- "reflect.getprototypeof": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/unbox-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "has-bigints": "__VERSION__", +- "has-symbols": "__VERSION__", +- "which-boxed-primitive": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/universalify": { + "version": "__VERSION__", + "dev": true, +@@ -5839,124 +1957,11 @@ + "browserslist": ">= __VERSION__" + } + }, +- "node_modules/uri-js": { +- "version": "__VERSION__", +- "dev": true, +- "license": "BSD-2-Clause", +- "dependencies": { +- "punycode": "__VERSION__" +- } +- }, +- "node_modules/util-deprecate": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/which": { +- "version": "__VERSION__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "isexe": "__VERSION__" +- }, +- "bin": { +- "which": "bin/which" +- } +- }, +- "node_modules/which-boxed-primitive": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-bigint": "__VERSION__", +- "is-boolean-object": "__VERSION__", +- "is-number-object": "__VERSION__", +- "is-string": "__VERSION__", +- "is-symbol": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-builtin-type": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bound": "__VERSION__", +- "function.prototype.name": "__VERSION__", +- "has-tostringtag": "__VERSION__", +- "is-async-function": "__VERSION__", +- "is-date-object": "__VERSION__", +- "is-finalizationregistry": "__VERSION__", +- "is-generator-function": "__VERSION__", +- "is-regex": "__VERSION__", +- "is-weakref": "__VERSION__", +- "isarray": "__VERSION__", +- "which-boxed-primitive": "__VERSION__", +- "which-collection": "__VERSION__", +- "which-typed-array": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/which-collection": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "is-map": "__VERSION__", +- "is-set": "__VERSION__", +- "is-weakmap": "__VERSION__", +- "is-weakset": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, + "node_modules/which-module": { + "version": "__VERSION__", + "dev": true, + "license": "ISC" + }, +- "node_modules/which-typed-array": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "available-typed-arrays": "__VERSION__", +- "call-bind": "__VERSION__", +- "call-bound": "__VERSION__", +- "for-each": "__VERSION__", +- "get-proto": "__VERSION__", +- "gopd": "__VERSION__", +- "has-tostringtag": "__VERSION__" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" +- } +- }, +- "node_modules/word-wrap": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- } +- }, + "node_modules/wrap-ansi": { + "version": "__VERSION__", + "dev": true, +@@ -6039,20 +2044,6 @@ + "node": "__VERSION__" + } + }, +- "node_modules/write-file-atomic": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "ISC", +- "dependencies": { +- "imurmurhash": "__VERSION__", +- "signal-exit": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || __VERSION__ || >=__VERSION__" +- } +- }, + "node_modules/y18n": { + "version": "__VERSION__", + "dev": true, +@@ -6072,23 +2063,6 @@ + "url": "https://github.com/sponsors/eemeli" + } + }, +- "node_modules/yaml-eslint-parser": { +- "version": "__VERSION__", +- "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-__VERSION__.tgz", +- "integrity": "__INTEGRITY__", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "eslint-visitor-keys": "__VERSION__", +- "yaml": "__VERSION__" +- }, +- "engines": { +- "node": "__VERSION__ || >=__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ota-meshi" +- } +- }, + "node_modules/yargs": { + "version": "__VERSION__", + "dev": true, +@@ -6214,17 +2188,6 @@ + }, + "engines": { + "node": "__VERSION__" +- } +- }, +- "node_modules/yocto-queue": { +- "version": "__VERSION__", +- "dev": true, +- "license": "MIT", +- "engines": { +- "node": "__VERSION__" +- }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" + } + } + } diff --git a/.vortex/cli/tests/Fixtures/handler_process/tools_none/web/themes/custom/star_wars/package.json b/.vortex/cli/tests/Fixtures/handler_process/tools_none/web/themes/custom/star_wars/package.json new file mode 100644 index 0000000000..1fc10ca089 --- /dev/null +++ b/.vortex/cli/tests/Fixtures/handler_process/tools_none/web/themes/custom/star_wars/package.json @@ -0,0 +1,43 @@ +@@ -4,29 +4,12 @@ + "private": true, + "description": "NodeJS dependencies for star wars project", + "devDependencies": { +- "@eslint/compat": "__VERSION__", +- "@eslint/js": "__VERSION__", +- "@homer0/prettier-plugin-jsdoc": "__VERSION__", + "autoprefixer": "__VERSION__", + "chokidar-cli": "__VERSION__", +- "eslint": "__VERSION__", +- "eslint-config-prettier": "__VERSION__", +- "eslint-plugin-import": "__VERSION__", +- "eslint-plugin-jsdoc": "__VERSION__", +- "eslint-plugin-no-jquery": "__VERSION__", +- "eslint-plugin-prettier": "__VERSION__", +- "eslint-plugin-yml": "__VERSION__", +- "globals": "__VERSION__", + "patch-package": "__VERSION__", + "postcss": "__VERSION__", + "postcss-cli": "__VERSION__", +- "prettier": "__VERSION__", + "sass": "__VERSION__", +- "stylelint": "__VERSION__", +- "stylelint-config-standard": "__VERSION__", +- "stylelint-config-standard-scss": "__VERSION__", +- "stylelint-order": "__VERSION__", +- "stylelint-scss": "__VERSION__", + "terser": "__VERSION__" + }, + "browserslist": [ +@@ -42,12 +25,6 @@ + "copy": "npm run copy:images && npm run copy:fonts", + "copy:fonts": "mkdir -p build/fonts && cp -r fonts/* build/fonts/ 2>/dev/null || true", + "copy:images": "mkdir -p build/images && cp -r images/* build/images/ 2>/dev/null || true", +- "lint": "npm run lint-js && npm run lint-css", +- "lint-css": "stylelint 'scss/**/*.scss'", +- "lint-css-fix": "stylelint 'scss/**/*.scss' --fix", +- "lint-fix": "npm run lint-js-fix && npm run lint-css-fix", +- "lint-js": "eslint 'js/**/*.js' --ignore-pattern '*.min.js'", +- "lint-js-fix": "eslint 'js/**/*.js' --ignore-pattern '*.min.js' --fix", + "postcss:dev": "postcss build/css/star_wars.min.css -o build/css/star_wars.min.css --map", + "postcss:prod": "postcss build/css/star_wars.min.css -o build/css/star_wars.min.css --no-map", + "postinstall": "patch-package", diff --git a/.vortex/cli/tests/Functional/Command/InstallCommandTest.php b/.vortex/cli/tests/Functional/Command/InstallCommandTest.php index 077bcb9237..f7ea58adc8 100644 --- a/.vortex/cli/tests/Functional/Command/InstallCommandTest.php +++ b/.vortex/cli/tests/Functional/Command/InstallCommandTest.php @@ -448,7 +448,7 @@ public static function dataProviderInstallCommand(): \Iterator { ...TuiOutput::present([ TuiOutput::BUILD_ASSEMBLE_DOCKER, TuiOutput::BUILD_ASSEMBLE_COMPOSER, - TuiOutput::BUILD_ASSEMBLE_YARN, + TuiOutput::BUILD_ASSEMBLE_NPM, TuiOutput::BUILD_PROVISION_START, TuiOutput::BUILD_PROVISION_PROJECT_INFO, TuiOutput::BUILD_PROVISION_TYPE_PROFILE, diff --git a/.vortex/cli/tests/Functional/Handlers/ModulesHandlerProcessTest.php b/.vortex/cli/tests/Functional/Handlers/ModulesHandlerProcessTest.php index 0a5bec3a5c..cd84923af9 100644 --- a/.vortex/cli/tests/Functional/Handlers/ModulesHandlerProcessTest.php +++ b/.vortex/cli/tests/Functional/Handlers/ModulesHandlerProcessTest.php @@ -70,7 +70,10 @@ public static function dataProviderHandlerProcess(): \Iterator { static::cw(function ($test): void { $test->prompts[Modules::id()] = static::getModulesExcept('redirect'); }), - static::cw(fn(FunctionalTestCase $test) => $test->assertSutNotContains('drupal/redirect')), + static::cw(fn(FunctionalTestCase $test) => $test->assertSutNotContains([ + 'drupal/redirect', + 'RedirectTrait', + ])), ]; yield 'modules_no_reroute_email' => [ static::cw(function ($test): void { diff --git a/.vortex/cli/tests/Functional/Handlers/ToolsHandlerProcessTest.php b/.vortex/cli/tests/Functional/Handlers/ToolsHandlerProcessTest.php index 97b697228b..aa71095aaf 100644 --- a/.vortex/cli/tests/Functional/Handlers/ToolsHandlerProcessTest.php +++ b/.vortex/cli/tests/Functional/Handlers/ToolsHandlerProcessTest.php @@ -41,9 +41,8 @@ public static function dataProviderHandlerProcess(): \Iterator { ]); $test->assertFileDoesNotExist(static::$sut . '/package.json'); - $test->assertFileDoesNotExist(static::$sut . '/yarn.lock'); - $test->assertFileDoesNotExist(static::$sut . '/.eslintrc.json'); - $test->assertFileDoesNotExist(static::$sut . '/.eslintignore'); + $test->assertFileDoesNotExist(static::$sut . '/package-lock.json'); + $test->assertFileDoesNotExist(static::$sut . '/eslint.config.mjs'); $test->assertFileDoesNotExist(static::$sut . '/.prettierrc.json'); $test->assertFileDoesNotExist(static::$sut . '/.prettierignore'); $test->assertFileDoesNotExist(static::$sut . '/.stylelintrc.js'); @@ -259,12 +258,23 @@ public static function dataProviderHandlerProcess(): \Iterator { $test->assertFileNotContainsString($pj, '"eslint-plugin-yml":'); $test->assertFileNotContainsString($pj, '"prettier":'); $test->assertFileNotContainsString($pj, '"@homer0/prettier-plugin-jsdoc":'); - $test->assertFileDoesNotExist(static::$sut . '/.eslintrc.json'); - $test->assertFileDoesNotExist(static::$sut . '/.eslintignore'); + $test->assertFileDoesNotExist(static::$sut . '/eslint.config.mjs'); $test->assertFileDoesNotExist(static::$sut . '/.prettierrc.json'); $test->assertFileDoesNotExist(static::$sut . '/.prettierignore'); $test->assertFileContainsString($pj, '"stylelint":'); $test->assertFileExists(static::$sut . '/.stylelintrc.js'); + + $tpj = static::themeManifest(); + $test->assertFileNotContainsString($tpj, '"eslint":'); + $test->assertFileNotContainsString($tpj, '"prettier":'); + $test->assertFileContainsString($tpj, '"stylelint":'); + + static::assertNpmPairIsInSync($pj); + static::assertNpmPairIsInSync($tpj); + static::assertNpmLockLacksPackages($pj, ['eslint', 'prettier']); + static::assertNpmLockLacksPackages($tpj, ['eslint', 'prettier']); + static::assertNpmLockHasPackages($pj, ['stylelint', 'jest']); + static::assertNpmLockHasPackages($tpj, ['stylelint', 'sass']); }), ]; yield 'tools_no_eslint_circleci' => [ @@ -285,8 +295,7 @@ public static function dataProviderHandlerProcess(): \Iterator { $test->assertFileNotContainsString($pj, '"eslint-plugin-yml":'); $test->assertFileNotContainsString($pj, '"prettier":'); $test->assertFileNotContainsString($pj, '"@homer0/prettier-plugin-jsdoc":'); - $test->assertFileDoesNotExist(static::$sut . '/.eslintrc.json'); - $test->assertFileDoesNotExist(static::$sut . '/.eslintignore'); + $test->assertFileDoesNotExist(static::$sut . '/eslint.config.mjs'); $test->assertFileDoesNotExist(static::$sut . '/.prettierrc.json'); $test->assertFileDoesNotExist(static::$sut . '/.prettierignore'); $test->assertFileContainsString($pj, '"stylelint":'); @@ -306,7 +315,56 @@ public static function dataProviderHandlerProcess(): \Iterator { $test->assertFileNotContainsString($pj, '"stylelint-order":'); $test->assertFileDoesNotExist(static::$sut . '/.stylelintrc.js'); $test->assertFileContainsString($pj, '"eslint":'); - $test->assertFileExists(static::$sut . '/.eslintrc.json'); + $test->assertFileExists(static::$sut . '/eslint.config.mjs'); + + $tpj = static::themeManifest(); + $test->assertFileNotContainsString($tpj, '"stylelint":'); + $test->assertFileNotContainsString($tpj, '"stylelint-scss":'); + $test->assertFileContainsString($tpj, '"eslint":'); + + static::assertNpmPairIsInSync($pj); + static::assertNpmPairIsInSync($tpj); + static::assertNpmLockLacksPackages($pj, ['stylelint']); + static::assertNpmLockLacksPackages($tpj, ['stylelint', 'stylelint-scss']); + static::assertNpmLockHasPackages($pj, ['eslint', 'jest']); + static::assertNpmLockHasPackages($tpj, ['eslint', 'sass']); + }), + ]; + yield 'tools_no_eslint_no_stylelint' => [ + static::cw(function ($test): void { + $tools = array_keys(Tools::getToolDefinitions('tools')); + $test->prompts[Tools::id()] = array_values(array_diff($tools, [Tools::ESLINT, Tools::STYLELINT])); + $test->prompts[CiProvider::id()] = CiProvider::GITHUB_ACTIONS; + }), + static::cw(function (AbstractHandlerProcessTestCase $test): void { + $pj = static::$sut . '/package.json'; + $tpj = static::themeManifest(); + + $test->assertFileNotContainsString($pj, '"eslint":'); + $test->assertFileNotContainsString($pj, '"stylelint":'); + $test->assertFileNotContainsString($pj, '"lint":'); + $test->assertFileNotContainsString($pj, '"lint-fix":'); + $test->assertFileContainsString($pj, '"jest":'); + + $test->assertFileNotContainsString($tpj, '"eslint":'); + $test->assertFileNotContainsString($tpj, '"stylelint":'); + $test->assertFileNotContainsString($tpj, '"lint":'); + $test->assertFileNotContainsString($tpj, '"lint-fix":'); + $test->assertFileContainsString($tpj, '"sass":'); + + $test->assertFileDoesNotExist(static::$sut . '/eslint.config.mjs'); + $test->assertFileDoesNotExist(static::$sut . '/.stylelintrc.js'); + $test->assertFileExists(static::$sut . '/jest.config.js'); + + static::assertNpmPairIsInSync($pj); + static::assertNpmPairIsInSync($tpj); + static::assertNpmLockLacksPackages($pj, ['eslint', 'stylelint']); + static::assertNpmLockLacksPackages($tpj, ['eslint', 'stylelint']); + static::assertNpmLockHasPackages($pj, ['jest']); + static::assertNpmLockHasPackages($tpj, ['sass']); + + $test->assertSutContains(['npm ci']); + $test->assertSutNotContains(['npm run lint']); }), ]; yield 'tools_no_stylelint_circleci' => [ @@ -322,7 +380,7 @@ public static function dataProviderHandlerProcess(): \Iterator { $test->assertFileNotContainsString($pj, '"stylelint-order":'); $test->assertFileDoesNotExist(static::$sut . '/.stylelintrc.js'); $test->assertFileContainsString($pj, '"eslint":'); - $test->assertFileExists(static::$sut . '/.eslintrc.json'); + $test->assertFileExists(static::$sut . '/eslint.config.mjs'); }), ]; yield 'tools_no_phpunit' => [ @@ -435,6 +493,10 @@ public static function dataProviderHandlerProcess(): \Iterator { $test->assertFileDoesNotExist(static::$sut . '/jest.config.js'); $test->assertFileContainsString($pj, '"eslint":'); $test->assertFileContainsString($pj, '"stylelint":'); + + static::assertNpmPairIsInSync($pj); + static::assertNpmLockLacksPackages($pj, ['jest', 'jest-environment-jsdom']); + static::assertNpmLockHasPackages($pj, ['eslint', 'stylelint']); }), ]; yield 'tools_no_jest_circleci' => [ @@ -460,9 +522,8 @@ public static function dataProviderHandlerProcess(): \Iterator { }), static::cw(function (AbstractHandlerProcessTestCase $test): void { $test->assertFileDoesNotExist(static::$sut . '/package.json'); - $test->assertFileDoesNotExist(static::$sut . '/yarn.lock'); - $test->assertFileDoesNotExist(static::$sut . '/.eslintrc.json'); - $test->assertFileDoesNotExist(static::$sut . '/.eslintignore'); + $test->assertFileDoesNotExist(static::$sut . '/package-lock.json'); + $test->assertFileDoesNotExist(static::$sut . '/eslint.config.mjs'); $test->assertFileDoesNotExist(static::$sut . '/.prettierrc.json'); $test->assertFileDoesNotExist(static::$sut . '/.prettierignore'); $test->assertFileDoesNotExist(static::$sut . '/.stylelintrc.js'); @@ -477,9 +538,8 @@ public static function dataProviderHandlerProcess(): \Iterator { }), static::cw(function (AbstractHandlerProcessTestCase $test): void { $test->assertFileDoesNotExist(static::$sut . '/package.json'); - $test->assertFileDoesNotExist(static::$sut . '/yarn.lock'); - $test->assertFileDoesNotExist(static::$sut . '/.eslintrc.json'); - $test->assertFileDoesNotExist(static::$sut . '/.eslintignore'); + $test->assertFileDoesNotExist(static::$sut . '/package-lock.json'); + $test->assertFileDoesNotExist(static::$sut . '/eslint.config.mjs'); $test->assertFileDoesNotExist(static::$sut . '/.prettierrc.json'); $test->assertFileDoesNotExist(static::$sut . '/.prettierignore'); $test->assertFileDoesNotExist(static::$sut . '/.stylelintrc.js'); @@ -537,16 +597,15 @@ public static function dataProviderHandlerProcess(): \Iterator { }), static::cw(function (AbstractHandlerProcessTestCase $test): void { $test->assertFileDoesNotExist(static::$sut . '/package.json'); - $test->assertFileDoesNotExist(static::$sut . '/yarn.lock'); - $test->assertFileDoesNotExist(static::$sut . '/.eslintrc.json'); - $test->assertFileDoesNotExist(static::$sut . '/.eslintignore'); + $test->assertFileDoesNotExist(static::$sut . '/package-lock.json'); + $test->assertFileDoesNotExist(static::$sut . '/eslint.config.mjs'); $test->assertFileDoesNotExist(static::$sut . '/.prettierrc.json'); $test->assertFileDoesNotExist(static::$sut . '/.prettierignore'); $test->assertFileDoesNotExist(static::$sut . '/.stylelintrc.js'); $test->assertFileDoesNotExist(static::$sut . '/jest.config.js'); $test->assertSutNotContains([ - 'yarn install', - 'yarn run lint', + 'npm ci', + 'npm run lint', 'ahoy fei', '/\bfei:/', ]); @@ -561,16 +620,15 @@ public static function dataProviderHandlerProcess(): \Iterator { }), static::cw(function (AbstractHandlerProcessTestCase $test): void { $test->assertFileDoesNotExist(static::$sut . '/package.json'); - $test->assertFileDoesNotExist(static::$sut . '/yarn.lock'); - $test->assertFileDoesNotExist(static::$sut . '/.eslintrc.json'); - $test->assertFileDoesNotExist(static::$sut . '/.eslintignore'); + $test->assertFileDoesNotExist(static::$sut . '/package-lock.json'); + $test->assertFileDoesNotExist(static::$sut . '/eslint.config.mjs'); $test->assertFileDoesNotExist(static::$sut . '/.prettierrc.json'); $test->assertFileDoesNotExist(static::$sut . '/.prettierignore'); $test->assertFileDoesNotExist(static::$sut . '/.stylelintrc.js'); $test->assertFileDoesNotExist(static::$sut . '/jest.config.js'); $test->assertSutNotContains([ - 'yarn install', - 'yarn run lint', + 'npm ci', + 'npm run lint', 'ahoy fei', '/\bfei:/', ]); @@ -590,8 +648,8 @@ public static function dataProviderHandlerProcess(): \Iterator { $test->assertFileNotContainsString($pj, '"stylelint-order":'); $test->assertFileDoesNotExist(static::$sut . '/.stylelintrc.js'); $test->assertFileContainsString($pj, '"eslint":'); - $test->assertFileExists(static::$sut . '/.eslintrc.json'); - $test->assertSutContains(['yarn install', 'yarn run lint']); + $test->assertFileExists(static::$sut . '/eslint.config.mjs'); + $test->assertSutContains(['npm ci', 'npm run lint']); }), ]; yield 'tools_no_eslint_no_theme' => [ @@ -606,15 +664,61 @@ public static function dataProviderHandlerProcess(): \Iterator { $test->assertFileNotContainsString($pj, '"eslint":'); $test->assertFileNotContainsString($pj, '"eslint-config-airbnb-base":'); $test->assertFileNotContainsString($pj, '"prettier":'); - $test->assertFileDoesNotExist(static::$sut . '/.eslintrc.json'); - $test->assertFileDoesNotExist(static::$sut . '/.eslintignore'); + $test->assertFileDoesNotExist(static::$sut . '/eslint.config.mjs'); $test->assertFileDoesNotExist(static::$sut . '/.prettierrc.json'); $test->assertFileDoesNotExist(static::$sut . '/.prettierignore'); $test->assertFileContainsString($pj, '"stylelint":'); $test->assertFileExists(static::$sut . '/.stylelintrc.js'); - $test->assertSutContains(['yarn install', 'yarn run lint']); + $test->assertSutContains(['npm ci', 'npm run lint']); }), ]; } + protected static function themeManifest(): string { + $manifests = glob(static::$sut . '/*/themes/custom/*/package.json') ?: []; + self::assertCount(1, $manifests, 'Expected a single custom theme manifest.'); + + return $manifests[0]; + } + + /** + * Assert that a manifest and its lock file declare the same dependencies. + * + * This is the condition 'npm ci' refuses to install without. + */ + protected static function assertNpmPairIsInSync(string $manifest_file): void { + $manifest = static::readJson($manifest_file); + $root = static::readJson(dirname($manifest_file) . '/package-lock.json')['packages']['']; + + foreach (['dependencies', 'devDependencies', 'optionalDependencies', 'peerDependencies'] as $block) { + self::assertSame( + $manifest[$block] ?? NULL, + $root[$block] ?? NULL, + sprintf('The "%s" block of "%s" does not match its lock file.', $block, $manifest_file) + ); + } + } + + protected static function assertNpmLockHasPackages(string $manifest_file, array $names): void { + $packages = static::readJson(dirname($manifest_file) . '/package-lock.json')['packages']; + + foreach ($names as $name) { + self::assertArrayHasKey('node_modules/' . $name, $packages, sprintf('Package "%s" is missing from the lock file next to "%s".', $name, $manifest_file)); + } + } + + protected static function assertNpmLockLacksPackages(string $manifest_file, array $names): void { + $packages = static::readJson(dirname($manifest_file) . '/package-lock.json')['packages']; + + foreach ($names as $name) { + self::assertArrayNotHasKey('node_modules/' . $name, $packages, sprintf('Package "%s" is still in the lock file next to "%s".', $name, $manifest_file)); + } + } + + protected static function readJson(string $file): array { + self::assertFileExists($file); + + return (array) json_decode((string) file_get_contents($file), TRUE, 512, JSON_THROW_ON_ERROR); + } + } diff --git a/.vortex/cli/tests/Helpers/TuiOutput.php b/.vortex/cli/tests/Helpers/TuiOutput.php index 87cfa4ff44..321b54e3b2 100644 --- a/.vortex/cli/tests/Helpers/TuiOutput.php +++ b/.vortex/cli/tests/Helpers/TuiOutput.php @@ -11,7 +11,7 @@ class TuiOutput { const BUILD_ASSEMBLE_COMPOSER = 'Downloading drupal/core'; - const BUILD_ASSEMBLE_YARN = 'yarn install'; + const BUILD_ASSEMBLE_NPM = 'npm ci'; const BUILD_PROVISION_START = '[INFO] Started site provisioning.'; @@ -212,7 +212,7 @@ public static function buildRunnerSuccess(): \Closure { self::echo([ self::BUILD_ASSEMBLE_DOCKER, self::BUILD_ASSEMBLE_COMPOSER, - self::BUILD_ASSEMBLE_YARN, + self::BUILD_ASSEMBLE_NPM, self::BUILD_PROVISION_START, self::BUILD_PROVISION_PROJECT_INFO, self::BUILD_PROVISION_TYPE_DB, @@ -235,7 +235,7 @@ public static function buildRunnerSuccessProfile(): \Closure { self::echo([ self::BUILD_ASSEMBLE_DOCKER, self::BUILD_ASSEMBLE_COMPOSER, - self::BUILD_ASSEMBLE_YARN, + self::BUILD_ASSEMBLE_NPM, self::BUILD_PROVISION_START, self::BUILD_PROVISION_PROJECT_INFO, self::BUILD_PROVISION_TYPE_PROFILE, @@ -258,7 +258,7 @@ public static function buildRunnerFailure(): \Closure { self::echo([ self::BUILD_ASSEMBLE_DOCKER, self::BUILD_ASSEMBLE_COMPOSER, - self::BUILD_ASSEMBLE_YARN, + self::BUILD_ASSEMBLE_NPM, self::BUILD_PROVISION_START, ]); return RunnerInterface::EXIT_FAILURE; diff --git a/.vortex/cli/tests/Unit/Handlers/ToolsHandlerDiscoveryTest.php b/.vortex/cli/tests/Unit/Handlers/ToolsHandlerDiscoveryTest.php index c2b25efb71..8751978498 100644 --- a/.vortex/cli/tests/Unit/Handlers/ToolsHandlerDiscoveryTest.php +++ b/.vortex/cli/tests/Unit/Handlers/ToolsHandlerDiscoveryTest.php @@ -206,7 +206,7 @@ function (AbstractHandlerDiscoveryTestCase $test, Config $config): void { [Tools::id() => [Tools::ESLINT]] + $expected_installed, function (AbstractHandlerDiscoveryTestCase $test, Config $config): void { $test->stubVortexProject($config); - File::dump(static::$sut . '/.eslintrc.json'); + File::dump(static::$sut . '/eslint.config.mjs'); }, ]; yield 'tools - discovery - stylelint' => [ diff --git a/.vortex/cli/tests/Unit/NpmLockTest.php b/.vortex/cli/tests/Unit/NpmLockTest.php new file mode 100644 index 0000000000..e12e7da665 --- /dev/null +++ b/.vortex/cli/tests/Unit/NpmLockTest.php @@ -0,0 +1,249 @@ +createPair(['devDependencies' => ['keep' => '^1.0.0']], NULL); + + NpmLock::sync($manifest_file); + + $this->assertFileDoesNotExist(dirname($manifest_file) . '/package-lock.json'); + } + + #[DataProvider('dataProviderSync')] + public function testSync(array $manifest, array $lock, array $expected_root, array $expected_paths): void { + $manifest_file = $this->createPair($manifest, $lock); + + NpmLock::sync($manifest_file); + + $actual = $this->readLock($manifest_file); + + $this->assertSame($expected_root, $actual['packages']['']); + $this->assertSame($expected_paths, array_keys($actual['packages'])); + } + + public static function dataProviderSync(): \Iterator { + yield 'dependency removed from the manifest is pruned with its orphans' => [ + ['devDependencies' => ['keep' => '^1.0.0']], + [ + 'packages' => [ + '' => ['name' => 'test', 'devDependencies' => ['keep' => '^1.0.0', 'drop' => '^2.0.0']], + 'node_modules/deep-orphan' => ['version' => '1.0.0'], + 'node_modules/drop' => ['version' => '2.0.0', 'dependencies' => ['orphan' => '^1.0.0', 'shared' => '^1.0.0']], + 'node_modules/drop/node_modules/nested' => ['version' => '1.0.0'], + 'node_modules/keep' => ['version' => '1.0.0', 'dependencies' => ['shared' => '^1.0.0']], + 'node_modules/orphan' => ['version' => '1.0.0', 'dependencies' => ['deep-orphan' => '^1.0.0']], + 'node_modules/shared' => ['version' => '1.0.0'], + ], + ], + ['name' => 'test', 'devDependencies' => ['keep' => '^1.0.0']], + ['', 'node_modules/keep', 'node_modules/shared'], + ]; + yield 'a nested copy shadows the hoisted one' => [ + ['dependencies' => ['keep' => '^1.0.0']], + [ + 'packages' => [ + '' => ['dependencies' => ['keep' => '^1.0.0']], + 'node_modules/keep' => ['version' => '1.0.0', 'dependencies' => ['shared' => '^2.0.0']], + 'node_modules/keep/node_modules/shared' => ['version' => '2.0.0'], + 'node_modules/shared' => ['version' => '1.0.0'], + ], + ], + ['dependencies' => ['keep' => '^1.0.0']], + ['', 'node_modules/keep', 'node_modules/keep/node_modules/shared'], + ]; + yield 'a dependency of a nested copy falls back to the hoisted tree' => [ + ['dependencies' => ['keep' => '^1.0.0']], + [ + 'packages' => [ + '' => ['dependencies' => ['keep' => '^1.0.0']], + 'node_modules/keep' => ['version' => '1.0.0', 'dependencies' => ['nested' => '^1.0.0']], + 'node_modules/keep/node_modules/nested' => ['version' => '1.0.0', 'dependencies' => ['hoisted' => '^1.0.0']], + 'node_modules/hoisted' => ['version' => '1.0.0'], + ], + ], + ['dependencies' => ['keep' => '^1.0.0']], + ['', 'node_modules/keep', 'node_modules/keep/node_modules/nested', 'node_modules/hoisted'], + ]; + yield 'every dependency block is followed' => [ + [ + 'dependencies' => ['runtime' => '^1.0.0'], + 'devDependencies' => ['dev' => '^1.0.0'], + 'optionalDependencies' => ['optional' => '^1.0.0'], + 'peerDependencies' => ['peer' => '^1.0.0'], + ], + [ + 'packages' => [ + '' => ['name' => 'test'], + 'node_modules/dev' => ['version' => '1.0.0'], + 'node_modules/optional' => ['version' => '1.0.0'], + 'node_modules/peer' => ['version' => '1.0.0'], + 'node_modules/runtime' => ['version' => '1.0.0'], + 'node_modules/unreferenced' => ['version' => '1.0.0'], + ], + ], + [ + 'name' => 'test', + 'dependencies' => ['runtime' => '^1.0.0'], + 'devDependencies' => ['dev' => '^1.0.0'], + 'optionalDependencies' => ['optional' => '^1.0.0'], + 'peerDependencies' => ['peer' => '^1.0.0'], + ], + ['', 'node_modules/dev', 'node_modules/optional', 'node_modules/peer', 'node_modules/runtime'], + ]; + yield 'a block absent from the manifest is dropped from the lock' => [ + ['dependencies' => ['runtime' => '^1.0.0']], + [ + 'packages' => [ + '' => ['dependencies' => ['runtime' => '^1.0.0'], 'devDependencies' => ['dev' => '^1.0.0']], + 'node_modules/dev' => ['version' => '1.0.0'], + 'node_modules/runtime' => ['version' => '1.0.0'], + ], + ], + ['dependencies' => ['runtime' => '^1.0.0']], + ['', 'node_modules/runtime'], + ]; + yield 'a manifest entry the lock does not carry is added' => [ + ['dependencies' => ['added' => '^1.0.0', 'changed' => '^2.0.0']], + [ + 'packages' => [ + '' => ['dependencies' => ['changed' => '^1.0.0']], + 'node_modules/changed' => ['version' => '1.0.0'], + ], + ], + ['dependencies' => ['added' => '^1.0.0', 'changed' => '^2.0.0']], + ['', 'node_modules/changed'], + ]; + yield 'a workspace is a root of its own' => [ + ['dependencies' => ['app' => '*']], + [ + 'packages' => [ + '' => ['dependencies' => ['app' => '*']], + 'node_modules/app' => ['resolved' => 'packages/app', 'link' => TRUE], + 'node_modules/workspace-only' => ['version' => '1.0.0'], + 'node_modules/unreferenced' => ['version' => '1.0.0'], + 'packages/app' => ['version' => '1.0.0', 'dependencies' => ['workspace-only' => '^1.0.0']], + ], + ], + ['dependencies' => ['app' => '*']], + ['', 'node_modules/app', 'node_modules/workspace-only', 'packages/app'], + ]; + yield 'an unresolvable optional dependency is skipped' => [ + ['dependencies' => ['keep' => '^1.0.0']], + [ + 'packages' => [ + '' => ['dependencies' => ['keep' => '^1.0.0']], + 'node_modules/keep' => ['version' => '1.0.0', 'optionalDependencies' => ['never-installed' => '^1.0.0']], + ], + ], + ['dependencies' => ['keep' => '^1.0.0']], + ['', 'node_modules/keep'], + ]; + } + + public function testSyncWritesTheFileTheWayNpmWritesIt(): void { + $manifest_file = $this->createPair( + ['dependencies' => ['keep' => '^1.0.0']], + [ + 'name' => 'test', + 'lockfileVersion' => 3, + 'packages' => [ + '' => ['dependencies' => ['keep' => '^1.0.0']], + 'node_modules/keep' => ['version' => '1.0.0', 'resolved' => 'https://registry.npmjs.org/keep/-/keep-1.0.0.tgz'], + ], + ] + ); + + NpmLock::sync($manifest_file); + + $contents = (string) file_get_contents(dirname($manifest_file) . '/package-lock.json'); + + $this->assertStringContainsString("\n \"lockfileVersion\": 3,", $contents); + $this->assertStringContainsString("\n \"node_modules/keep\": {", $contents); + $this->assertStringContainsString('https://registry.npmjs.org/keep/-/keep-1.0.0.tgz', $contents); + $this->assertStringEndsWith("}\n", $contents); + } + + public function testSyncPreservesEmptyObjects(): void { + $manifest_file = $this->createPair(['dependencies' => ['keep' => '^1.0.0']], NULL); + + File::dump(dirname($manifest_file) . '/package-lock.json', '{"packages":{"":{"dependencies":{"keep":"^1.0.0"}},"node_modules/keep":{"version":"1.0.0","bin":{}}}}'); + + NpmLock::sync($manifest_file); + + $this->assertStringContainsString('"bin": {}', (string) file_get_contents(dirname($manifest_file) . '/package-lock.json')); + } + + #[DataProvider('dataProviderSyncThrows')] + public function testSyncThrows(?string $manifest_contents, ?string $lock_contents, string $message): void { + $dir = File::mkdir(self::$tmp . '/' . uniqid('npmlock_')); + + File::dump($dir . '/package.json', $manifest_contents ?? '{}'); + File::dump($dir . '/package-lock.json', $lock_contents ?? '{}'); + + $this->expectException(\RuntimeException::class); + $this->expectExceptionMessageMatches($message); + + NpmLock::sync($dir . '/package.json'); + } + + public static function dataProviderSyncThrows(): \Iterator { + yield 'lock without a packages key' => [NULL, '{"lockfileVersion":1,"dependencies":{}}', '/Unsupported lock file format/']; + yield 'lock without a root entry' => [NULL, '{"packages":{"node_modules/keep":{}}}', '/Unsupported lock file format/']; + yield 'manifest with invalid JSON' => ['{"name":}', NULL, '/Unable to parse a JSON file/']; + yield 'lock with invalid JSON' => [NULL, '{"packages":}', '/Unable to parse a JSON file/']; + yield 'manifest that is not an object' => ['[]', NULL, '/a JSON object is required/']; + yield 'manifest with a dependency block that is not an object' => ['{"devDependencies":[]}', '{"packages":{"":{}}}', '/Unable to read the "devDependencies" block/']; + } + + public function testSyncThrowsWhenLockIsNotWritable(): void { + if (function_exists('posix_geteuid') && posix_geteuid() === 0) { + $this->markTestSkipped('File permissions do not restrict the root user.'); + } + + $manifest_file = $this->createPair( + ['dependencies' => ['keep' => '^1.0.0']], + ['packages' => ['' => ['dependencies' => ['keep' => '^1.0.0']]]] + ); + + chmod(dirname($manifest_file) . '/package-lock.json', 0444); + + $this->expectException(\RuntimeException::class); + $this->expectExceptionMessageMatches('/Unable to write a JSON file/'); + + NpmLock::sync($manifest_file); + } + + /** + * Write a manifest and its lock file into a directory of their own. + * + * @return string + * Path to the manifest. + */ + protected function createPair(array $manifest, ?array $lock): string { + $dir = File::mkdir(self::$tmp . '/' . uniqid('npmlock_')); + + File::dump($dir . '/package.json', (string) json_encode($manifest, JSON_PRETTY_PRINT)); + + if ($lock !== NULL) { + File::dump($dir . '/package-lock.json', (string) json_encode($lock, JSON_PRETTY_PRINT)); + } + + return $dir . '/package.json'; + } + + protected function readLock(string $manifest_file): array { + return (array) json_decode((string) file_get_contents(dirname($manifest_file) . '/package-lock.json'), TRUE, 512, JSON_THROW_ON_ERROR); + } + +} diff --git a/.vortex/cli/tests/Unit/YamlTest.php b/.vortex/cli/tests/Unit/YamlTest.php index d74254c04f..898b269edc 100644 --- a/.vortex/cli/tests/Unit/YamlTest.php +++ b/.vortex/cli/tests/Unit/YamlTest.php @@ -365,9 +365,9 @@ public static function dataProviderCollapseEmptyLinesInLiteralBlock(): \Iterator usage: Lint front-end code. cmd: | ahoy cli vendor/bin/twig-cs-fixer lint - ahoy cli "yarn run lint" + ahoy cli "npm run lint" #;< DRUPAL_THEME - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" + ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" #;> DRUPAL_THEME lint-tests: @@ -386,9 +386,9 @@ public static function dataProviderCollapseEmptyLinesInLiteralBlock(): \Iterator usage: Lint front-end code. cmd: | ahoy cli vendor/bin/twig-cs-fixer lint - ahoy cli "yarn run lint" + ahoy cli "npm run lint" #;< DRUPAL_THEME - ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" + ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint" #;> DRUPAL_THEME lint-tests: diff --git a/.vortex/docs/.eslintrc.js b/.vortex/docs/.eslintrc.js deleted file mode 100644 index 01b1dbd3ba..0000000000 --- a/.vortex/docs/.eslintrc.js +++ /dev/null @@ -1,42 +0,0 @@ -module.exports = { - root: true, - env: { - browser: true, - es2021: true, - node: true, - jest: true, - }, - extends: [ - 'eslint:recommended', - 'plugin:react/recommended', - 'plugin:react-hooks/recommended', - ], - parserOptions: { - ecmaFeatures: { - jsx: true, - }, - ecmaVersion: 12, - sourceType: 'module', - }, - plugins: ['react', 'react-hooks'], - rules: { - 'react/react-in-jsx-scope': 'off', - 'react/prop-types': 'off', - 'no-unused-vars': ['error', { argsIgnorePattern: '^_' }], - 'prefer-const': 'error', - 'no-var': 'error', - 'curly': ['error', 'all'], - 'brace-style': ['error', '1tbs', { allowSingleLine: false }], - }, - settings: { - react: { - version: 'detect', - }, - }, - ignorePatterns: [ - 'node_modules/', - 'build/', - '.docusaurus/', - 'coverage/', - ], -}; \ No newline at end of file diff --git a/.vortex/docs/.gitignore b/.vortex/docs/.gitignore index ee19a09e12..f8f0581d46 100644 --- a/.vortex/docs/.gitignore +++ b/.vortex/docs/.gitignore @@ -4,13 +4,15 @@ # Production /build -# Generated files +# Generated files. `yarn start` writes to `.docusaurus-dev` so a concurrent +# `yarn build` cannot overwrite the files the dev server compiles from. .docusaurus +.docusaurus-dev .cache-loader -# Assembled docs versions - created by the CI publish step (or a local -# `docusaurus docs:version` to preview the multi-version site) and never -# committed; the build auto-detects `versioned_docs/` to switch to multi-version. +# Version snapshots. Only the disposable `docs_combined/` site carries them, so +# these never appear here in normal use; the pattern stays as a guard against a +# stray local `docusaurus docs:version` run being committed. /versioned_docs /versioned_sidebars /versions.json diff --git a/.vortex/docs/.utils/VideoRecorder.php b/.vortex/docs/.utils/VideoRecorder.php index 5ed5dceb34..8ed739a7df 100644 --- a/.vortex/docs/.utils/VideoRecorder.php +++ b/.vortex/docs/.utils/VideoRecorder.php @@ -24,6 +24,70 @@ final class VideoRecorder { public const LINE_HEIGHT = '1.1'; + /** + * Height the renderer draws a character at, in column widths. + * + * Passed to the renderer, so this is the value it uses rather than a copy of + * it. + */ + public const FONT_SIZE = '1.67'; + + /** + * Recorded output markers, keyed by the category they are reported under. + * + * A command that fails inside a recording still leaves asciinema exiting + * zero, so a failure is only visible in the text the command printed. + */ + public const ISSUE_PATTERNS = [ + 'error' => '#\berrors?\b|✖|✗#iu', + 'warning' => '#\bwarn(?:ing|ings|s)?\b#i', + 'failure' => '#\bfail(?:ed|ing|s|ure|ures)?\b#i', + ]; + + /** + * Fragments removed from a line before it is matched against ISSUE_PATTERNS. + * + * Paths, URLs, package names and command line options embed the marker words + * in identifiers ('symfony/error-handler', + * '--no-error-on-unmatched-pattern'), and tools report a clean run with an + * explicit zero count ('0 errors', 'warnings: 0'). + */ + public const ISSUE_EXEMPT_PATTERNS = [ + '#https?://\S+#', + '#\S+/\S+#', + '#(?pass("Cast time-scaled by {$factor}x"); } + /** + * Decode a cast into the plain text the recorded terminal displayed. + */ + public function castToText(string $cast_path): string { + if (!is_file($cast_path)) { + throw new RuntimeException("Cast file not found: $cast_path"); + } + + $lines = file($cast_path, FILE_IGNORE_NEW_LINES); + if ($lines === FALSE || count($lines) < 2) { + throw new RuntimeException("Cast file is empty or malformed: $cast_path"); + } + + // The whole stream is joined before it is stripped, because an escape + // sequence can be split across two recorded events and is only contiguous + // once they are concatenated. + $text = ''; + foreach (array_slice($lines, 1) as $line) { + $line = trim($line); + + if ($line === '') { + continue; + } + + $event = json_decode($line, TRUE); + + // Only 'o' events carry terminal output; 'i' and 'r' events carry input + // and resizes. + if (is_array($event) && ($event[1] ?? '') === 'o' && isset($event[2])) { + $text .= (string) $event[2]; + } + } + + return $this->stripAnsi($text); + } + + /** + * Remove the escape sequences that color and position recorded output. + */ + protected function stripAnsi(string $text): string { + $patterns = [ + // Operating system commands, such as the window title. + '#\x1b\][^\x07\x1b]*(?:\x07|\x1b\\\\)#', + // Control sequence introducer, covering colors and cursor movement. + '#\x1b\[[0-9;?]*[ -/]*[@-~]#', + // Two-character escapes left between the sequences above. + '#\x1b[@-Z\\\\-_]#', + ]; + + $stripped = preg_replace($patterns, '', $text); + if ($stripped === NULL) { + throw new RuntimeException('Failed to strip ANSI sequences from cast text'); + } + + // ISSUE_PATTERNS needs the 'u' modifier to carry '✖', and a 'u' pattern + // returns FALSE rather than no-match on invalid UTF-8, which would hide + // every marker on the offending line. + $stripped = mb_scrub($stripped, 'UTF-8'); + + // A carriage return redraws the current line, so each redraw becomes its + // own line rather than overwriting the text that was already recorded. + return str_replace(["\r\n", "\r"], "\n", $stripped); + } + + /** + * Write the plain text transcript of a cast and return its contents. + */ + public function writeTranscript(string $cast_path, string $transcript_path): string { + $text = $this->castToText($cast_path); + + $dir = dirname($transcript_path); + if (!is_dir($dir) && !mkdir($dir, 0o755, TRUE) && !is_dir($dir)) { + throw new RuntimeException("Failed to create transcript directory: $dir"); + } + + if (file_put_contents($transcript_path, $text) === FALSE) { + throw new RuntimeException("Failed to write transcript: $transcript_path"); + } + + $this->pass("Transcript written: $transcript_path"); + + return $text; + } + + /** + * Find the lines of recorded output that report an error or a warning. + * + * @return array + */ + public function findIssues(string $text): array { + $issues = []; + + foreach (explode("\n", $text) as $index => $line) { + $line = trim($line); + + if ($line === '') { + continue; + } + + $probe = preg_replace(self::ISSUE_EXEMPT_PATTERNS, ' ', $line); + if ($probe === NULL) { + throw new RuntimeException('Failed to apply issue exemptions to recorded output'); + } + + foreach (self::ISSUE_PATTERNS as $category => $pattern) { + if (preg_match($pattern, $probe) === 1) { + $issues[] = ['line' => $index + 1, 'category' => $category, 'text' => $line]; + + break; + } + } + } + + return $issues; + } + + /** + * Report the issues found in recorded output and fail when there are any. + * + * A published demo is a claim that the command runs clean, so a recording + * that reports an error, a warning or a failure is not rendered. + */ + public function assertNoIssues(string $name, string $text): void { + $issues = $this->findIssues($text); + + if ($issues === []) { + $this->pass("No errors, warnings or failures recorded in '$name'"); + + return; + } + + $grouped = []; + foreach ($issues as $issue) { + $key = $issue['category'] . '|' . $issue['text']; + $grouped[$key] ??= ['line' => $issue['line'], 'category' => $issue['category'], 'text' => $issue['text'], 'count' => 0]; + $grouped[$key]['count']++; + } + + $this->fail(sprintf("Recorded '%s' output reports %d issue line(s), %d unique:", $name, count($issues), count($grouped))); + + foreach ($grouped as $issue) { + $repeat = $issue['count'] > 1 ? sprintf(' (x%d)', $issue['count']) : ''; + $this->note(sprintf('line %d [%s]%s %s', $issue['line'], $issue['category'], $repeat, $this->truncate($issue['text']))); + } + + throw new RuntimeException(sprintf("Refusing to render '%s': fix the reported lines at the command that emits them and re-record", $name)); + } + + /** + * Shorten a reported line to keep the issue report readable. + */ + protected function truncate(string $text, int $length = 160): string { + return mb_strlen($text) > $length ? mb_substr($text, 0, $length - 3) . '...' : $text; + } + /** * Render the cast to an animated SVG via svg-term-render.js. */ @@ -398,6 +617,7 @@ public function renderSvg(string $cast_path, string $svg_path): void { $cast_path, $svg_path, '--line-height', self::LINE_HEIGHT, + '--font-size', self::FONT_SIZE, ]); if (!is_file($svg_path)) { @@ -459,6 +679,7 @@ public function renderPng(string $cast_path, string $png_path, ?int $at_ms = NUL $cast_path, $frame_svg, '--line-height', self::LINE_HEIGHT, + '--font-size', self::FONT_SIZE, '--at', (string) $at, ]); diff --git a/.vortex/docs/.utils/assemble-combined-docs.sh b/.vortex/docs/.utils/assemble-combined-docs.sh new file mode 100755 index 0000000000..0e4b8bdc8d --- /dev/null +++ b/.vortex/docs/.utils/assemble-combined-docs.sh @@ -0,0 +1,212 @@ +#!/usr/bin/env bash +## +# Assemble the combined documentation site, serving both majors from one build. +# +# Produces a complete, self-contained Docusaurus site in 'docs_combined/'. The +# current major is served at '/docs' with its assets at '/img'; the other major +# is served at '/docs/v{other}' with its assets at '/v{other}/img'. +# +# This checkout supplies the documentation for the major it ships +# ('VORTEX_DOCS_MAJOR'); the other major is read from its own branch. So a +# branch off 'main' is built as the current major and '{other}.x' is fetched, +# while a branch off '{other}.x' is built as the other major and 'main' is +# fetched. Everything the assembly writes stays inside 'docs_combined/', which +# is disposable - 'docs/' is only ever read. +# +# @usage +# cd .vortex && ./docs/.utils/assemble-combined-docs.sh + +set -eu +set -o pipefail +[ "${VORTEX_DEBUG-}" = "1" ] && set -x + +# The major served as the site's default version at the bare '/docs'. +VORTEX_CURRENT_MAJOR="${VORTEX_CURRENT_MAJOR:-1}" + +# The major this checkout ships. Defaults to the current major, which is the +# major that lives on the default branch. +VORTEX_DOCS_MAJOR="${VORTEX_DOCS_MAJOR:-${VORTEX_CURRENT_MAJOR}}" + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../../" && pwd)" +DOCS_DIR="${ROOT_DIR}/.vortex/docs" +COMBINED_DIR="${ROOT_DIR}/.vortex/docs_combined" + +sed_opts=(-i) && [ "$(uname)" = "Darwin" ] && sed_opts=(-i '') + +for major in "${VORTEX_CURRENT_MAJOR}" "${VORTEX_DOCS_MAJOR}"; do + case "${major}" in + 1 | 2) ;; + *) + echo "ERROR: Invalid major '${major}'. Expected 1 or 2." >&2 + exit 1 + ;; + esac +done + +case "${VORTEX_CURRENT_MAJOR}" in + 1) other_major=2 ;; + 2) other_major=1 ;; +esac + +# The current major lives on the default branch; every other major lives on its +# own '{N}.x' branch. Whichever side this checkout does not supply is fetched. +if [ "${VORTEX_DOCS_MAJOR}" = "${VORTEX_CURRENT_MAJOR}" ]; then + default_ref="" + other_ref="origin/${other_major}.x" +else + default_ref="origin/main" + other_ref="" +fi + +fetch_ref="${default_ref}${other_ref}" +fetch_branch="${fetch_ref#origin/}" + +git -C "${ROOT_DIR}" fetch origin "${fetch_branch}" --depth=1 || { + echo "ERROR: Failed to fetch the ${fetch_branch} branch." >&2 + exit 1 +} + +git -C "${ROOT_DIR}" rev-parse --verify "${fetch_ref}" >/dev/null || { + echo "ERROR: The ${fetch_branch} branch does not exist." >&2 + exit 1 +} + +## +# Replace a directory with a major's documentation tree. +# +# $1 - directory to populate. +# $2 - subdirectory of the documentation to read ('content' or 'static'). +# $3 - git ref to read from, or empty to read this checkout. +## +populate() { + local dest="${1}" + local tree="${2}" + local ref="${3}" + + rm -rf "${dest}" + mkdir -p "${dest}" + + if [ -z "${ref}" ]; then + cp -R "${DOCS_DIR}/${tree}/." "${dest}/" + else + git -C "${ROOT_DIR}" archive "${ref}:.vortex/docs/${tree}" | tar -x -C "${dest}" + fi + + [ -n "$(ls -A "${dest}")" ] || { + echo "ERROR: No '${tree}' found in ${ref:-this checkout}." >&2 + exit 1 + } +} + +## +# Materialise the repository files a major's documentation reads verbatim. +# +# A page pulls a shipped file in with '!!raw-loader!@site/../../', which +# resolves against the checkout the build runs in rather than the branch the +# page came from. The two majors do not ship the same files, so each major's +# targets are extracted from its own ref and the imports are re-pointed at +# those copies. +# +# $1 - directory holding the major's documentation. +# $2 - git ref the documentation came from, or empty to read this checkout. +# $3 - subdirectory of the combined site to hold the extracted files. +## +externalise() { + local dir="${1}" + local ref="${2}" + local tag="${3}" + local target="${COMBINED_DIR}/_external/${tag}" + + local paths + paths="$(grep -rhoE "raw-loader!@site/\.\./\.\./[^']+" "${dir}" 2>/dev/null | sed -E 's%raw-loader!@site/\.\./\.\./%%' | sort -u)" + + [ -n "${paths}" ] || return 0 + + mkdir -p "${target}" + + local path + while IFS= read -r path; do + [ -n "${path}" ] || continue + + mkdir -p "${target}/$(dirname "${path}")" + + if [ -z "${ref}" ]; then + cp "${ROOT_DIR}/${path}" "${target}/${path}" + else + git -C "${ROOT_DIR}" show "${ref}:${path}" >"${target}/${path}" + fi + done < serve-router.php + */ + +declare(strict_types=1); + +$doc_root = $_SERVER['DOCUMENT_ROOT']; +$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); +$path = is_string($path) ? rawurldecode($path) : '/'; + +// Reject traversal outside the build directory before touching the filesystem. +if (str_contains($path, '..')) { + http_response_code(400); + + return TRUE; +} + +$target = $doc_root . $path; + +// Serve an existing file as-is and let the server set the content type. +if (is_file($target)) { + return FALSE; +} + +$index = rtrim($target, '/') . '/index.html'; + +if (is_file($index)) { + header('Content-Type: text/html; charset=UTF-8'); + readfile($index); + + return TRUE; +} + +// Fall back to the site's own 404 page so navigation errors look like the site. +$not_found = $doc_root . '/404.html'; + +http_response_code(404); + +if (is_file($not_found)) { + header('Content-Type: text/html; charset=UTF-8'); + readfile($not_found); +} + +return TRUE; diff --git a/.vortex/docs/.utils/svg-term-render.js b/.vortex/docs/.utils/svg-term-render.js index e1f4c742e1..6c462655ce 100755 --- a/.vortex/docs/.utils/svg-term-render.js +++ b/.vortex/docs/.utils/svg-term-render.js @@ -11,6 +11,7 @@ * Options: * --at Timestamp of frame to render * --line-height Line height multiplier (default: 1.0) + * --font-size Character height in column widths (default: 1.67) * --font-family Font family (default: Consolas, monospace) */ @@ -30,6 +31,7 @@ if (args.length < 2 || args.includes('--help')) { console.log('Options:'); console.log(' --at Timestamp of frame to render'); console.log(' --line-height Line height multiplier (default: 1.0)'); + console.log(' --font-size Character height in column widths (default: 1.67)'); console.log(' --font-family Font family (default: Consolas, monospace)'); process.exit(args.includes('--help') ? 0 : 1); } @@ -40,6 +42,7 @@ const outputFile = args[1]; // Parse options. let at = null; let lineHeight = 1.0; +let fontSize = 1.67; let fontFamily = 'Consolas, "Courier New", Courier, "Liberation Mono", monospace'; for (let i = 2; i < args.length; i++) { @@ -49,6 +52,9 @@ for (let i = 2; i < args.length; i++) { } else if (args[i] === '--line-height' && i + 1 < args.length) { lineHeight = parseFloat(args[i + 1]); i++; + } else if (args[i] === '--font-size' && i + 1 < args.length) { + fontSize = parseFloat(args[i + 1]); + i++; } else if (args[i] === '--font-family' && i + 1 < args.length) { fontFamily = args[i + 1]; i++; @@ -129,7 +135,7 @@ const theme = { text: [171, 178, 191], // #abb2bf cursor: [82, 139, 255], // #528bff bold: [171, 178, 191], // #abb2bf - fontSize: 1.67, + fontSize: fontSize, lineHeight: lineHeight, fontFamily: fontFamily, }; @@ -150,6 +156,7 @@ try { fs.writeFileSync(outputFile, svg, 'utf8'); console.log(`SVG rendered successfully: ${outputFile}`); console.log(` lineHeight: ${lineHeight}`); + console.log(` fontSize: ${fontSize}`); console.log(` fontFamily: ${fontFamily}`); if (at !== null) { console.log(` at: ${at}ms`); diff --git a/.vortex/docs/.utils/update-docs.sh b/.vortex/docs/.utils/update-docs.sh index 4e78ddc37e..e909e51c73 100755 --- a/.vortex/docs/.utils/update-docs.sh +++ b/.vortex/docs/.utils/update-docs.sh @@ -5,7 +5,10 @@ # @usage # cd .vortex/docs && ./update-docs.sh # -# shellcheck disable=SC2129 +# The assertion markers below contain literal backticks: the table renders paths +# as inline code. +# +# shellcheck disable=SC2129,SC2016 set -eu [ "${VORTEX_DEBUG-}" = "1" ] && set -x @@ -15,14 +18,8 @@ ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../../" && pwd)" sed_opts=(-i) && [ "$(uname)" = "Darwin" ] && sed_opts=(-i '') OUTPUT_FILE="./content/development/variables.mdx" -sed "${sed_opts[@]}" '/## Variables list/,$d' "${OUTPUT_FILE}" - -echo "## Variables list" >>"${OUTPUT_FILE}" -echo "" >>"${OUTPUT_FILE}" -echo "The list below is automatically generated with [Shellvar](https://github.com/alexSkrypnyk/shellvar) from all Shell scripts. " >>"${OUTPUT_FILE}" -echo >>"${OUTPUT_FILE}" -docker run -v "${ROOT_DIR}:/app" drevops/shellvar:1.7.0 extract \ +table="$(docker run -v "${ROOT_DIR}:/app" drevops/shellvar:1.7.0 extract \ --skip-text="@docs:skip" \ --skip-description-prefix=";<" \ --skip-description-prefix=";>" \ @@ -39,10 +36,39 @@ docker run -v "${ROOT_DIR}:/app" drevops/shellvar:1.7.0 extract \ --fields='name=Name;description=Description;default_value=Default value;paths=Defined or used in' \ .env \ .env.local.example \ - .vortex/tooling/src \ scripts \ - .vortex/docs/.utils/variables/extra \ - >>"${OUTPUT_FILE}" + .vortex/docs/.utils/variables/extra)" + +# An input that yields no variables leaves the table unchanged, which the CI +# diff check reports as up-to-date docs. Each input is asserted to be present in +# the extracted table instead, before the file is written. +# +# $1 - substring marking the input in the "Defined or used in" column. +# $2 - input path to name in the failure message. +assert_source_present() { + case "${table}" in + *"${1}"*) return 0 ;; + esac + + echo "ERROR: Shellvar extracted no variables from '${2}'." >&2 + exit 1 +} + +# The 'sed' replacements below alias the 'extra' stub paths onto display labels, +# so the assertions run while the paths are still verbatim. +assert_source_present '`.env`' '.env' +assert_source_present '`.env.local.example`' '.env.local.example' +assert_source_present '`scripts/' 'scripts' +assert_source_present '`.vortex/docs/.utils/variables/extra/' '.vortex/docs/.utils/variables/extra' + +sed "${sed_opts[@]}" '/## Variables list/,$d' "${OUTPUT_FILE}" + +echo "## Variables list" >>"${OUTPUT_FILE}" +echo "" >>"${OUTPUT_FILE}" +echo "The list below is automatically generated with [Shellvar](https://github.com/alexSkrypnyk/shellvar) from all Shell scripts. " >>"${OUTPUT_FILE}" +echo >>"${OUTPUT_FILE}" + +printf '%s\n' "${table}" >>"${OUTPUT_FILE}" sed "${sed_opts[@]}" "s/.vortex\/docs\/.utils\/variables\/extra\/environment.variables.sh/ENVIRONMENT/g" "${OUTPUT_FILE}" sed "${sed_opts[@]}" "s/.vortex\/docs\/.utils\/variables\/extra\/acquia.variables.sh/ACQUIA ENVIRONMENT/g" "${OUTPUT_FILE}" @@ -51,6 +77,3 @@ sed "${sed_opts[@]}" "s/.vortex\/docs\/.utils\/variables\/extra\/.env.local.exam sed "${sed_opts[@]}" "s/.vortex\/docs\/.utils\/variables\/extra\/.env.variables.sh/.env/g" "${OUTPUT_FILE}" sed "${sed_opts[@]}" "s/.vortex\/docs\/.utils\/variables\/extra\/docker-compose.variables.sh/docker-compose.yml/g" "${OUTPUT_FILE}" sed "${sed_opts[@]}" "s/.vortex\/docs\/.utils\/variables\/extra\/ci.variables.sh/CI config/g" "${OUTPUT_FILE}" - -echo "---" >>"${OUTPUT_FILE}" -echo "Variable list generated with [Shellvar - Utility to work with shell variables](https://github.com/AlexSkrypnyk/shellvar)" >>"${OUTPUT_FILE}" diff --git a/.vortex/docs/.utils/update-videos.php b/.vortex/docs/.utils/update-videos.php index 0138fbdc26..f26768ac7e 100755 --- a/.vortex/docs/.utils/update-videos.php +++ b/.vortex/docs/.utils/update-videos.php @@ -20,15 +20,37 @@ * * Output is hardcoded to .vortex/docs/static/img/.{json,svg,png,gif}. * + * Every cast is decoded to plain text at .artifacts/videos/.txt and is + * not rendered when that text reports an error, a warning or a failure. + * * Usage: - * php update-videos.php # wipe + bootstrap + record all six + * php update-videos.php # wipe + bootstrap + record all * php update-videos.php lint provision # wipe + bootstrap + record lint, provision * php update-videos.php lint,test # commas also accepted * php update-videos.php --keep lint # reuse workspace, record lint only */ +/** + * Shape every recording is given: the 2560x1600 of a MacBook screen. + * + * A terminal is configured by its columns alone; VideoRecorder::rowsForAspect() + * turns that width and this ratio into the rows to record at. + */ +const ASPECT_RATIO = 2560 / 1600; + +const PROMPT_DELAY = 1; + const WORKSPACE_REL = '.artifacts/tmp/videos-workspace'; +/** + * Where the plain text decoded from each cast is written. + * + * The output check reports line numbers against this text, so it is kept for + * inspection. It is working material and not a published artifact, so it lives + * outside the docs static directory. + */ +const TRANSCRIPT_REL = '.artifacts/videos'; + const COMPOSE_PROJECT = 'vortex_videos'; /** @@ -37,7 +59,8 @@ * - command: the command executed inside the recording. NULL means the * install expect script is used instead. * - speed: playback speed multiplier. 1.0 = recorded speed, 2.0 = 2x faster. - * - cols/rows: terminal dimensions passed to asciinema and used for renders. + * - cols: columns the terminal is recorded at. The rows follow from + * ASPECT_RATIO, so a recording cannot end up an arbitrary shape. * - poster_ms: cast timestamp (ms) at which the PNG poster frame is taken. * NULL means use the last frame of the cast. * - typer: wrap the command with the simulated-typing intro from @@ -59,7 +82,6 @@ 'command' => 'ahoy build', 'speed' => 1.0, 'cols' => 80, - 'rows' => 42, 'poster_ms' => 2000, 'typer' => TRUE, ], @@ -67,7 +89,6 @@ 'command' => 'ahoy provision', 'speed' => 1.0, 'cols' => 80, - 'rows' => 42, 'poster_ms' => NULL, 'typer' => TRUE, ], @@ -75,7 +96,6 @@ 'command' => 'ahoy lint', 'speed' => 2.0, 'cols' => 80, - 'rows' => 42, 'poster_ms' => NULL, 'typer' => TRUE, ], @@ -83,7 +103,6 @@ 'command' => 'ahoy test', 'speed' => 2.0, 'cols' => 80, - 'rows' => 42, 'poster_ms' => 2000, 'typer' => TRUE, ], @@ -91,10 +110,30 @@ 'command' => 'ahoy test-bdd', 'speed' => 1.0, 'cols' => 80, - 'rows' => 42, 'poster_ms' => 2000, 'typer' => TRUE, ], + 'info' => [ + 'command' => 'ahoy info', + 'speed' => 1.0, + 'cols' => 80, + 'poster_ms' => NULL, + 'typer' => TRUE, + ], + 'doctor' => [ + 'command' => 'ahoy doctor', + 'speed' => 1.0, + 'cols' => 80, + 'poster_ms' => NULL, + 'typer' => TRUE, + ], + 'doctor-info' => [ + 'command' => 'ahoy doctor info', + 'speed' => 1.0, + 'cols' => 80, + 'poster_ms' => NULL, + 'typer' => TRUE, + ], ]; function usage(): void { @@ -109,6 +148,10 @@ function usage(): void { fwrite(STDERR, "--keep reuses the existing workspace and skips the bootstrap. Requires the\n"); fwrite(STDERR, "Docker stack to be running (the script probes and exits cleanly otherwise).\n"); fwrite(STDERR, "\n"); + fwrite(STDERR, "Each recording is decoded to '.artifacts/videos/.txt' and is not\n"); + fwrite(STDERR, "rendered when that text reports an error, a warning or a failure. There is\n"); + fwrite(STDERR, "no override: fix the command that emits the output and record again.\n"); + fwrite(STDERR, "\n"); fwrite(STDERR, "Video names may be space or comma separated (lint test = lint,test).\n"); } @@ -259,6 +302,11 @@ function render_video(VideoRecorder $recorder, string $name, string $workspace, $recorder->applyTimeScale($cast, 1.0 / (float) $cfg['speed']); } + // Decoded from the post-processed cast, so the transcript carries the + // anonymised paths and masked credentials rather than what was recorded. + $text = $recorder->writeTranscript($cast, $recorder->project_root . '/' . TRANSCRIPT_REL . "/$name.txt"); + $recorder->assertNoIssues($name, $text); + $recorder->renderSvg($cast, $docs_static_dir . "/$name.svg"); $recorder->renderPng($cast, $docs_static_dir . "/$name.png", $cfg['poster_ms'] === NULL ? NULL : (int) $cfg['poster_ms']); } @@ -282,7 +330,7 @@ function record_install(VideoRecorder $recorder, string $workspace, string $proj command: $expect_script, title: 'Vortex CLI install demo', cols: (int) $cfg['cols'], - rows: (int) $cfg['rows'], + rows: VideoRecorder::rowsForAspect((int) $cfg['cols'], ASPECT_RATIO), ); // The keystrokes are aimed by position, and the script cannot tell a panel it @@ -318,7 +366,7 @@ function record_command_video(VideoRecorder $recorder, string $name, string $pro title: "Vortex $cmd Demo", env: $env, cols: (int) $cfg['cols'], - rows: (int) $cfg['rows'], + rows: VideoRecorder::rowsForAspect((int) $cfg['cols'], ASPECT_RATIO), ); render_video($recorder, $name, $workspace, $docs_static_dir); @@ -367,7 +415,7 @@ function main(array $argv): int { $recorder->note('Requested: ' . implode(', ', $requested)); $recorder->note('Mode: ' . ($keep ? 'reuse workspace (--keep)' : 'wipe + bootstrap')); - $needs_built_project = array_intersect($requested, ['build', 'provision', 'lint', 'test', 'test-bdd']) !== []; + $needs_built_project = array_intersect($requested, ['build', 'provision', 'lint', 'test', 'test-bdd', 'info', 'doctor', 'doctor-info']) !== []; $extra_deps = ['expect']; if ($needs_built_project) { @@ -427,7 +475,7 @@ function main(array $argv): int { } } - $order = ['build', 'provision', 'lint', 'test', 'test-bdd']; + $order = ['build', 'info', 'doctor', 'doctor-info', 'provision', 'lint', 'test', 'test-bdd']; foreach ($order as $name) { if (!in_array($name, $requested, TRUE)) { continue; diff --git a/.vortex/docs/.utils/variables/extra/acquia.variables.sh b/.vortex/docs/.utils/variables/extra/acquia.variables.sh index e0795e44dc..ec9ff8a937 100755 --- a/.vortex/docs/.utils/variables/extra/acquia.variables.sh +++ b/.vortex/docs/.utils/variables/extra/acquia.variables.sh @@ -17,25 +17,25 @@ VORTEX_PROVISION_ACQUIA_SKIP= # NewRelic API key, usually of type 'USER'. # -# @see https://www.vortextemplate.com/docs/deployment/notifications#new-relic +# @see https://www.vortextemplate.com/docs/deployment/notifications/newrelic VORTEX_NOTIFY_NEWRELIC_APIKEY= # JIRA API token. # -# @see https://www.vortextemplate.com/docs/deployment/notifications#jira +# @see https://www.vortextemplate.com/docs/deployment/notifications/jira VORTEX_NOTIFY_JIRA_TOKEN= # GitHub token. # -# @see https://www.vortextemplate.com/docs/deployment/notifications#github +# @see https://www.vortextemplate.com/docs/deployment/notifications/github VORTEX_NOTIFY_GITHUB_TOKEN= # Slack webhook URL. # The incoming Webhook URL from your Slack app configuration. -# @see https://www.vortextemplate.com/docs/deployment/notifications#slack +# @see https://www.vortextemplate.com/docs/deployment/notifications/slack VORTEX_NOTIFY_SLACK_WEBHOOK="${VORTEX_NOTIFY_SLACK_WEBHOOK:-}" # Custom webhook URL. # -# @see https://www.vortextemplate.com/docs/deployment/notifications#webhook +# @see https://www.vortextemplate.com/docs/deployment/notifications/webhook VORTEX_NOTIFY_WEBHOOK_URL= diff --git a/.vortex/docs/.utils/variables/extra/ci.variables.sh b/.vortex/docs/.utils/variables/extra/ci.variables.sh index bf9a4b5350..7e81da0e51 100755 --- a/.vortex/docs/.utils/variables/extra/ci.variables.sh +++ b/.vortex/docs/.utils/variables/extra/ci.variables.sh @@ -21,6 +21,9 @@ VORTEX_DEPLOY_ALLOW_LABEL= # Proceed with container image push after it was exported. VORTEX_EXPORT_DB_CONTAINER_REGISTRY_PUSH_PROCEED= +# Set to `1` to remove preinstalled toolchains from the GitHub Actions runner and free disk space. +VORTEX_CI_FREE_DISK_SPACE= + # Ignore Hadolint failures. VORTEX_CI_HADOLINT_IGNORE_FAILURE=0 diff --git a/.vortex/docs/.utils/variables/extra/environment.variables.sh b/.vortex/docs/.utils/variables/extra/environment.variables.sh index ee903d9ab2..a07263cf20 100755 --- a/.vortex/docs/.utils/variables/extra/environment.variables.sh +++ b/.vortex/docs/.utils/variables/extra/environment.variables.sh @@ -24,5 +24,5 @@ ENVIRONMENT_TYPE= # or secret. If not set, a fallback is derived from the database host, which is # suitable for local and CI use only. # -# @see https://www.vortextemplate.com/docs/drupal/settings +# @see https://www.vortextemplate.com/docs/development/settings DRUPAL_HASH_SALT="" diff --git a/.vortex/docs/.utils/variables/extra/lagoon.variables.sh b/.vortex/docs/.utils/variables/extra/lagoon.variables.sh index e3517f1f32..ea294e48c8 100755 --- a/.vortex/docs/.utils/variables/extra/lagoon.variables.sh +++ b/.vortex/docs/.utils/variables/extra/lagoon.variables.sh @@ -18,25 +18,25 @@ NEWRELIC_LICENSE= # Notification NewRelic API key, usually of type 'USER'. # -# @see https://www.vortextemplate.com/docs/deployment/notifications#new-relic +# @see https://www.vortextemplate.com/docs/deployment/notifications/newrelic VORTEX_NOTIFY_NEWRELIC_APIKEY= # Notification JIRA API token. # -# @see https://www.vortextemplate.com/docs/deployment/notifications#jira +# @see https://www.vortextemplate.com/docs/deployment/notifications/jira VORTEX_NOTIFY_JIRA_TOKEN= # Notification GitHub token. # -# @see https://www.vortextemplate.com/docs/deployment/notifications#github +# @see https://www.vortextemplate.com/docs/deployment/notifications/github VORTEX_NOTIFY_GITHUB_TOKEN= # Notification Slack webhook URL. # The incoming Webhook URL from your Slack app configuration. -# @see https://www.vortextemplate.com/docs/deployment/notifications#slack +# @see https://www.vortextemplate.com/docs/deployment/notifications/slack VORTEX_NOTIFY_SLACK_WEBHOOK="${VORTEX_NOTIFY_SLACK_WEBHOOK:-}" # Notification custom webhook URL. # -# @see https://www.vortextemplate.com/docs/deployment/notifications#webhook +# @see https://www.vortextemplate.com/docs/deployment/notifications/webhook VORTEX_NOTIFY_WEBHOOK_URL= diff --git a/.vortex/docs/.utils/variables/variables.excluded.txt b/.vortex/docs/.utils/variables/variables.excluded.txt index db0cfa4239..d3f82c5164 100755 --- a/.vortex/docs/.utils/variables/variables.excluded.txt +++ b/.vortex/docs/.utils/variables/variables.excluded.txt @@ -1,10 +1,13 @@ CI COMPOSER_MEMORY_LIMIT DOCKER_BUILDKIT +GENERATED_CONTENT_CREATE HOME IFS PATH +SCRIPT_DIR SRC_TMPDIR +TARGET_ENV_REMAP TEST_PACKAGE_TOKEN VORTEX_DOCTOR_CHECK_PREFLIGHT VORTEX_PROVISION_LOG_ACTIVE diff --git a/.vortex/docs/CLAUDE.md b/.vortex/docs/CLAUDE.md index 57ecca8311..4777c1d10b 100644 --- a/.vortex/docs/CLAUDE.md +++ b/.vortex/docs/CLAUDE.md @@ -59,16 +59,16 @@ Categories defined in `sidebars.js`. For subdirectories: ## Documentation videos -Six terminal demo videos live in `static/img/` (`cli-install.*`, `build.*`, -`provision.*`, `lint.*`, `test.*`, `test-bdd.*`), each as a `.json` asciicast + -`.svg` + `.png` poster. They are generated by a single PHP script +Nine terminal demo videos live in `static/img/` (`cli-install.*`, `build.*`, +`provision.*`, `lint.*`, `test.*`, `test-bdd.*`, `info.*`, `doctor.*`, +`doctor-info.*`), each as a `.json` asciicast + `.svg` + `.png` poster. They are generated by a single PHP script (`.utils/update-videos.php`) driven by the shared `VideoRecorder` class. Run `ahoy update-videos [names]` from `.vortex/`. See `.vortex/CLAUDE.md` for the staleness triggers (which code change invalidates which video). | Command | Regenerates | |----------------------------------------|------------------------------------------------| -| `ahoy update-videos` | Wipe workspace + bootstrap + record all six | +| `ahoy update-videos` | Wipe workspace + bootstrap + record all | | `ahoy update-videos lint provision` | Wipe + bootstrap + record only lint, provision | | `ahoy update-videos lint,test` | Comma-separated list also accepted | | `ahoy update-videos --keep lint` | Skip bootstrap, re-record lint only | @@ -87,9 +87,12 @@ timestamp, typer on/off) live in the `VIDEOS` array at the top of **Pipeline**: 1. Runs the CLI non-interactively (or via `expect` when `cli-install` is in the requested set) using `--uri=`, producing `$workspace/star_wars`. -2. If any of `build`, `provision`, `lint`, `test`, `test-bdd` is requested, `ahoy build` runs **once** in `$workspace/star_wars` (either as the recorded `build` video or silently). -3. Remaining requested commands (`provision`, `lint`, `test`, `test-bdd`) are recorded in that same `star_wars` directory, in fixed order. -4. The workspace and Docker stack are preserved at exit so the next `--keep` invocation can reuse them; a stale workspace from a previous run is torn down at the **start** of the next non-`--keep` run. +2. If any of `build`, `provision`, `lint`, `test`, `test-bdd`, `info`, `doctor`, `doctor-info` is requested, `ahoy build` runs **once** in `$workspace/star_wars` (either as the recorded `build` video or silently). +3. Remaining requested commands (`info`, `doctor`, `doctor-info`, `provision`, `lint`, `test`, `test-bdd`) are recorded in that same `star_wars` directory, in fixed order. +4. Each cast is decoded to plain text at `.artifacts/videos/.txt` and checked before it is rendered; a recording whose output reports an error, a warning or a failure is not turned into an SVG. +5. The workspace and Docker stack are preserved at exit so the next `--keep` invocation can reuse them; a stale workspace from a previous run is torn down at the **start** of the next non-`--keep` run. + +**Output check**: a published demo is a claim that the command it records runs clean, so the decoded transcript is matched against `VideoRecorder::ISSUE_PATTERNS`, with `VideoRecorder::ISSUE_EXEMPT_PATTERNS` removing the fragments that carry a marker word without reporting anything (paths, URLs, package names, command line options, and zero counts such as `0 errors` or `warnings: 0`). The report names every offending line with the line number it holds in the transcript, and groups repeated identical lines. There is no override flag - output that cannot be fixed here is fixed at the command that emits it. The transcript is working material rather than a published artifact, so `.artifacts/` is gitignored and nothing under it is committed. **Iterating on one video** - use `--keep` so the install + build happens only once, then replay the recording against the preserved project: diff --git a/.vortex/docs/content/README.mdx b/.vortex/docs/content/README.mdx index ade97c3edd..e1353867f8 100644 --- a/.vortex/docs/content/README.mdx +++ b/.vortex/docs/content/README.mdx @@ -2,7 +2,7 @@ title: '' sidebar_label: Introduction sidebar_position: 1 -description: Vortex is a Drupal project template designed to streamline onboarding, accelerate development, and support long-term maintainability. It provides a complete foundation for building and deploying Drupal sites — including containerized local environments, automated testing and code quality tools, continuous integration pipeline configurations, and integrations with popular hosting platforms. Everything is pre-configured and ready to use, so teams can focus on building features instead of setting up infrastructure. +description: Vortex is a Drupal project template designed to streamline onboarding, accelerate development, and support long-term maintainability. It provides a complete foundation for building and deploying Drupal sites - including containerized local environments, automated testing and code quality tools, continuous integration pipeline configurations, and integrations with popular hosting platforms. Everything is pre-configured and ready to use, so teams can focus on building features instead of setting up infrastructure. --- @@ -19,7 +19,7 @@ description: Vortex is a Drupal project template designed to streamline onboardi **Vortex** is a Drupal project template designed to streamline onboarding, accelerate development, and support long-term maintainability. -It provides a complete foundation for building and deploying Drupal sites — +It provides a complete foundation for building and deploying Drupal sites - including containerized local environments, automated testing and code quality tools, continuous integration pipeline configurations, and integrations with popular hosting platforms. Everything is pre-configured and ready to use, so teams can focus on @@ -32,10 +32,10 @@ and start contributing right away. The template is actively maintained and kept in sync with the latest tools. Every change is verified through automated tests to ensure updates remain stable -and reliable — reducing the risk of regressions and making it easier to maintain +and reliable - reducing the risk of regressions and making it easier to maintain projects over time. -Learn more about Vortex from our [DrupalSouth 2025 presentation](https://docs.google.com/presentation/d/e/2PACX-1vQMBTteMr6cALYGtI3xwqvt9HFpzSzTsV3ie5qhVMPK5eSZBudyQp7H1_Wfoy7HMYqfgN2ooH4rlWJL/pub?start=false&loop=false&delayms=5000) +Learn more about **Vortex** from our [DrupalSouth 2025 presentation](https://docs.google.com/presentation/d/e/2PACX-1vQMBTteMr6cALYGtI3xwqvt9HFpzSzTsV3ie5qhVMPK5eSZBudyQp7H1_Wfoy7HMYqfgN2ooH4rlWJL/pub?start=false&loop=false&delayms=5000) ([Google Slides](https://docs.google.com/presentation/d/1nsFfd9C_ddKD5O0sQeJ8_6pJjU0XWaXXwDmD0SwCIL4/) | [PDF](https://docs.google.com/presentation/d/1nsFfd9C_ddKD5O0sQeJ8_6pJjU0XWaXXwDmD0SwCIL4/export/pdf)). @@ -80,7 +80,7 @@ foundation for developing and maintaining Drupal projects. maxWidth: '120px' }}>
📦
-
Template
+
Template
+
@@ -92,7 +92,7 @@ foundation for developing and maintaining Drupal projects. maxWidth: '120px' }}>
📖
-
Documentation
+
Documentation
+
@@ -124,7 +124,7 @@ foundation for developing and maintaining Drupal projects. ### 📖 Documentation
    -
  • 🌐 Centralised documentation at https://www.vortextemplate.com
  • +
  • 🌐 Centralized documentation at https://www.vortextemplate.com
  • 🗂️ Scaffolded structure for project-specific docs
  • 📋 Onboarding checklist to guide team setup
@@ -134,8 +134,8 @@ foundation for developing and maintaining Drupal projects.
  • 📦 Adds boilerplate files based on custom selections
  • 🏗️ Renames files and replaces strings during installation
  • -
  • 🔄️ Allows to update existing installations to a newer boilerplate version
  • -
  • 🔌 Standalone CLI application extensible with a flexible API to support new integrations
  • +
  • 🔄️ Updates existing installations to a newer boilerplate version
  • +
  • 🔌 Standalone CLI application extensible with an API to support new integrations
## 🧱 Solid base for your projects diff --git a/.vortex/docs/content/_code-lifecycle.mdx b/.vortex/docs/content/_code-lifecycle.mdx index 7f181610b2..7af9447a1b 100644 --- a/.vortex/docs/content/_code-lifecycle.mdx +++ b/.vortex/docs/content/_code-lifecycle.mdx @@ -50,13 +50,4 @@ ═════════════════════════════════════════════════════════════════════════════════════════ ┊ PR Environment ┊ Dev Staging Production ┊ (auto-removed) ┊ develop branch main branch production branch or tag - - - Security Audit Workflow - ═════════════════════════════════════════════════════════════════════════════════════════ - Push, pull request or manual run ──► Gitleaks secret scan ──► Composer advisory audit - (committed secrets) (composer audit --locked) - - Runs as its own workflow, independently of the pipeline above, and does not gate - deployment. ``` diff --git a/.vortex/docs/content/architecture.mdx b/.vortex/docs/content/architecture.mdx index dae4ac3583..a51d78fbb6 100644 --- a/.vortex/docs/content/architecture.mdx +++ b/.vortex/docs/content/architecture.mdx @@ -18,28 +18,8 @@ maintainability: and avoids reinvention. - **Avoid silent errors**: Misconfigurations should fail loudly. - **Readability counts**: Code and configuration are meant to be understood. -- **Explicit logging helps**: Scripts log every major step, so it’s easy to - follow what’s going on. - -## System components - -The system is made up of several modular pieces that work together: - -- Local development environment -- Drupal management -- Code quality and testing tools -- Continuous integration workflows -- Hosting provider configurations -- Automated dependency updates -- Project documentation -- Automation scripts to connect components - -You can see how these parts connect in the diagram below: - - -System components -System components - +- **Explicit logging helps**: Scripts log every major step, so it's easy to + follow what's going on. ## Code lifecycle @@ -47,14 +27,12 @@ You can see how these parts connect in the diagram below: environments. This ensures that the same steps are followed everywhere, reducing the chance of errors and making processes predictable. -
- Expand to see the complete code lifecycle diagram +The lifecycle below is the map of the whole system - every section of this page +describes one of its stages: import CodeLifecycle from './_code-lifecycle.mdx'; - - -
+ ## Local development environment @@ -94,7 +72,7 @@ rule cannot express them: The other two ignore files apply the same deny-list model to different targets: - `.dockerignore` controls the container image build context. - ➡️ See [Tools > Docker](./tools/docker#build-context-and-dockerignore) + ➡️ See [Tools > Docker](./development/environment/docker#build-context-and-dockerignore) - `.gitignore.artifact` controls the deployment artifact. ➡️ See [Deployment > Artifact](./deployment/artifact#artifact-file-control) @@ -113,14 +91,14 @@ running Drush commands, you run a single provision script. This script handles: - Running updates, config imports, cache rebuilds, and deploy hooks - Executing post-provision custom scripts -Because provisioning is centralized, it runs exactly in the same way in every +Because provisioning is centralized, it runs the same way in every environment: local, CI, or hosting. This eliminates "works on my machine" problems and makes the process predictable for everyone. -It also allows to add more automation around provisioning, like conditionally +It also makes it possible to add more automation around provisioning, like conditionally running migrations or creating demo content. -➡️ See [Drupal > Provision](./drupal/provision) +➡️ See [Drupal > Provision](./development/provision) ### Module and theme scaffolds @@ -133,8 +111,8 @@ tests. These show you how to: Use these scaffolds as starting points for your own work. -➡️ See [Drupal > Module Scaffold](./drupal/module-scaffold) -and [Drupal > Theme Scaffold](./drupal/theme-scaffold) +➡️ See [Drupal > Module Scaffold](./development/modules/module-scaffold) +and [Drupal > Theme Scaffold](./development/themes) ### Settings management @@ -148,12 +126,12 @@ Here's how it works: environment inside each module-specific file. This structure gives you clarity, avoids config sprawl, and lets you remove a -module’s settings cleanly when no longer needed. +module's settings cleanly when no longer needed. **Vortex** also includes tests for these settings to ensure they are loaded correctly in each environment. -➡️ See [Drupal > Settings](./drupal/settings) +➡️ See [Drupal > Settings](./development/settings) ## Code quality and testing @@ -164,13 +142,15 @@ correctly in each environment. - **Rector** - **Twig CS Fixer** - **ESLint** +- **Stylelint** -You’ll also find scaffolds for: +You'll also find scaffolds for: - **PHPUnit**: Unit and kernel testing - **Behat**: Behavior-driven testing with screenshot capture and extra steps +- **Jest**: JavaScript unit testing -➡️ See [Tools](./tools) +➡️ See [Tools](./development) ## Continuous integration workflows @@ -211,7 +191,7 @@ integrations. You can host RenovateBot yourself or use the cloud version, and you can tweak the schedule as needed. -➡️ See [Tools > Renovate](./tools/renovate) +➡️ See [Tools > Renovate](./development/dependency-updates) ## Documentation & onboarding @@ -231,10 +211,36 @@ These scripts: - Support environment variables to adapt behavior - Are modular and easy to extend +The scripts are not part of the template's own files: they are a dependency. +Your project's `composer.json` requires `drevops/vortex-tooling` with a tilde +constraint (`~1.4.0` in the shipped template), which accepts patch releases but +holds the minor version, so a new minor release cannot reach your deployments +until you raise the constraint yourself. Once installed, every script is +available as a Composer binary at `vendor/bin/vortex-