diff --git a/.github/workflows/coding-standards.yml b/.github/workflows/coding-standards.yml index 50190ae045045..3a2061c113a89 100644 --- a/.github/workflows/coding-standards.yml +++ b/.github/workflows/coding-standards.yml @@ -70,10 +70,12 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + with: + show-progress: ${{ runner.debug == '1' && 'true' || 'false' }} - name: Set up PHP - uses: shivammathur/setup-php@d30ad8b1843ace22e6698ab99bbafaa747b6bd0d # v2.24.0 + uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2.25.4 with: php-version: '7.4' coverage: none @@ -86,7 +88,7 @@ jobs: run: echo "date=$(/bin/date -u --date='last Mon' "+%F")" >> $GITHUB_OUTPUT - name: Cache PHPCS scan cache - uses: actions/cache@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0 # v3.2.6 + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 with: path: | .cache/phpcs-src.json @@ -145,10 +147,12 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + with: + show-progress: ${{ runner.debug == '1' && 'true' || 'false' }} - name: Set up Node.js - uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0 + uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version-file: '.nvmrc' cache: npm diff --git a/.github/workflows/end-to-end-tests.yml b/.github/workflows/end-to-end-tests.yml index 1e3e442752d58..42eab6ff447da 100644 --- a/.github/workflows/end-to-end-tests.yml +++ b/.github/workflows/end-to-end-tests.yml @@ -68,10 +68,12 @@ jobs: echo "PHP_FPM_GID=$(id -g)" >> $GITHUB_ENV - name: Checkout repository - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + with: + show-progress: ${{ runner.debug == '1' && 'true' || 'false' }} - name: Set up Node.js - uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0 + uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version-file: '.nvmrc' cache: npm diff --git a/.github/workflows/javascript-tests.yml b/.github/workflows/javascript-tests.yml index 2677096b1b7e0..5ba18a62c502a 100644 --- a/.github/workflows/javascript-tests.yml +++ b/.github/workflows/javascript-tests.yml @@ -62,10 +62,12 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + with: + show-progress: ${{ runner.debug == '1' && 'true' || 'false' }} - name: Set up Node.js - uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0 + uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version-file: '.nvmrc' cache: npm diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 53b9efb6ba462..44026c5593ebb 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -44,6 +44,8 @@ env: # changed if we want to normalize results against a different baseline. BASE_TAG: '6.1.1' LOCAL_DIR: build + TARGET_REF: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.ref || '' }} + TARGET_SHA: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.sha || github.event.before }} jobs: # Runs the performance test suite. @@ -65,9 +67,17 @@ jobs: # - Install MU plugin. # - Run performance tests (current commit). # - Print performance tests results. + # - Check out target commit (target branch or previous commit). + # - Install npm dependencies. + # - Build WordPress. + # - Run performance tests (previous/target commit). + # - Print target performance tests results. + # - Reset to original commit. # - Set the environment to the baseline version. # - Run baseline performance tests. - # - Print base line performance tests results. + # - Print baseline performance tests results. + # - Compare results with base. + # - Add workflow summary. # - Set the base sha. # - Set commit details. # - Publish performance results. @@ -87,10 +97,12 @@ jobs: echo "PHP_FPM_GID=$(id -g)" >> $GITHUB_ENV - name: Checkout repository - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + with: + show-progress: ${{ runner.debug == '1' && 'true' || 'false' }} - name: Set up Node.js - uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0 + uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version-file: '.nvmrc' cache: npm @@ -152,7 +164,31 @@ jobs: run: npm run test:performance - name: Print performance tests results - run: "node ./tests/performance/results.js" + run: node ./tests/performance/results.js + + - name: Check out target commit (target branch or previous commit) + run: | + if [[ -z "$TARGET_REF" ]]; then + git fetch -n origin $TARGET_SHA + else + git fetch -n origin $TARGET_REF + fi + git reset --hard $TARGET_SHA + + - name: Install npm dependencies + run: npm ci + + - name: Build WordPress + run: npm run build + + - name: Run target performance tests (base/previous commit) + run: npm run test:performance -- --prefix=before + + - name: Print target performance tests results + run: node ./tests/performance/results.js --prefix=before + + - name: Reset to original commit + run: git reset --hard $GITHUB_SHA - name: Set the environment to the baseline version run: | @@ -162,8 +198,14 @@ jobs: - name: Run baseline performance tests run: npm run test:performance -- --prefix=base - - name: Print base line performance tests results - run: "node ./tests/performance/results.js --prefix=base" + - name: Print baseline performance tests results + run: node ./tests/performance/results.js --prefix=base + + - name: Compare results with base + run: node ./tests/performance/compare-results.js ${{ runner.temp }}/summary.md + + - name: Add workflow summary + run: cat ${{ runner.temp }}/summary.md >> $GITHUB_STEP_SUMMARY - name: Set the base sha # Only needed when publishing results. diff --git a/.github/workflows/php-compatibility.yml b/.github/workflows/php-compatibility.yml index 44ddf710bdc59..5d1c5b03c3566 100644 --- a/.github/workflows/php-compatibility.yml +++ b/.github/workflows/php-compatibility.yml @@ -65,10 +65,12 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + with: + show-progress: ${{ runner.debug == '1' && 'true' || 'false' }} - name: Set up PHP - uses: shivammathur/setup-php@d30ad8b1843ace22e6698ab99bbafaa747b6bd0d # v2.24.0 + uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2.25.4 with: php-version: '7.4' coverage: none @@ -85,7 +87,7 @@ jobs: run: echo "date=$(/bin/date -u --date='last Mon' "+%F")" >> $GITHUB_OUTPUT - name: Cache PHP compatibility scan cache - uses: actions/cache@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0 # v3.2.6 + uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 with: path: .cache/phpcompat.json key: ${{ runner.os }}-date-${{ steps.get-date.outputs.date }}-phpcompat-cache-${{ hashFiles('**/composer.json', 'phpcompat.xml.dist') }} diff --git a/.github/workflows/phpunit-tests-run.yml b/.github/workflows/phpunit-tests-run.yml index 843a950481f19..96280b84aa28b 100644 --- a/.github/workflows/phpunit-tests-run.yml +++ b/.github/workflows/phpunit-tests-run.yml @@ -85,10 +85,12 @@ jobs: echo "PHP_FPM_GID=$(id -g)" >> $GITHUB_ENV - name: Checkout repository - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + with: + show-progress: ${{ runner.debug == '1' && 'true' || 'false' }} - name: Set up Node.js - uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0 + uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version-file: '.nvmrc' cache: npm @@ -101,7 +103,7 @@ jobs: # dependency versions are installed and cached. ## - name: Set up PHP - uses: shivammathur/setup-php@d30ad8b1843ace22e6698ab99bbafaa747b6bd0d # v2.24.0 + uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2.25.4 with: php-version: '${{ inputs.php }}' coverage: none @@ -165,6 +167,7 @@ jobs: # __fakegroup__ is excluded to force PHPUnit to ignore the settings in phpunit.xml.dist. - name: Run (Xdebug) tests + if: ${{ inputs.php != '8.3' }} run: LOCAL_PHP_XDEBUG=true node ./tools/local-env/scripts/docker.js run php ./vendor/bin/phpunit -v --group xdebug --exclude-group __fakegroup__ - name: Ensure version-controlled files are not modified or deleted @@ -172,10 +175,11 @@ jobs: - name: Checkout the WordPress Test Reporter if: ${{ github.repository == 'WordPress/wordpress-develop' && github.ref == 'refs/heads/trunk' && inputs.report }} - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 with: repository: 'WordPress/phpunit-test-runner' path: 'test-runner' + show-progress: ${{ runner.debug == '1' && 'true' || 'false' }} - name: Submit test results to the WordPress.org host test results if: ${{ github.repository == 'WordPress/wordpress-develop' && github.ref == 'refs/heads/trunk' && inputs.report }} diff --git a/.github/workflows/phpunit-tests.yml b/.github/workflows/phpunit-tests.yml index 3b616e1c485a3..7edf91608093c 100644 --- a/.github/workflows/phpunit-tests.yml +++ b/.github/workflows/phpunit-tests.yml @@ -39,12 +39,13 @@ jobs: uses: WordPress/wordpress-develop/.github/workflows/phpunit-tests-run.yml@trunk permissions: contents: read + secrets: inherit if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} strategy: fail-fast: false matrix: os: [ ubuntu-latest ] - php: [ '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2' ] + php: [ '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3' ] db-type: [ 'mysql' ] db-version: [ '5.7', '8.0' ] multisite: [ false, true ] @@ -90,12 +91,13 @@ jobs: uses: WordPress/wordpress-develop/.github/workflows/phpunit-tests-run.yml@trunk permissions: contents: read + secrets: inherit if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} strategy: fail-fast: false matrix: os: [ ubuntu-latest ] - php: [ '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2' ] + php: [ '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3' ] db-type: [ 'mariadb' ] db-version: [ '10.4', '10.6', '10.11', '11.0' ] multisite: [ false, true ] diff --git a/.github/workflows/slack-notifications.yml b/.github/workflows/slack-notifications.yml index 2d7674b3aabc8..dbab11ed01c8e 100644 --- a/.github/workflows/slack-notifications.yml +++ b/.github/workflows/slack-notifications.yml @@ -161,7 +161,7 @@ jobs: steps: - name: Post failure notifications to Slack - uses: slackapi/slack-github-action@007b2c3c751a190b6f0f040e47ed024deaa72844 # v1.23.0 + uses: slackapi/slack-github-action@e28cf165c92ffef168d23c5c9000cffc8a25e117 # v1.24.0 with: payload: ${{ needs.prepare.outputs.payload }} env: @@ -177,7 +177,7 @@ jobs: steps: - name: Post failure notifications to Slack - uses: slackapi/slack-github-action@007b2c3c751a190b6f0f040e47ed024deaa72844 # v1.23.0 + uses: slackapi/slack-github-action@e28cf165c92ffef168d23c5c9000cffc8a25e117 # v1.24.0 with: payload: ${{ needs.prepare.outputs.payload }} env: @@ -193,7 +193,7 @@ jobs: steps: - name: Post success notifications to Slack - uses: slackapi/slack-github-action@007b2c3c751a190b6f0f040e47ed024deaa72844 # v1.23.0 + uses: slackapi/slack-github-action@e28cf165c92ffef168d23c5c9000cffc8a25e117 # v1.24.0 with: payload: ${{ needs.prepare.outputs.payload }} env: @@ -209,7 +209,7 @@ jobs: steps: - name: Post cancelled notifications to Slack - uses: slackapi/slack-github-action@007b2c3c751a190b6f0f040e47ed024deaa72844 # v1.23.0 + uses: slackapi/slack-github-action@e28cf165c92ffef168d23c5c9000cffc8a25e117 # v1.24.0 with: payload: ${{ needs.prepare.outputs.payload }} env: diff --git a/.github/workflows/test-and-zip-default-themes.yml b/.github/workflows/test-and-zip-default-themes.yml index 9757e02af16de..1953c7f124019 100644 --- a/.github/workflows/test-and-zip-default-themes.yml +++ b/.github/workflows/test-and-zip-default-themes.yml @@ -79,12 +79,13 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 with: ref: ${{ github.event_name == 'workflow_dispatch' && inputs.branch || github.ref }} + show-progress: ${{ runner.debug == '1' && 'true' || 'false' }} - name: Set up Node.js - uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0 + uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version-file: '.nvmrc' cache: npm @@ -133,9 +134,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 with: ref: ${{ github.event_name == 'workflow_dispatch' && inputs.branch || github.ref }} + show-progress: ${{ runner.debug == '1' && 'true' || 'false' }} - name: Upload theme ZIP as an artifact uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 diff --git a/.github/workflows/test-coverage.yml b/.github/workflows/test-coverage.yml index dd2389486f7db..3f4c245cd1083 100644 --- a/.github/workflows/test-coverage.yml +++ b/.github/workflows/test-coverage.yml @@ -76,10 +76,12 @@ jobs: echo "PHP_FPM_GID=$(id -g)" >> $GITHUB_ENV - name: Checkout repository - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + with: + show-progress: ${{ runner.debug == '1' && 'true' || 'false' }} - name: Set up Node.js - uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0 + uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version-file: '.nvmrc' cache: npm @@ -92,7 +94,7 @@ jobs: # dependency versions are installed and cached. ## - name: Set up PHP - uses: shivammathur/setup-php@d30ad8b1843ace22e6698ab99bbafaa747b6bd0d # v2.24.0 + uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2.25.4 with: php-version: '7.4' coverage: none @@ -151,7 +153,7 @@ jobs: - name: Upload single site report to Codecov if: ${{ ! matrix.multisite && github.event_name != 'pull_request' }} - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1 + uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d # v3.1.4 with: file: wp-code-coverage-single-clover-${{ github.sha }}.xml flags: single,php @@ -166,7 +168,7 @@ jobs: - name: Upload multisite report to Codecov if: ${{ matrix.multisite && github.event_name != 'pull_request' }} - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1 + uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d # v3.1.4 with: file: wp-code-coverage-multisite-clover-${{ github.sha }}.xml flags: multisite,php diff --git a/.github/workflows/test-npm.yml b/.github/workflows/test-npm.yml index f73c2a01d7116..45e04b4d60d97 100644 --- a/.github/workflows/test-npm.yml +++ b/.github/workflows/test-npm.yml @@ -68,10 +68,12 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + with: + show-progress: ${{ runner.debug == '1' && 'true' || 'false' }} - name: Set up Node.js - uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0 + uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version-file: '.nvmrc' cache: npm @@ -134,10 +136,12 @@ jobs: if: ${{ github.repository == 'WordPress/wordpress-develop' }} steps: - name: Checkout repository - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + with: + show-progress: ${{ runner.debug == '1' && 'true' || 'false' }} - name: Set up Node.js - uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0 + uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version-file: '.nvmrc' cache: npm diff --git a/Gruntfile.js b/Gruntfile.js index 5f0fc29d4c5e4..22fca0ca07dd2 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1798,8 +1798,10 @@ module.exports = function(grunt) { // Clean up only those files that were deleted. grunt.config( [ 'clean', 'dynamic', 'src' ], src ); } else { - // Otherwise copy over only the changed file. - grunt.config( [ 'copy', 'dynamic', 'src' ], src ); + if ( ! grunt.option( 'dev' ) ) { + // Otherwise copy over only the changed file. + grunt.config(['copy', 'dynamic', 'src'], src); + } // For javascript also minify and validate the changed file. if ( target === 'js-enqueues' ) { diff --git a/docker-compose.yml b/docker-compose.yml index 739c65f4a8dc5..58f4e08d9183f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -25,7 +25,10 @@ services: command: /bin/sh -c "envsubst '$$LOCAL_DIR' < /etc/nginx/conf.d/default.template > /etc/nginx/conf.d/default.conf && exec nginx -g 'daemon off;'" depends_on: - - php + php: + condition: service_started + mysql: + condition: service_healthy ## # The PHP container. @@ -52,9 +55,6 @@ services: # Copy or delete the Memcached dropin plugin file as appropriate. command: /bin/sh -c "if [ $LOCAL_PHP_MEMCACHED = true ]; then cp -n /var/www/tests/phpunit/includes/object-cache.php /var/www/src/wp-content/object-cache.php; else rm -f /var/www/src/wp-content/object-cache.php; fi && exec php-fpm" - depends_on: - - mysql - # The init directive ensures the command runs with a PID > 1, so Ctrl+C works correctly. init: true @@ -83,6 +83,12 @@ services: # For compatibility with PHP versions that don't support the caching_sha2_password auth plugin used in MySQL 8.0. command: --default-authentication-plugin=mysql_native_password + healthcheck: + test: [ "CMD-SHELL", "if [ \"$LOCAL_DB_TYPE\" = \"mariadb\" ]; then mariadb-admin ping -h localhost; else mysqladmin ping -h localhost; fi" ] + timeout: 5s + interval: 5s + retries: 10 + ## # The WP CLI container. ## @@ -107,6 +113,12 @@ services: extra_hosts: - localhost:host-gateway + depends_on: + php: + condition: service_started + mysql: + condition: service_healthy + ## # The Memcached container. ## @@ -119,6 +131,10 @@ services: ports: - 11211:11211 + depends_on: + php: + condition: service_started + volumes: # So that sites aren't wiped every time containers are restarted, MySQL uses a persistent volume. mysql: {} diff --git a/package-lock.json b/package-lock.json index a11880549e539..9f933be392b6a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,64 +12,64 @@ "@emotion/is-prop-valid": "0.8.8", "@emotion/memoize": "0.7.4", "@wordpress/a11y": "3.35.1", - "@wordpress/annotations": "2.35.7", + "@wordpress/annotations": "2.35.8", "@wordpress/api-fetch": "6.32.1", "@wordpress/autop": "3.35.1", "@wordpress/blob": "3.35.1", - "@wordpress/block-directory": "4.12.16", - "@wordpress/block-editor": "12.3.13", - "@wordpress/block-library": "8.12.16", + "@wordpress/block-directory": "4.12.17", + "@wordpress/block-editor": "12.3.14", + "@wordpress/block-library": "8.12.17", "@wordpress/block-serialization-default-parser": "4.35.1", "@wordpress/blocks": "12.12.7", - "@wordpress/commands": "0.6.11", - "@wordpress/components": "25.1.10", + "@wordpress/commands": "0.6.12", + "@wordpress/components": "25.1.11", "@wordpress/compose": "6.12.2", - "@wordpress/core-commands": "0.4.14", - "@wordpress/core-data": "6.12.14", - "@wordpress/customize-widgets": "4.12.16", + "@wordpress/core-commands": "0.4.15", + "@wordpress/core-data": "6.12.15", + "@wordpress/customize-widgets": "4.12.17", "@wordpress/data": "9.5.5", "@wordpress/data-controls": "3.4.5", "@wordpress/date": "4.35.1", "@wordpress/deprecated": "3.35.1", "@wordpress/dom": "3.35.1", "@wordpress/dom-ready": "3.35.1", - "@wordpress/edit-post": "7.12.16", - "@wordpress/edit-site": "5.12.16", - "@wordpress/edit-widgets": "5.12.16", - "@wordpress/editor": "13.12.14", + "@wordpress/edit-post": "7.12.17", + "@wordpress/edit-site": "5.12.17", + "@wordpress/edit-widgets": "5.12.17", + "@wordpress/editor": "13.12.15", "@wordpress/element": "5.12.1", "@wordpress/escape-html": "2.35.1", - "@wordpress/format-library": "4.12.13", + "@wordpress/format-library": "4.12.14", "@wordpress/hooks": "3.35.1", "@wordpress/html-entities": "3.35.1", "@wordpress/i18n": "4.35.1", "@wordpress/icons": "9.26.2", - "@wordpress/interface": "5.12.10", + "@wordpress/interface": "5.12.11", "@wordpress/is-shallow-equal": "4.35.1", "@wordpress/keyboard-shortcuts": "4.12.5", "@wordpress/keycodes": "3.35.1", - "@wordpress/list-reusable-blocks": "4.12.10", + "@wordpress/list-reusable-blocks": "4.12.11", "@wordpress/media-utils": "4.26.1", "@wordpress/notices": "4.3.5", - "@wordpress/nux": "7.1.3", - "@wordpress/plugins": "6.3.10", - "@wordpress/preferences": "3.12.10", + "@wordpress/nux": "7.1.4", + "@wordpress/plugins": "6.3.11", + "@wordpress/preferences": "3.12.11", "@wordpress/preferences-persistence": "1.27.1", "@wordpress/primitives": "3.33.1", "@wordpress/priority-queue": "2.35.1", "@wordpress/private-apis": "0.17.2", "@wordpress/redux-routine": "4.35.1", - "@wordpress/reusable-blocks": "4.12.14", - "@wordpress/rich-text": "6.12.7", + "@wordpress/reusable-blocks": "4.12.15", + "@wordpress/rich-text": "6.12.8", "@wordpress/router": "0.4.2", - "@wordpress/server-side-render": "4.12.12", + "@wordpress/server-side-render": "4.12.13", "@wordpress/shortcode": "3.35.1", "@wordpress/style-engine": "1.18.1", "@wordpress/token-list": "2.35.1", "@wordpress/url": "3.36.1", "@wordpress/viewport": "5.12.5", "@wordpress/warning": "2.35.1", - "@wordpress/widgets": "3.12.14", + "@wordpress/widgets": "3.12.15", "@wordpress/wordcount": "3.35.1", "backbone": "1.5.0", "clipboard": "2.0.11", @@ -80,7 +80,7 @@ "hoverintent": "2.2.1", "imagesloaded": "5.0.0", "is-plain-object": "5.0.0", - "jquery": "3.7.0", + "jquery": "3.7.1", "jquery-color": "2.2.0", "jquery-form": "4.3.0", "jquery-hoverintent": "1.10.2", @@ -94,7 +94,7 @@ "polyfill-library": "4.7.0", "react": "18.2.0", "react-dom": "18.2.0", - "regenerator-runtime": "0.13.11", + "regenerator-runtime": "0.14.0", "tslib": "2.6.0", "underscore": "1.13.6", "whatwg-fetch": "3.6.17", @@ -106,7 +106,7 @@ "@wordpress/babel-preset-default": "7.19.1", "@wordpress/dependency-extraction-webpack-plugin": "4.18.1", "@wordpress/e2e-test-utils": "10.6.4", - "@wordpress/scripts": "26.6.3", + "@wordpress/scripts": "26.6.4", "autoprefixer": "10.4.14", "chalk": "5.3.0", "check-node-version": "4.2.1", @@ -2061,6 +2061,11 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, "node_modules/@babel/template": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", @@ -5974,15 +5979,15 @@ } }, "node_modules/@wordpress/annotations": { - "version": "2.35.7", - "resolved": "https://registry.npmjs.org/@wordpress/annotations/-/annotations-2.35.7.tgz", - "integrity": "sha512-LN/YoB7v4YwHsW/cRq9I3u6nczE1o1er0VQstwZr4ZpHqZtstL0UFNFE4HaYwmbsmyMTyFI4gDgGH83MdILmvw==", + "version": "2.35.8", + "resolved": "https://registry.npmjs.org/@wordpress/annotations/-/annotations-2.35.8.tgz", + "integrity": "sha512-jzxSTZb2mZlw5jvSAN8ZzxArqWIOYD/zyoKzGXu/SqJYPjRBFF9wgDUIFEZPskpPJD+PECkunjqFTbRhIjWskQ==", "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/data": "^9.5.5", "@wordpress/hooks": "^3.35.1", "@wordpress/i18n": "^4.35.1", - "@wordpress/rich-text": "^6.12.7", + "@wordpress/rich-text": "^6.12.8", "rememo": "^4.0.2", "uuid": "^8.3.0" }, @@ -6075,28 +6080,28 @@ } }, "node_modules/@wordpress/block-directory": { - "version": "4.12.16", - "resolved": "https://registry.npmjs.org/@wordpress/block-directory/-/block-directory-4.12.16.tgz", - "integrity": "sha512-/ouauOTSym/yhz724WHHSzGhVrNf7I0DgqUTIm/CbUkUqRVJxdr4gUHkiucNhSTimGi2M2JbR4k2Pl1BP2Lqmw==", + "version": "4.12.17", + "resolved": "https://registry.npmjs.org/@wordpress/block-directory/-/block-directory-4.12.17.tgz", + "integrity": "sha512-jKLu8uABgzsZD4u8ZuDzAQymejfD8YGixud8cEnL2/pf3vIPKp5iL/EBC9sVKkOqYOkUALwncuKdqW/mGy61qA==", "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.35.1", "@wordpress/api-fetch": "^6.32.1", - "@wordpress/block-editor": "^12.3.13", + "@wordpress/block-editor": "^12.3.14", "@wordpress/blocks": "^12.12.7", - "@wordpress/components": "^25.1.10", + "@wordpress/components": "^25.1.11", "@wordpress/compose": "^6.12.2", - "@wordpress/core-data": "^6.12.14", + "@wordpress/core-data": "^6.12.15", "@wordpress/data": "^9.5.5", - "@wordpress/edit-post": "^7.12.16", - "@wordpress/editor": "^13.12.14", + "@wordpress/edit-post": "^7.12.17", + "@wordpress/editor": "^13.12.15", "@wordpress/element": "^5.12.1", "@wordpress/hooks": "^3.35.1", "@wordpress/html-entities": "^3.35.1", "@wordpress/i18n": "^4.35.1", "@wordpress/icons": "^9.26.2", "@wordpress/notices": "^4.3.5", - "@wordpress/plugins": "^6.3.10", + "@wordpress/plugins": "^6.3.11", "@wordpress/url": "^3.36.1", "change-case": "^4.1.2" }, @@ -6109,9 +6114,9 @@ } }, "node_modules/@wordpress/block-editor": { - "version": "12.3.13", - "resolved": "https://registry.npmjs.org/@wordpress/block-editor/-/block-editor-12.3.13.tgz", - "integrity": "sha512-wfDc3mbyVM84yGf+r5J3aDA//z1I9v5GZhXcFg+OLlSw5CEFVcPTPzYZ97dcOQaORunQa0ysFUP/Sb7MY7hDwQ==", + "version": "12.3.14", + "resolved": "https://registry.npmjs.org/@wordpress/block-editor/-/block-editor-12.3.14.tgz", + "integrity": "sha512-CK/Q+qwbYSPFQVfRFoyS/yvnYX+iwORB0I9+oQgLMZ9AdSg+B4r7gYd3taAWCvLZTXxCtFRKofRjZgj11U7e8w==", "dependencies": { "@babel/runtime": "^7.16.0", "@emotion/styled": "^11.6.0", @@ -6120,7 +6125,7 @@ "@wordpress/api-fetch": "^6.32.1", "@wordpress/blob": "^3.35.1", "@wordpress/blocks": "^12.12.7", - "@wordpress/components": "^25.1.10", + "@wordpress/components": "^25.1.11", "@wordpress/compose": "^6.12.2", "@wordpress/data": "^9.5.5", "@wordpress/date": "^4.35.1", @@ -6136,9 +6141,9 @@ "@wordpress/keyboard-shortcuts": "^4.12.5", "@wordpress/keycodes": "^3.35.1", "@wordpress/notices": "^4.3.5", - "@wordpress/preferences": "^3.12.10", + "@wordpress/preferences": "^3.12.11", "@wordpress/private-apis": "^0.17.2", - "@wordpress/rich-text": "^6.12.7", + "@wordpress/rich-text": "^6.12.8", "@wordpress/shortcode": "^3.35.1", "@wordpress/style-engine": "^1.18.1", "@wordpress/token-list": "^2.35.1", @@ -6169,9 +6174,9 @@ } }, "node_modules/@wordpress/block-library": { - "version": "8.12.16", - "resolved": "https://registry.npmjs.org/@wordpress/block-library/-/block-library-8.12.16.tgz", - "integrity": "sha512-ELYzjbquv6zgMJUgqC6eco5+xhnCgHnoLHbnREDTgnJ6ldwkS+2XzNexRsqOK8E+hHFgGrIkwNBO4AAaEWL+1g==", + "version": "8.12.17", + "resolved": "https://registry.npmjs.org/@wordpress/block-library/-/block-library-8.12.17.tgz", + "integrity": "sha512-lvPC/pY5Ka9+KfSiZJn4SVoEwJmTTxgSh5vq6x6kPMufM3JZJ3Hon+qW2o6sX37GQiRJwhEcIBHLtBUJww+FVA==", "dependencies": { "@babel/runtime": "^7.16.0", "@preact/signals": "^1.1.3", @@ -6179,11 +6184,11 @@ "@wordpress/api-fetch": "^6.32.1", "@wordpress/autop": "^3.35.1", "@wordpress/blob": "^3.35.1", - "@wordpress/block-editor": "^12.3.13", + "@wordpress/block-editor": "^12.3.14", "@wordpress/blocks": "^12.12.7", - "@wordpress/components": "^25.1.10", + "@wordpress/components": "^25.1.11", "@wordpress/compose": "^6.12.2", - "@wordpress/core-data": "^6.12.14", + "@wordpress/core-data": "^6.12.15", "@wordpress/data": "^9.5.5", "@wordpress/date": "^4.35.1", "@wordpress/deprecated": "^3.35.1", @@ -6198,9 +6203,9 @@ "@wordpress/notices": "^4.3.5", "@wordpress/primitives": "^3.33.1", "@wordpress/private-apis": "^0.17.2", - "@wordpress/reusable-blocks": "^4.12.14", - "@wordpress/rich-text": "^6.12.7", - "@wordpress/server-side-render": "^4.12.12", + "@wordpress/reusable-blocks": "^4.12.15", + "@wordpress/rich-text": "^6.12.8", + "@wordpress/server-side-render": "^4.12.13", "@wordpress/url": "^3.36.1", "@wordpress/viewport": "^5.12.5", "@wordpress/wordcount": "^3.35.1", @@ -6303,12 +6308,12 @@ } }, "node_modules/@wordpress/commands": { - "version": "0.6.11", - "resolved": "https://registry.npmjs.org/@wordpress/commands/-/commands-0.6.11.tgz", - "integrity": "sha512-2kjH1AXcBt7t52KHtwNBRXLeebUY3xYbt6XmfDTBb/sqbnknnBKhdDskCgLqTiMKmaDQB9clVdyi6chwpOF9Kw==", + "version": "0.6.12", + "resolved": "https://registry.npmjs.org/@wordpress/commands/-/commands-0.6.12.tgz", + "integrity": "sha512-leTrFS+qaiF2Lk6GtBfF1QJondlAx8DQMNzp+wozi0+aSWhyY8EyOKLZRsZb8aOaUZkwIguKxQ26ZpVkpkWSJQ==", "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/components": "^25.1.10", + "@wordpress/components": "^25.1.11", "@wordpress/data": "^9.5.5", "@wordpress/element": "^5.12.1", "@wordpress/i18n": "^4.35.1", @@ -6326,9 +6331,9 @@ } }, "node_modules/@wordpress/components": { - "version": "25.1.10", - "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-25.1.10.tgz", - "integrity": "sha512-ulEd1zBeZRURyC/BfSfjzMS1y9crLvMWBwBMJtbMjCUP51h8tFUfQuAkYBP05bjUUwdHAGhMMOXkK1fOzSFZtA==", + "version": "25.1.11", + "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-25.1.11.tgz", + "integrity": "sha512-BZbBPGfyBRCGyROTUkcStYRcdNHOwPkNhQVG0sEH/VB3ovXfqxFlQ8E8pRDqp2A1t737n7tVVLBffO3uUvPJMg==", "dependencies": { "@ariakit/react": "^0.2.12", "@babel/runtime": "^7.16.0", @@ -6356,7 +6361,7 @@ "@wordpress/keycodes": "^3.35.1", "@wordpress/primitives": "^3.33.1", "@wordpress/private-apis": "^0.17.2", - "@wordpress/rich-text": "^6.12.7", + "@wordpress/rich-text": "^6.12.8", "@wordpress/warning": "^2.35.1", "change-case": "^4.1.2", "classnames": "^2.3.1", @@ -6422,13 +6427,13 @@ } }, "node_modules/@wordpress/core-commands": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/@wordpress/core-commands/-/core-commands-0.4.14.tgz", - "integrity": "sha512-Ou1LSnJzyutXRGfqSZm3BgMzTCeFxStO9MAgXCpkw5klC09/MQwgPZWK+VNst7fRDw5R8uAoNAzisg7IqGEE+A==", + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/@wordpress/core-commands/-/core-commands-0.4.15.tgz", + "integrity": "sha512-/jTuXiuGySPBriuPBu/nBECVWDR0//XGbPZ+ovZST0nHmuOzIJoNCyR/IpdF9lq+gN3C579m7IRmgpU07+AWcg==", "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/commands": "^0.6.11", - "@wordpress/core-data": "^6.12.14", + "@wordpress/commands": "^0.6.12", + "@wordpress/core-data": "^6.12.15", "@wordpress/data": "^9.5.5", "@wordpress/element": "^5.12.1", "@wordpress/i18n": "^4.35.1", @@ -6445,13 +6450,13 @@ } }, "node_modules/@wordpress/core-data": { - "version": "6.12.14", - "resolved": "https://registry.npmjs.org/@wordpress/core-data/-/core-data-6.12.14.tgz", - "integrity": "sha512-mAS9r8Ve8KBW9JX7WUC4JEJWxrJ2b2v5xRx8h/nL6tZZzCC46CN78jluLzZZaJ5Mj1qMAGj8bfET0B71dcKkDw==", + "version": "6.12.15", + "resolved": "https://registry.npmjs.org/@wordpress/core-data/-/core-data-6.12.15.tgz", + "integrity": "sha512-WUuEKBPXIjt1ei1jxm6ffy7ebtCb4od+TDQ447Prau8flgAMxfM9liGG53/x4kBLudL2++iq8rkQ3Ilz2Rp7Vw==", "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/api-fetch": "^6.32.1", - "@wordpress/block-editor": "^12.3.13", + "@wordpress/block-editor": "^12.3.14", "@wordpress/blocks": "^12.12.7", "@wordpress/compose": "^6.12.2", "@wordpress/data": "^9.5.5", @@ -6485,31 +6490,31 @@ } }, "node_modules/@wordpress/customize-widgets": { - "version": "4.12.16", - "resolved": "https://registry.npmjs.org/@wordpress/customize-widgets/-/customize-widgets-4.12.16.tgz", - "integrity": "sha512-PmMgfpo/tbvWWVriYHUC128qYhofhxrHQagTsMcGVf/0CpFfTtewJr04oj2mWdbOUgUnx/y3yTeYuoBPqVOvZw==", + "version": "4.12.17", + "resolved": "https://registry.npmjs.org/@wordpress/customize-widgets/-/customize-widgets-4.12.17.tgz", + "integrity": "sha512-Yxpa9/9FCzBmS3Gl50l1dPwjjxspvvGYdm4uW92JswiYT0meRrBz8YJizKrmCY7b8JViLrsDH+kJ0J3qzhwTaA==", "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/block-editor": "^12.3.13", - "@wordpress/block-library": "^8.12.16", + "@wordpress/block-editor": "^12.3.14", + "@wordpress/block-library": "^8.12.17", "@wordpress/blocks": "^12.12.7", - "@wordpress/components": "^25.1.10", + "@wordpress/components": "^25.1.11", "@wordpress/compose": "^6.12.2", - "@wordpress/core-data": "^6.12.14", + "@wordpress/core-data": "^6.12.15", "@wordpress/data": "^9.5.5", "@wordpress/dom": "^3.35.1", "@wordpress/element": "^5.12.1", "@wordpress/hooks": "^3.35.1", "@wordpress/i18n": "^4.35.1", "@wordpress/icons": "^9.26.2", - "@wordpress/interface": "^5.12.10", + "@wordpress/interface": "^5.12.11", "@wordpress/is-shallow-equal": "^4.35.1", "@wordpress/keyboard-shortcuts": "^4.12.5", "@wordpress/keycodes": "^3.35.1", "@wordpress/media-utils": "^4.26.1", - "@wordpress/preferences": "^3.12.10", + "@wordpress/preferences": "^3.12.11", "@wordpress/private-apis": "^0.17.2", - "@wordpress/widgets": "^3.12.14", + "@wordpress/widgets": "^3.12.15", "classnames": "^2.3.1", "fast-deep-equal": "^3.1.3" }, @@ -6650,6 +6655,79 @@ "puppeteer-core": ">=11" } }, + "node_modules/@wordpress/e2e-test-utils/node_modules/@wordpress/api-fetch": { + "version": "6.38.0", + "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.38.0.tgz", + "integrity": "sha512-EY5+9hxUDFOKCrIBFokUFuF2bPnWjtOlc8yQcB1SmJv5JULdFZF+pgAKXqTPFwWR8wcNjv2hypemV8j82Rq4MA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.16.0", + "@wordpress/i18n": "^4.41.0", + "@wordpress/url": "^3.42.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/e2e-test-utils/node_modules/@wordpress/hooks": { + "version": "3.41.0", + "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.41.0.tgz", + "integrity": "sha512-o3fC6Z0kCLzZNFUT5W7C1d2mR+qjVwLaWjrwuJngJG92wly4IzKgAUDs/iJZojxtePFMP8JOFCg4FMuzG/VhWw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.16.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/e2e-test-utils/node_modules/@wordpress/i18n": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.41.0.tgz", + "integrity": "sha512-MXA+DiVSF2CS0ZhFEBq/eJjfHuKMcu3FUuiF/Dpc1YZRD1X7N6xPlfo4xKJZVUWIAsfgpc8oA2YMLw1VTFzrRA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.16.0", + "@wordpress/hooks": "^3.41.0", + "gettext-parser": "^1.3.1", + "memize": "^2.1.0", + "sprintf-js": "^1.1.1", + "tannin": "^1.2.0" + }, + "bin": { + "pot-to-php": "tools/pot-to-php.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/e2e-test-utils/node_modules/@wordpress/keycodes": { + "version": "3.41.0", + "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.41.0.tgz", + "integrity": "sha512-0DY07PV5qATrvWLc5jWgrgUGpeFrqvY+K0qF0gLDw1rpIZBxLre+N3K7ANC/iZzSsPLbYxxVF0SSFDIVI23Pug==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.16.0", + "@wordpress/i18n": "^4.41.0", + "change-case": "^4.1.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/e2e-test-utils/node_modules/@wordpress/url": { + "version": "3.42.0", + "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.42.0.tgz", + "integrity": "sha512-Q1eZAkgnq/Ji3UDdBPxj2mBiBusGoTkcUH2XnJDGyPIezJjC7fY/9GXE6Jj0bm37CkEH3bP6G4Yrh+YpDwMn6Q==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.16.0", + "remove-accents": "^0.5.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@wordpress/e2e-test-utils/node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -6664,42 +6742,48 @@ "node": ">= 6" } }, + "node_modules/@wordpress/e2e-test-utils/node_modules/remove-accents": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz", + "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==", + "dev": true + }, "node_modules/@wordpress/edit-post": { - "version": "7.12.16", - "resolved": "https://registry.npmjs.org/@wordpress/edit-post/-/edit-post-7.12.16.tgz", - "integrity": "sha512-ZKpLin+kyREWswSx3mF5b8RHeH+M2IcJgNljWtF4aRK+rI+eMT7lBBYNMHRB5a89UkAqBj6rUEN/Pb0QwXL0sg==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@wordpress/edit-post/-/edit-post-7.12.17.tgz", + "integrity": "sha512-Ol+GkknHy1MYzOsFnaXc2NakCORjlzbRdC1Xm8kniuC+vMwxvtE1JWL66XvlREEgMZEVuJpccG6nw9cLz4zvzQ==", "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.35.1", "@wordpress/api-fetch": "^6.32.1", - "@wordpress/block-editor": "^12.3.13", - "@wordpress/block-library": "^8.12.16", + "@wordpress/block-editor": "^12.3.14", + "@wordpress/block-library": "^8.12.17", "@wordpress/blocks": "^12.12.7", - "@wordpress/commands": "^0.6.11", - "@wordpress/components": "^25.1.10", + "@wordpress/commands": "^0.6.12", + "@wordpress/components": "^25.1.11", "@wordpress/compose": "^6.12.2", - "@wordpress/core-commands": "^0.4.14", - "@wordpress/core-data": "^6.12.14", + "@wordpress/core-commands": "^0.4.15", + "@wordpress/core-data": "^6.12.15", "@wordpress/data": "^9.5.5", "@wordpress/deprecated": "^3.35.1", "@wordpress/dom": "^3.35.1", - "@wordpress/editor": "^13.12.14", + "@wordpress/editor": "^13.12.15", "@wordpress/element": "^5.12.1", "@wordpress/hooks": "^3.35.1", "@wordpress/i18n": "^4.35.1", "@wordpress/icons": "^9.26.2", - "@wordpress/interface": "^5.12.10", + "@wordpress/interface": "^5.12.11", "@wordpress/keyboard-shortcuts": "^4.12.5", "@wordpress/keycodes": "^3.35.1", "@wordpress/media-utils": "^4.26.1", "@wordpress/notices": "^4.3.5", - "@wordpress/plugins": "^6.3.10", - "@wordpress/preferences": "^3.12.10", + "@wordpress/plugins": "^6.3.11", + "@wordpress/preferences": "^3.12.11", "@wordpress/private-apis": "^0.17.2", "@wordpress/url": "^3.36.1", "@wordpress/viewport": "^5.12.5", "@wordpress/warning": "^2.35.1", - "@wordpress/widgets": "^3.12.14", + "@wordpress/widgets": "^3.12.15", "classnames": "^2.3.1", "memize": "^2.1.0", "rememo": "^4.0.2" @@ -6713,47 +6797,47 @@ } }, "node_modules/@wordpress/edit-site": { - "version": "5.12.16", - "resolved": "https://registry.npmjs.org/@wordpress/edit-site/-/edit-site-5.12.16.tgz", - "integrity": "sha512-O7iZR2l41fhy88r+gkRlTjLKNQFKbm+L6k16azLLRIGTnRqdRoRqIUnSkFZBkH2yiaPs6Cx6DOJFVf3OWS0mUw==", + "version": "5.12.17", + "resolved": "https://registry.npmjs.org/@wordpress/edit-site/-/edit-site-5.12.17.tgz", + "integrity": "sha512-pONoGuF5HMcdedd3nCIPD88S8sK4kNXGd62fuNNMZMLYGG6F02Zgw6CYosYLg+BvkPFg27kpzneyzCmBeFPhGA==", "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.35.1", "@wordpress/api-fetch": "^6.32.1", - "@wordpress/block-editor": "^12.3.13", - "@wordpress/block-library": "^8.12.16", + "@wordpress/block-editor": "^12.3.14", + "@wordpress/block-library": "^8.12.17", "@wordpress/blocks": "^12.12.7", - "@wordpress/commands": "^0.6.11", - "@wordpress/components": "^25.1.10", + "@wordpress/commands": "^0.6.12", + "@wordpress/components": "^25.1.11", "@wordpress/compose": "^6.12.2", - "@wordpress/core-commands": "^0.4.14", - "@wordpress/core-data": "^6.12.14", + "@wordpress/core-commands": "^0.4.15", + "@wordpress/core-data": "^6.12.15", "@wordpress/data": "^9.5.5", "@wordpress/date": "^4.35.1", "@wordpress/deprecated": "^3.35.1", "@wordpress/dom": "^3.35.1", - "@wordpress/editor": "^13.12.14", + "@wordpress/editor": "^13.12.15", "@wordpress/element": "^5.12.1", "@wordpress/escape-html": "^2.35.1", "@wordpress/hooks": "^3.35.1", "@wordpress/html-entities": "^3.35.1", "@wordpress/i18n": "^4.35.1", "@wordpress/icons": "^9.26.2", - "@wordpress/interface": "^5.12.10", + "@wordpress/interface": "^5.12.11", "@wordpress/keyboard-shortcuts": "^4.12.5", "@wordpress/keycodes": "^3.35.1", "@wordpress/media-utils": "^4.26.1", "@wordpress/notices": "^4.3.5", - "@wordpress/plugins": "^6.3.10", - "@wordpress/preferences": "^3.12.10", + "@wordpress/plugins": "^6.3.11", + "@wordpress/preferences": "^3.12.11", "@wordpress/primitives": "^3.33.1", "@wordpress/private-apis": "^0.17.2", - "@wordpress/reusable-blocks": "^4.12.14", + "@wordpress/reusable-blocks": "^4.12.15", "@wordpress/router": "^0.4.2", "@wordpress/style-engine": "^1.18.1", "@wordpress/url": "^3.36.1", "@wordpress/viewport": "^5.12.5", - "@wordpress/widgets": "^3.12.14", + "@wordpress/widgets": "^3.12.15", "@wordpress/wordcount": "^3.35.1", "change-case": "^4.1.2", "classnames": "^2.3.1", @@ -6777,18 +6861,18 @@ } }, "node_modules/@wordpress/edit-widgets": { - "version": "5.12.16", - "resolved": "https://registry.npmjs.org/@wordpress/edit-widgets/-/edit-widgets-5.12.16.tgz", - "integrity": "sha512-rT7S+Dgs50ORLIC7z75T796hOG9wcswuAKK//Ac1ZFRMoh3SUsjTAkIWY1uxtAuFTw2AimJt62fc/bI9Q95rvQ==", + "version": "5.12.17", + "resolved": "https://registry.npmjs.org/@wordpress/edit-widgets/-/edit-widgets-5.12.17.tgz", + "integrity": "sha512-R+rnh/nBBP66A0W46Cgg+mQKI2eJnV6x1gB4ISkTlLAlbttTtykfxTaiIqG7W2WCdzvlPycrARo+LV9c0DQIJQ==", "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/api-fetch": "^6.32.1", - "@wordpress/block-editor": "^12.3.13", - "@wordpress/block-library": "^8.12.16", + "@wordpress/block-editor": "^12.3.14", + "@wordpress/block-library": "^8.12.17", "@wordpress/blocks": "^12.12.7", - "@wordpress/components": "^25.1.10", + "@wordpress/components": "^25.1.11", "@wordpress/compose": "^6.12.2", - "@wordpress/core-data": "^6.12.14", + "@wordpress/core-data": "^6.12.15", "@wordpress/data": "^9.5.5", "@wordpress/deprecated": "^3.35.1", "@wordpress/dom": "^3.35.1", @@ -6796,17 +6880,17 @@ "@wordpress/hooks": "^3.35.1", "@wordpress/i18n": "^4.35.1", "@wordpress/icons": "^9.26.2", - "@wordpress/interface": "^5.12.10", + "@wordpress/interface": "^5.12.11", "@wordpress/keyboard-shortcuts": "^4.12.5", "@wordpress/keycodes": "^3.35.1", "@wordpress/media-utils": "^4.26.1", "@wordpress/notices": "^4.3.5", - "@wordpress/plugins": "^6.3.10", - "@wordpress/preferences": "^3.12.10", + "@wordpress/plugins": "^6.3.11", + "@wordpress/preferences": "^3.12.11", "@wordpress/private-apis": "^0.17.2", - "@wordpress/reusable-blocks": "^4.12.14", + "@wordpress/reusable-blocks": "^4.12.15", "@wordpress/url": "^3.36.1", - "@wordpress/widgets": "^3.12.14", + "@wordpress/widgets": "^3.12.15", "classnames": "^2.3.1" }, "engines": { @@ -6818,19 +6902,19 @@ } }, "node_modules/@wordpress/editor": { - "version": "13.12.14", - "resolved": "https://registry.npmjs.org/@wordpress/editor/-/editor-13.12.14.tgz", - "integrity": "sha512-J//UpwTE2hoA8zw6l4RuEaGkNQQluwrnXUOIpy606UjpAxdJxBeatzRHlzFm16Zo5YnT4fg95YWOtvjIMy/9yQ==", + "version": "13.12.15", + "resolved": "https://registry.npmjs.org/@wordpress/editor/-/editor-13.12.15.tgz", + "integrity": "sha512-X7qHOxN/GuZWTx4cCIKATvBZTZaWmwMlSdR9XjZxxm9Q0H43WQh7frHP3FtDk8m8mB5FWAR/xggNholvdRPT0Q==", "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.35.1", "@wordpress/api-fetch": "^6.32.1", "@wordpress/blob": "^3.35.1", - "@wordpress/block-editor": "^12.3.13", + "@wordpress/block-editor": "^12.3.14", "@wordpress/blocks": "^12.12.7", - "@wordpress/components": "^25.1.10", + "@wordpress/components": "^25.1.11", "@wordpress/compose": "^6.12.2", - "@wordpress/core-data": "^6.12.14", + "@wordpress/core-data": "^6.12.15", "@wordpress/data": "^9.5.5", "@wordpress/date": "^4.35.1", "@wordpress/deprecated": "^3.35.1", @@ -6844,11 +6928,11 @@ "@wordpress/keycodes": "^3.35.1", "@wordpress/media-utils": "^4.26.1", "@wordpress/notices": "^4.3.5", - "@wordpress/preferences": "^3.12.10", + "@wordpress/preferences": "^3.12.11", "@wordpress/private-apis": "^0.17.2", - "@wordpress/reusable-blocks": "^4.12.14", - "@wordpress/rich-text": "^6.12.7", - "@wordpress/server-side-render": "^4.12.12", + "@wordpress/reusable-blocks": "^4.12.15", + "@wordpress/rich-text": "^6.12.8", + "@wordpress/server-side-render": "^4.12.13", "@wordpress/url": "^3.36.1", "@wordpress/wordcount": "^3.35.1", "classnames": "^2.3.1", @@ -7016,21 +7100,21 @@ } }, "node_modules/@wordpress/format-library": { - "version": "4.12.13", - "resolved": "https://registry.npmjs.org/@wordpress/format-library/-/format-library-4.12.13.tgz", - "integrity": "sha512-NJ7O3YPCk+qzbiwYNMgzwNTz4yzkH7lE0eFzTec5CDP/iS6WhX1QJNrZWxvI91ArZEd9Zqaz1w7FDWwv0lsOeA==", + "version": "4.12.14", + "resolved": "https://registry.npmjs.org/@wordpress/format-library/-/format-library-4.12.14.tgz", + "integrity": "sha512-Pd3K8uTH+mBTCZSFBSXob/wVgRmnST+GLLDufsgG0Ja4WQVxEQ1nwWvBlyOHFiJY9obiDTOpfjzORwNvCjzEtg==", "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.35.1", - "@wordpress/block-editor": "^12.3.13", - "@wordpress/components": "^25.1.10", + "@wordpress/block-editor": "^12.3.14", + "@wordpress/components": "^25.1.11", "@wordpress/compose": "^6.12.2", "@wordpress/data": "^9.5.5", "@wordpress/element": "^5.12.1", "@wordpress/html-entities": "^3.35.1", "@wordpress/i18n": "^4.35.1", "@wordpress/icons": "^9.26.2", - "@wordpress/rich-text": "^6.12.7", + "@wordpress/rich-text": "^6.12.8", "@wordpress/url": "^3.36.1" }, "engines": { @@ -7096,21 +7180,21 @@ } }, "node_modules/@wordpress/interface": { - "version": "5.12.10", - "resolved": "https://registry.npmjs.org/@wordpress/interface/-/interface-5.12.10.tgz", - "integrity": "sha512-RCjS3W1qxcVYePccTSZG0XFVTEUMmXoA4SvIdAbzTre6nZCYHfC9G5fQNFGy3+hXmy4rBThspmN2UlXvBDXIbQ==", + "version": "5.12.11", + "resolved": "https://registry.npmjs.org/@wordpress/interface/-/interface-5.12.11.tgz", + "integrity": "sha512-fCEtsr327LLS2ycA7QZRDNoRWls14AaYU8nk6N+3EEVu+ayeu+nX7L2rY7LzXfbThL9C7tkXHjEn5xVh1fXwWA==", "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.35.1", - "@wordpress/components": "^25.1.10", + "@wordpress/components": "^25.1.11", "@wordpress/compose": "^6.12.2", "@wordpress/data": "^9.5.5", "@wordpress/deprecated": "^3.35.1", "@wordpress/element": "^5.12.1", "@wordpress/i18n": "^4.35.1", "@wordpress/icons": "^9.26.2", - "@wordpress/plugins": "^6.3.10", - "@wordpress/preferences": "^3.12.10", + "@wordpress/plugins": "^6.3.11", + "@wordpress/preferences": "^3.12.11", "@wordpress/viewport": "^5.12.5", "classnames": "^2.3.1" }, @@ -7198,13 +7282,13 @@ } }, "node_modules/@wordpress/list-reusable-blocks": { - "version": "4.12.10", - "resolved": "https://registry.npmjs.org/@wordpress/list-reusable-blocks/-/list-reusable-blocks-4.12.10.tgz", - "integrity": "sha512-qtSGoQBBbZq4EigTAPrBQy4/rLuE3GnEs4N6hl00NKTn5EzVHB3DHVZg1Vl/MN0X5gFjVDcbK2paYolR+opIoA==", + "version": "4.12.11", + "resolved": "https://registry.npmjs.org/@wordpress/list-reusable-blocks/-/list-reusable-blocks-4.12.11.tgz", + "integrity": "sha512-nsnaWSrgOUIaZhGU/SNLlETFfk0hnPSPT1uMZYC3gZLFpKt6Cx/SRN9Lkksnymyi40jO+EJCUFapUIAo1+22og==", "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/api-fetch": "^6.32.1", - "@wordpress/components": "^25.1.10", + "@wordpress/components": "^25.1.11", "@wordpress/compose": "^6.12.2", "@wordpress/element": "^5.12.1", "@wordpress/i18n": "^4.35.1", @@ -7259,12 +7343,12 @@ } }, "node_modules/@wordpress/nux": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@wordpress/nux/-/nux-7.1.3.tgz", - "integrity": "sha512-LHNmSlLdVD8CQbb3ON9+GbvN9YCg5BIbUzs3Wkrba1+0B3QFFYb0fq7QPsJp94lSFmNUTZqM1+d6vHcV8hozJQ==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@wordpress/nux/-/nux-7.1.4.tgz", + "integrity": "sha512-2T7paQpChl9Cm+cKTrAPFR7dFq1XVQja5LtmywEj9mjmCPAoaw+eKnB713nLbkeeNJyDDJ+xoXhdw4ePkKwYHw==", "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/components": "^25.1.10", + "@wordpress/components": "^25.1.11", "@wordpress/compose": "^6.12.2", "@wordpress/data": "^9.5.5", "@wordpress/deprecated": "^3.35.1", @@ -7282,12 +7366,12 @@ } }, "node_modules/@wordpress/plugins": { - "version": "6.3.10", - "resolved": "https://registry.npmjs.org/@wordpress/plugins/-/plugins-6.3.10.tgz", - "integrity": "sha512-exTGZupGBIYjz2jeAXaohE4v2ufhSXDGy3/ElENdAGA/k2FQLqWRRCpZ7bMbn7+VfReNTrLjgVDOYDW46hk5XA==", + "version": "6.3.11", + "resolved": "https://registry.npmjs.org/@wordpress/plugins/-/plugins-6.3.11.tgz", + "integrity": "sha512-EBLtoOmhQf6iRfNnyYJ4oU53fjyMIgxtm3H24MsJbOcJ+m89Jvzx5S64ST9TKn0r5fyTB2gWV5hy35JLR3Qu0w==", "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/components": "^25.1.10", + "@wordpress/components": "^25.1.11", "@wordpress/compose": "^6.12.2", "@wordpress/element": "^5.12.1", "@wordpress/hooks": "^3.35.1", @@ -7319,13 +7403,13 @@ } }, "node_modules/@wordpress/preferences": { - "version": "3.12.10", - "resolved": "https://registry.npmjs.org/@wordpress/preferences/-/preferences-3.12.10.tgz", - "integrity": "sha512-M10VwX0+GZhAfV18Jw9zyAWrW9+dd2iHyQE13uRKr0Yzbu5buDACoHit+o5JeR4963oNe0GwjMD6hVRF1CpDRw==", + "version": "3.12.11", + "resolved": "https://registry.npmjs.org/@wordpress/preferences/-/preferences-3.12.11.tgz", + "integrity": "sha512-DRxXnL+BhCze8HQ1MqOpAtrP5+RAg7St0162uyRNj+w/cqeYByIAOxQrhGIqKzSQ2O714SOcMo4U1o8LHmCtmw==", "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.35.1", - "@wordpress/components": "^25.1.10", + "@wordpress/components": "^25.1.11", "@wordpress/data": "^9.5.5", "@wordpress/i18n": "^4.35.1", "@wordpress/icons": "^9.26.2", @@ -7417,14 +7501,14 @@ } }, "node_modules/@wordpress/reusable-blocks": { - "version": "4.12.14", - "resolved": "https://registry.npmjs.org/@wordpress/reusable-blocks/-/reusable-blocks-4.12.14.tgz", - "integrity": "sha512-ygsXONf5JPGUEG6U5LKbEXsbxXJtleCZhBvUy+hJPG5bnIDLaBVCiuTXyULB2B0SVe9yFVYBOAI7ksMhahe9Tw==", + "version": "4.12.15", + "resolved": "https://registry.npmjs.org/@wordpress/reusable-blocks/-/reusable-blocks-4.12.15.tgz", + "integrity": "sha512-sWQEKifBgrxcdYXagcDMyAN3Q4Vxia6CmkAZcnVuEnRa/XwUivAjUPZzXtkSCWZj2QalVGbsFvb9g/e5dsfMAw==", "dependencies": { - "@wordpress/block-editor": "^12.3.13", + "@wordpress/block-editor": "^12.3.14", "@wordpress/blocks": "^12.12.7", - "@wordpress/components": "^25.1.10", - "@wordpress/core-data": "^6.12.14", + "@wordpress/components": "^25.1.11", + "@wordpress/core-data": "^6.12.15", "@wordpress/data": "^9.5.5", "@wordpress/element": "^5.12.1", "@wordpress/i18n": "^4.35.1", @@ -7442,9 +7526,9 @@ } }, "node_modules/@wordpress/rich-text": { - "version": "6.12.7", - "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-6.12.7.tgz", - "integrity": "sha512-wYcl3LGzCqKNj763PtAvi6FtHRZczc4OncIFACaRaa16WITDBVSv1p0C4ao61KdXnNi53jMpKR+fc3TCKIe3Hg==", + "version": "6.12.8", + "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-6.12.8.tgz", + "integrity": "sha512-IOshxhXJVDhK+/AINwaf36d5DZ0FJ75o9agtEcuJ/mZkT5apv83R++HvbSCX8HEXxMRio/1vlFeqyeM6gGwddQ==", "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.35.1", @@ -7484,9 +7568,9 @@ } }, "node_modules/@wordpress/scripts": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-26.6.3.tgz", - "integrity": "sha512-GlcZeVeTtc+EMx4jdJYYID0g/xvnlsEhdN+kmwVGgU+cF8+40iIF9gASL0PECrsPjFwCtHaB962JMIPMpWcGFQ==", + "version": "26.6.4", + "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-26.6.4.tgz", + "integrity": "sha512-kHwsJKHT5mw55RvICgKFOvJSb34HJNS+XSl0FTiLt1QlRz52ePmaxrvUBW+TztBjFQ7Qh8jnXoKxnE3rUaih3g==", "dev": true, "dependencies": { "@babel/core": "^7.16.0", @@ -7498,7 +7582,7 @@ "@wordpress/eslint-plugin": "^14.8.1", "@wordpress/jest-preset-default": "^11.6.1", "@wordpress/npm-package-json-lint-config": "^4.20.1", - "@wordpress/postcss-plugins-preset": "^4.19.3", + "@wordpress/postcss-plugins-preset": "^4.19.4", "@wordpress/prettier-config": "^2.18.1", "@wordpress/stylelint-config": "^21.18.1", "adm-zip": "^0.5.9", @@ -8523,14 +8607,14 @@ } }, "node_modules/@wordpress/server-side-render": { - "version": "4.12.12", - "resolved": "https://registry.npmjs.org/@wordpress/server-side-render/-/server-side-render-4.12.12.tgz", - "integrity": "sha512-unfoWULUK5nvrzeMnQSnMZKnOYGB/wHianAeDSopOvTsOApN40ZhWavos2K49dYu53oQx0JbtjNkrDicFVYLlA==", + "version": "4.12.13", + "resolved": "https://registry.npmjs.org/@wordpress/server-side-render/-/server-side-render-4.12.13.tgz", + "integrity": "sha512-J1reqr0tpmk1Mv10+dh3xR6w2IBNwM+GsK/X6EcCLxBs5FVrZKBZ+ygv/LO1aXOC+L55w5bduhWgsjEwKL8wHw==", "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/api-fetch": "^6.32.1", "@wordpress/blocks": "^12.12.7", - "@wordpress/components": "^25.1.10", + "@wordpress/components": "^25.1.11", "@wordpress/compose": "^6.12.2", "@wordpress/data": "^9.5.5", "@wordpress/deprecated": "^3.35.1", @@ -8635,17 +8719,17 @@ } }, "node_modules/@wordpress/widgets": { - "version": "3.12.14", - "resolved": "https://registry.npmjs.org/@wordpress/widgets/-/widgets-3.12.14.tgz", - "integrity": "sha512-DB2Oy8XIskE2OlvmC6CNjYeh4gmthUvrJoHPFQPnG0ahOLPfAVM5vPrPvMcoyDO5/aLvDH2ghxhl3CiNw2XNwg==", + "version": "3.12.15", + "resolved": "https://registry.npmjs.org/@wordpress/widgets/-/widgets-3.12.15.tgz", + "integrity": "sha512-qxtnVRiRTvmpRO3NtvObjPOVasP8DPr6EsuAmi1PYpZqD82+kp5QNd9N0YibEiSJjtN9p6GAUXYj/NkIi5XoIQ==", "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/api-fetch": "^6.32.1", - "@wordpress/block-editor": "^12.3.13", + "@wordpress/block-editor": "^12.3.14", "@wordpress/blocks": "^12.12.7", - "@wordpress/components": "^25.1.10", + "@wordpress/components": "^25.1.11", "@wordpress/compose": "^6.12.2", - "@wordpress/core-data": "^6.12.14", + "@wordpress/core-data": "^6.12.15", "@wordpress/data": "^9.5.5", "@wordpress/element": "^5.12.1", "@wordpress/i18n": "^4.35.1", @@ -21330,9 +21414,9 @@ } }, "node_modules/jquery": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.0.tgz", - "integrity": "sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ==" + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" }, "node_modules/jquery-color": { "version": "2.2.0", @@ -26756,9 +26840,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" }, "node_modules/regenerator-transform": { "version": "0.15.1", diff --git a/package.json b/package.json index 1112560e7ffe9..f97f8333a8804 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@wordpress/babel-preset-default": "7.19.1", "@wordpress/dependency-extraction-webpack-plugin": "4.18.1", "@wordpress/e2e-test-utils": "10.6.4", - "@wordpress/scripts": "26.6.3", + "@wordpress/scripts": "26.6.4", "autoprefixer": "10.4.14", "chalk": "5.3.0", "check-node-version": "4.2.1", @@ -79,64 +79,64 @@ "@emotion/is-prop-valid": "0.8.8", "@emotion/memoize": "0.7.4", "@wordpress/a11y": "3.35.1", - "@wordpress/annotations": "2.35.7", + "@wordpress/annotations": "2.35.8", "@wordpress/api-fetch": "6.32.1", "@wordpress/autop": "3.35.1", "@wordpress/blob": "3.35.1", - "@wordpress/block-directory": "4.12.16", - "@wordpress/block-editor": "12.3.13", - "@wordpress/block-library": "8.12.16", + "@wordpress/block-directory": "4.12.17", + "@wordpress/block-editor": "12.3.14", + "@wordpress/block-library": "8.12.17", "@wordpress/block-serialization-default-parser": "4.35.1", "@wordpress/blocks": "12.12.7", - "@wordpress/commands": "0.6.11", - "@wordpress/components": "25.1.10", + "@wordpress/commands": "0.6.12", + "@wordpress/components": "25.1.11", "@wordpress/compose": "6.12.2", - "@wordpress/core-commands": "0.4.14", - "@wordpress/core-data": "6.12.14", - "@wordpress/customize-widgets": "4.12.16", + "@wordpress/core-commands": "0.4.15", + "@wordpress/core-data": "6.12.15", + "@wordpress/customize-widgets": "4.12.17", "@wordpress/data": "9.5.5", "@wordpress/data-controls": "3.4.5", "@wordpress/date": "4.35.1", "@wordpress/deprecated": "3.35.1", "@wordpress/dom": "3.35.1", "@wordpress/dom-ready": "3.35.1", - "@wordpress/edit-post": "7.12.16", - "@wordpress/edit-site": "5.12.16", - "@wordpress/edit-widgets": "5.12.16", - "@wordpress/editor": "13.12.14", + "@wordpress/edit-post": "7.12.17", + "@wordpress/edit-site": "5.12.17", + "@wordpress/edit-widgets": "5.12.17", + "@wordpress/editor": "13.12.15", "@wordpress/element": "5.12.1", "@wordpress/escape-html": "2.35.1", - "@wordpress/format-library": "4.12.13", + "@wordpress/format-library": "4.12.14", "@wordpress/hooks": "3.35.1", "@wordpress/html-entities": "3.35.1", "@wordpress/i18n": "4.35.1", "@wordpress/icons": "9.26.2", - "@wordpress/interface": "5.12.10", + "@wordpress/interface": "5.12.11", "@wordpress/is-shallow-equal": "4.35.1", "@wordpress/keyboard-shortcuts": "4.12.5", "@wordpress/keycodes": "3.35.1", - "@wordpress/list-reusable-blocks": "4.12.10", + "@wordpress/list-reusable-blocks": "4.12.11", "@wordpress/media-utils": "4.26.1", "@wordpress/notices": "4.3.5", - "@wordpress/nux": "7.1.3", - "@wordpress/plugins": "6.3.10", - "@wordpress/preferences": "3.12.10", + "@wordpress/nux": "7.1.4", + "@wordpress/plugins": "6.3.11", + "@wordpress/preferences": "3.12.11", "@wordpress/preferences-persistence": "1.27.1", "@wordpress/primitives": "3.33.1", "@wordpress/priority-queue": "2.35.1", "@wordpress/private-apis": "0.17.2", "@wordpress/redux-routine": "4.35.1", - "@wordpress/reusable-blocks": "4.12.14", - "@wordpress/rich-text": "6.12.7", + "@wordpress/reusable-blocks": "4.12.15", + "@wordpress/rich-text": "6.12.8", "@wordpress/router": "0.4.2", - "@wordpress/server-side-render": "4.12.12", + "@wordpress/server-side-render": "4.12.13", "@wordpress/shortcode": "3.35.1", "@wordpress/style-engine": "1.18.1", "@wordpress/token-list": "2.35.1", "@wordpress/url": "3.36.1", "@wordpress/viewport": "5.12.5", "@wordpress/warning": "2.35.1", - "@wordpress/widgets": "3.12.14", + "@wordpress/widgets": "3.12.15", "@wordpress/wordcount": "3.35.1", "backbone": "1.5.0", "clipboard": "2.0.11", @@ -147,7 +147,7 @@ "hoverintent": "2.2.1", "imagesloaded": "5.0.0", "is-plain-object": "5.0.0", - "jquery": "3.7.0", + "jquery": "3.7.1", "jquery-color": "2.2.0", "jquery-form": "4.3.0", "jquery-hoverintent": "1.10.2", @@ -161,7 +161,7 @@ "polyfill-library": "4.7.0", "react": "18.2.0", "react-dom": "18.2.0", - "regenerator-runtime": "0.13.11", + "regenerator-runtime": "0.14.0", "tslib": "2.6.0", "underscore": "1.13.6", "whatwg-fetch": "3.6.17", diff --git a/phpcompat.xml.dist b/phpcompat.xml.dist index 4a60e03161055..ab58eb44c5308 100644 --- a/phpcompat.xml.dist +++ b/phpcompat.xml.dist @@ -81,9 +81,4 @@ /random_compat/random_bytes_mcrypt\.php$ - - - - /src/wp-includes/class-wpdb\.php - diff --git a/phpcs.xml.dist b/phpcs.xml.dist index 4e48c8c1c749c..bf97cf5ccec08 100644 --- a/phpcs.xml.dist +++ b/phpcs.xml.dist @@ -2,6 +2,13 @@ Apply WordPress Coding Standards to all Core files + + @@ -23,80 +30,14 @@ - . - - - - - - - warning - - - warning - - - warning - - - warning - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + . ^build/* @@ -165,118 +106,104 @@ /src/wp-content/themes/(?!twenty)* - - - /src/wp-includes/class-wpdb\.php - /tests/phpunit/tests/db/charset\.php - - - - /tests/phpunit/tests/db\.php - - - /tests/phpunit/tests/db\.php - - - /tests/phpunit/tests/db\.php - - - /tests/phpunit/tests/admin/includesSchema\.php - /tests/phpunit/tests/multisite/site\.php - + - - - /src/wp-includes/class-wp-block-parser\.php - /src/wp-includes/class-wp-block-parser-block\.php + + + + + + warning - - /src/wp-includes/class-wp-block-parser-block\.php + + warning - - /src/wp-includes/class-wp-block-parser-block\.php + + warning + - - - /src/wp-includes/l10n\.php - /tests/phpunit/tests/l10n\.php - /tests/phpunit/tests/l10n/loadTextdomainJustInTime\.php - - - - /tests/* - + - - /wp-config\.php - /wp-config-sample\.php - /wp-tests-config\.php - /wp-tests-config-sample\.php + + + warning - - - - /wp-config\.php - /wp-config-sample\.php - + + warning - - - - /src/wp-includes/template\.php + + warning - - - - /src/_index\.php - /src/wp-admin/_index\.php - /src/wp-content/themes/twentythirteen/taxonomy-post_format\.php - /src/wp-content/themes/twentyfourteen/taxonomy-post_format\.php + + warning - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -303,42 +230,43 @@ - - - warning - - - warning - - - warning - - - - - * + + + /wp-config\.php + /wp-config-sample\.php + - - - /tests/phpunit/tests/* - - - /tests/phpunit/tests/* + + /wp-config\.php + /wp-config-sample\.php + /wp-tests-config\.php + /wp-tests-config-sample\.php - + /tests/phpunit/tests/* + /src/wp-admin/includes/class-wp-filesystem-ftpsockets\.php /src/wp-includes/class-wp-oembed\.php /src/wp-includes/class-wp-oembed-controller\.php /src/wp-includes/class-wp-xmlrpc-server\.php /src/wp-includes/class-wp-text-diff-renderer-inline\.php + + /src/wp-admin/includes/class-wp-list-table-compat\.php /src/wp-includes/class-wp-dependency\.php @@ -347,6 +275,43 @@ /src/wp-includes/class-wpdb\.php + + + * + + + + + /src/wp-includes/class-wpdb\.php + /tests/phpunit/tests/db/charset\.php + + + + + /tests/phpunit/tests/db\.php + + + /tests/phpunit/tests/db\.php + + + /tests/phpunit/tests/db\.php + + + /tests/phpunit/tests/admin/includesSchema\.php + /tests/phpunit/tests/multisite/site\.php + + + + + /tests/phpunit/* + + + + + /src/wp-includes/template\.php + + /src/wp-admin/includes/class-wp-list-table-compat\.php @@ -356,4 +321,38 @@ /src/wp-content/themes/twentyfourteen/inc/widgets\.php /src/wp-content/themes/twentyfourteen/inc/featured-content\.php + + + + /src/_index\.php + /src/wp-admin/_index\.php + /src/wp-content/themes/twentythirteen/taxonomy-post_format\.php + /src/wp-content/themes/twentyfourteen/taxonomy-post_format\.php + + + + + /src/wp-includes/l10n\.php + /tests/phpunit/tests/l10n\.php + /tests/phpunit/tests/l10n/loadTextdomainJustInTime\.php + + + + + /tests/* + + + + + /src/wp-includes/class-wp-block-parser\.php + /src/wp-includes/class-wp-block-parser-block\.php + + + /src/wp-includes/class-wp-block-parser-block\.php + + + /src/wp-includes/class-wp-block-parser-block\.php + + diff --git a/src/js/_enqueues/admin/application-passwords.js b/src/js/_enqueues/admin/application-passwords.js index ae9fe43b0c1a5..c79cdb8b4037f 100644 --- a/src/js/_enqueues/admin/application-passwords.js +++ b/src/js/_enqueues/admin/application-passwords.js @@ -60,7 +60,7 @@ name: response.name, password: response.password } ) ); - $( '.new-application-password-notice' ).trigger( 'focus' ); + $( '.new-application-password-notice' ).attr( 'tabindex', '-1' ).trigger( 'focus' ); $appPassTbody.prepend( tmplAppPassRow( response ) ); diff --git a/src/js/_enqueues/admin/common.js b/src/js/_enqueues/admin/common.js index f85a9378caf06..1bb0b2169ccb6 100644 --- a/src/js/_enqueues/admin/common.js +++ b/src/js/_enqueues/admin/common.js @@ -2104,3 +2104,119 @@ $( function( $ ) { })(); }( jQuery, window )); + +/** + * Freeze animated plugin icons when reduced motion is enabled. + * + * When the user has enabled the 'prefers-reduced-motion' setting, this module + * stops animations for all GIFs on the page with the class 'plugin-icon' or + * plugin icon images in the update plugins table. + * + * @since 6.4 + */ +(function() { + // Private variables and methods. + var priv = {}, + pub = {}, + mediaQuery; + + // Initialize pauseAll to false; it will be set to true if reduced motion is preferred. + priv.pauseAll = false; + if ( window.matchMedia ) { + mediaQuery = window.matchMedia( '(prefers-reduced-motion: reduce)' ); + if ( ! mediaQuery || mediaQuery.matches ) { + priv.pauseAll = true; + } + } + + // Method to replace animated GIFs with a static frame. + priv.freezeAnimatedPluginIcons = function( img ) { + var coverImage = function() { + var width = img.width; + var height = img.height; + var canvas = document.createElement( 'canvas' ); + + // Set canvas dimensions. + canvas.width = width; + canvas.height = height; + + // Copy classes from the image to the canvas. + canvas.className = img.className; + + // Check if the image is inside a specific table. + var isInsideUpdateTable = img.closest( '#update-plugins-table' ); + + if ( isInsideUpdateTable ) { + // Transfer computed styles from image to canvas. + var computedStyles = window.getComputedStyle( img ), + i, max; + for ( i = 0, max = computedStyles.length; i < max; i++ ) { + var propName = computedStyles[ i ]; + var propValue = computedStyles.getPropertyValue( propName ); + canvas.style[ propName ] = propValue; + } + } + + // Draw the image onto the canvas. + canvas.getContext( '2d' ).drawImage( img, 0, 0, width, height ); + + // Set accessibility attributes on canvas. + canvas.setAttribute( 'aria-hidden', 'true' ); + canvas.setAttribute( 'role', 'presentation' ); + + // Insert canvas before the image and set the image to be near-invisible. + var parent = img.parentNode; + parent.insertBefore( canvas, img ); + img.style.opacity = 0.01; + img.style.width = '0px'; + img.style.height = '0px'; + }; + + // If the image is already loaded, apply the coverImage function. + if ( img.complete ) { + coverImage(); + } else { + // Otherwise, wait for the image to load. + img.addEventListener( 'load', coverImage, true ); + } + }; + + // Public method to freeze all relevant GIFs on the page. + pub.freezeAll = function() { + var images = document.querySelectorAll( '.plugin-icon, #update-plugins-table img' ); + for ( var x = 0; x < images.length; x++ ) { + if ( /\.gif(?:\?|$)/i.test( images[ x ].src ) ) { + priv.freezeAnimatedPluginIcons( images[ x ] ); + } + } + }; + + // Only run the freezeAll method if the user prefers reduced motion. + if ( true === priv.pauseAll ) { + pub.freezeAll(); + } + + // Listen for jQuery AJAX events. + ( function( $ ) { + $( document ).ajaxComplete( function( event, xhr, settings ) { + // Check if this is the 'search-install-plugins' request. + if ( settings.data && settings.data.includes( 'action=search-install-plugins' ) ) { + // Recheck if the user prefers reduced motion. + if ( window.matchMedia ) { + var mediaQuery = window.matchMedia( '(prefers-reduced-motion: reduce)' ); + if ( mediaQuery.matches ) { + pub.freezeAll(); + } + } else { + // Fallback for browsers that don't support matchMedia. + if ( true === priv.pauseAll ) { + pub.freezeAll(); + } + } + } + } ); + } )( jQuery ); + + // Expose public methods. + return pub; +})(); diff --git a/src/js/_enqueues/lib/image-edit.js b/src/js/_enqueues/lib/image-edit.js index 8f44e930be40e..253152b07b094 100644 --- a/src/js/_enqueues/lib/image-edit.js +++ b/src/js/_enqueues/lib/image-edit.js @@ -236,8 +236,10 @@ // Open menu and set z-index to appear above image crop area if it is enabled. $target .toggleClass( 'imgedit-popup-menu-open' ).slideToggle( 'fast' ).css( { 'z-index' : 200000 } ); - // Move focus to first item in menu. - $target.find( 'button' ).first().trigger( 'focus' ); + // Move focus to first item in menu when opening menu. + if ( 'true' === $el.attr( 'aria-expanded' ) ) { + $target.find( 'button' ).first().trigger( 'focus' ); + } return false; }, @@ -856,7 +858,7 @@ elementToSetFocusTo = $( '.imgedit-wrap' ).find( ':tabbable:first' ); } - elementToSetFocusTo.trigger( 'focus' ); + elementToSetFocusTo.attr( 'tabindex', '-1' ).trigger( 'focus' ); }, 100 ); }, diff --git a/src/wp-admin/_index.php b/src/wp-admin/_index.php index 7278cfbf37c24..de5cc21b8ff4f 100644 --- a/src/wp-admin/_index.php +++ b/src/wp-admin/_index.php @@ -154,20 +154,21 @@ // Only show the dashboard notice if it's been less than a minute since the message was postponed. if ( $time_passed < MINUTE_IN_SECONDS ) : - ?> -
-

- -

-
- - + $message = sprintf( + /* translators: %s: Human-readable time interval. */ + __( 'The admin email verification page will reappear after %s.' ), + human_time_diff( time() + $remind_interval ) + ); + wp_admin_notice( + $message, + array( + 'type' => 'success', + 'dismissible' => true, + ) + ); + endif; + endif; + ?> %s %s
%s', + $message = sprintf( + '%s %s
%s', sprintf( '', __( 'Dismiss' ) @@ -126,6 +126,13 @@ ), esc_html( $id->get_error_message() ) ); + wp_admin_notice( + $message, + array( + 'additional_classes' => array( 'error-div', 'error' ), + 'paragraph_wrap' => false, + ) + ); exit; } diff --git a/src/wp-admin/authorize-application.php b/src/wp-admin/authorize-application.php index 1eabb9633581f..8d931f46666a2 100644 --- a/src/wp-admin/authorize-application.php +++ b/src/wp-admin/authorize-application.php @@ -137,9 +137,16 @@

- -

get_error_message(); ?>

- + get_error_message(), + array( + 'type' => 'error', + ) + ); + } + ?>

@@ -194,24 +201,25 @@ } ?> - -
-

- - -

-

-
+ + + +

+

' . __( 'Be sure to save this in a safe location. You will not be able to retrieve it.' ) . '

'; + $args = array( + 'type' => 'success', + 'additional_classes' => array( 'notice-alt', 'below-h2' ), + 'paragraph_wrap' => false, + ); + wp_admin_notice( $message, $args ); - -
diff --git a/src/wp-admin/comment.php b/src/wp-admin/comment.php index ccb72c0910556..349a32a43ed09 100644 --- a/src/wp-admin/comment.php +++ b/src/wp-admin/comment.php @@ -161,11 +161,23 @@ break; } if ( $message ) { - echo '

' . $message . '

'; + wp_admin_notice( + $message, + array( + 'type' => 'info', + 'id' => 'message', + ) + ); } } + wp_admin_notice( + '' . __( 'Caution:' ) . ' ' . $caution_msg, + array( + 'type' => 'warning', + 'id' => 'message', + ) + ); ?> -

diff --git a/src/wp-admin/css/common.css b/src/wp-admin/css/common.css index da7243e94910b..53520b82cb589 100644 --- a/src/wp-admin/css/common.css +++ b/src/wp-admin/css/common.css @@ -624,20 +624,26 @@ code { .wrap .add-new-h2:active, /* deprecated */ .wrap .page-title-action, .wrap .page-title-action:active { - margin-left: 4px; - padding: 4px 8px; + display: inline-block; position: relative; - top: -3px; + box-sizing: border-box; + cursor: pointer; + white-space: nowrap; text-decoration: none; - border: 1px solid #2271b1; - border-radius: 2px; text-shadow: none; - font-weight: 600; + top: -3px; + margin-left: 4px; + border: 1px solid #2271b1; + border-radius: 3px; + background: #f6f7f7; font-size: 13px; - line-height: normal; /* IE8-IE11 need this for buttons */ + font-weight: 400; + line-height: 2.15384615; color: #2271b1; /* use the standard color used for buttons */ - background: #f6f7f7; - cursor: pointer; + padding: 0 10px; + min-height: 30px; + -webkit-appearance: none; + } .wrap .wp-heading-inline + .page-title-action { diff --git a/src/wp-admin/css/customize-controls.css b/src/wp-admin/css/customize-controls.css index 4bd63832f9795..3548f12e9c6b5 100644 --- a/src/wp-admin/css/customize-controls.css +++ b/src/wp-admin/css/customize-controls.css @@ -2317,7 +2317,7 @@ p.customize-section-description { .wp-customizer .theme-overlay .theme-actions { text-align: right; /* Because there're only one or two actions, match the UI pattern of media modals and right-align the action. */ - padding: 10px 25px; + padding: 10px 25px 5px; background: #f0f0f1; border-top: 1px solid #dcdcde; } @@ -2326,13 +2326,6 @@ p.customize-section-description { margin-left: 8px; } -.control-panel-themes .theme-actions .delete-theme { - left: 15px; /* these override themes.css on mobile */ - right: auto; - bottom: auto; - position: absolute; -} - .modal-open .in-themes-panel #customize-controls .wp-full-overlay-sidebar-content { overflow: visible; /* Prevent the top-level Customizer controls from becoming visible when elements on the right of the details modal are focused. */ } diff --git a/src/wp-admin/css/forms.css b/src/wp-admin/css/forms.css index 09ad1a3c3aa7d..7274b0bcd7fee 100644 --- a/src/wp-admin/css/forms.css +++ b/src/wp-admin/css/forms.css @@ -1708,6 +1708,11 @@ table.form-table td .updated p { font-size: 14px; } + .form-table td > label:first-child { + display: inline-block; + margin-top: 0.35em; + } + .background-position-control .button-group > label { font-size: 0; } diff --git a/src/wp-admin/css/nav-menus.css b/src/wp-admin/css/nav-menus.css index d85b57b5b4ea7..4fd178dbb0177 100644 --- a/src/wp-admin/css/nav-menus.css +++ b/src/wp-admin/css/nav-menus.css @@ -837,20 +837,13 @@ body.menu-max-depth-11 { min-width: 1280px !important; } /* Major/minor publishing actions (classes) */ .nav-menus-php .major-publishing-actions { - clear: both; padding: 10px 0; - line-height: 2.15384615; -} - -.nav-menus-php .major-publishing-actions .publishing-action { - text-align: right; - float: right; + display: flex; + align-items: center; } -/* Same as the Publish Meta Box #delete-action */ -.nav-menus-php .delete-action { - float: left; - line-height: 2.1; +.nav-menus-php .major-publishing-actions > * { + margin-right: 10px; } .nav-menus-php .major-publishing-actions .form-invalid { diff --git a/src/wp-admin/css/themes.css b/src/wp-admin/css/themes.css index c1a1eb22dde49..268cc558f3e10 100644 --- a/src/wp-admin/css/themes.css +++ b/src/wp-admin/css/themes.css @@ -506,10 +506,12 @@ body.folded .theme-browser ~ .theme-overlay .theme-wrap { z-index: 30; box-sizing: border-box; border-top: 1px solid #f0f0f1; + display: flex; + justify-content: center; + gap: 5px; } -.theme-overlay .theme-actions a { - margin-right: 5px; +.theme-overlay .theme-actions .button { margin-bottom: 5px; } @@ -521,26 +523,21 @@ body.folded .theme-browser ~ .theme-overlay .theme-wrap { .broken-themes a.delete-theme, .theme-overlay .theme-actions .delete-theme { - color: #d63638; + color: #b32d2e; text-decoration: none; border-color: transparent; box-shadow: none; background: transparent; } -.theme-overlay .theme-actions .delete-theme { - position: absolute; - right: 10px; - bottom: 5px; -} - .broken-themes a.delete-theme:hover, .broken-themes a.delete-theme:focus, .theme-overlay .theme-actions .delete-theme:hover, .theme-overlay .theme-actions .delete-theme:focus { - background: #d63638; + background: #b32d2e; color: #fff; - border-color: #d63638; + border-color: #b32d2e; + box-shadow: 0 0 0 1px #b32d2e; } .theme-overlay .theme-actions .active-theme, diff --git a/src/wp-admin/edit-comments.php b/src/wp-admin/edit-comments.php index d7f14f2cd09aa..262e2d9c35541 100644 --- a/src/wp-admin/edit-comments.php +++ b/src/wp-admin/edit-comments.php @@ -84,31 +84,31 @@ switch ( $doaction ) { case 'approve': wp_set_comment_status( $comment_id, 'approve' ); - $approved++; + ++$approved; break; case 'unapprove': wp_set_comment_status( $comment_id, 'hold' ); - $unapproved++; + ++$unapproved; break; case 'spam': wp_spam_comment( $comment_id ); - $spammed++; + ++$spammed; break; case 'unspam': wp_unspam_comment( $comment_id ); - $unspammed++; + ++$unspammed; break; case 'trash': wp_trash_comment( $comment_id ); - $trashed++; + ++$trashed; break; case 'untrash': wp_untrash_comment( $comment_id ); - $untrashed++; + ++$untrashed; break; case 'delete': wp_delete_comment( $comment_id ); - $deleted++; + ++$deleted; break; } } @@ -301,7 +301,13 @@ break; } if ( $error_msg ) { - echo '

' . $error_msg . '

'; + wp_admin_notice( + $error_msg, + array( + 'id' => 'moderated', + 'additional_classes' => array( 'error' ), + ) + ); } } @@ -411,9 +417,13 @@ } } - printf( - '

%s

', - implode( "
\n", $messages ) + wp_admin_notice( + implode( "
\n", $messages ), + array( + 'id' => 'moderated', + 'additional_classes' => array( 'updated' ), + 'dismissible' => true, + ) ); } } diff --git a/src/wp-admin/edit-form-advanced.php b/src/wp-admin/edit-form-advanced.php index 12344df3ba57a..dc3623606c6fb 100644 --- a/src/wp-admin/edit-form-advanced.php +++ b/src/wp-admin/edit-form-advanced.php @@ -440,17 +440,43 @@
- -

- - -

- - +' . $notice . '

', + array( + 'type' => 'warning', + 'id' => 'notice', + 'paragraph_wrap' => false, + ) + ); +endif; +if ( $message ) : + wp_admin_notice( + $message, + array( + 'type' => 'success', + 'dismissible' => true, + 'id' => 'message', + 'additional_classes' => array( 'updated' ), + ) + ); +endif; + +$connection_lost_message = sprintf( + ' %1$s %2$s', + __( 'Connection lost. Saving has been disabled until you are reconnected.' ), + __( 'This post is being backed up in your browser, just in case.' ) +); + +wp_admin_notice( + $connection_lost_message, + array( + 'id' => 'lost-connection-notice', + 'additional_classes' => array( 'error', 'hidden' ), + ) +); +?>

-
-

- Classic Editor plugin.' ), - esc_url( wp_nonce_url( self_admin_url( 'plugin-install.php?tab=favorites&user=wordpressdotorg&save=0' ), 'save_wporg_username_' . get_current_user_id() ) ) - ); - - /** - * Filters the message displayed in the block editor interface when JavaScript is - * not enabled in the browser. - * - * @since 5.0.3 - * - * @param string $message The message being displayed. - * @param WP_Post $post The post being edited. - */ - echo apply_filters( 'block_editor_no_javascript_message', $message, $post ); - ?> -

-
+ Classic Editor plugin.' ), + esc_url( wp_nonce_url( self_admin_url( 'plugin-install.php?tab=favorites&user=wordpressdotorg&save=0' ), 'save_wporg_username_' . get_current_user_id() ) ) + ); + + /** + * Filters the message displayed in the block editor interface when JavaScript is + * not enabled in the browser. + * + * @since 5.0.3 + * + * @param string $message The message being displayed. + * @param WP_Post $post The post being edited. + */ + $message = apply_filters( 'block_editor_no_javascript_message', $message, $post ); + wp_admin_notice( + $message, + array( + 'type' => 'error', + ) + ); + ?>
diff --git a/src/wp-admin/edit-link-form.php b/src/wp-admin/edit-link-form.php index d205a38f3131d..1bbb32d3a6718 100644 --- a/src/wp-admin/edit-link-form.php +++ b/src/wp-admin/edit-link-form.php @@ -87,13 +87,22 @@ ?> - +
- -

- + 'message', + 'additional_classes' => array( 'updated' ), + 'dismissible' => true, + ) + ); +} +?> - - ' . $message . '

'; + if ( $wp_http_referer ) { + $message .= '

' . esc_html( $tax->labels->back_to_items ) . '

'; + } + wp_admin_notice( + $message, + array( + 'type' => $class, + 'id' => 'message', + 'paragraph_wrap' => false, + ) + ); } ?> diff --git a/src/wp-admin/edit-tags.php b/src/wp-admin/edit-tags.php index 159ffa68475d7..947db5ffc5f85 100644 --- a/src/wp-admin/edit-tags.php +++ b/src/wp-admin/edit-tags.php @@ -348,9 +348,16 @@
- -

- 'message', + 'additional_classes' => array( $class ), + 'dismissible' => true, + ) + ); $_SERVER['REQUEST_URI'] = remove_query_arg( array( 'message', 'error' ), $_SERVER['REQUEST_URI'] ); endif; ?> diff --git a/src/wp-admin/edit.php b/src/wp-admin/edit.php index c2a2b6990c9c0..6e4a05eabcc18 100644 --- a/src/wp-admin/edit.php +++ b/src/wp-admin/edit.php @@ -124,7 +124,7 @@ } if ( wp_check_post_lock( $post_id ) ) { - $locked++; + ++$locked; continue; } @@ -132,7 +132,7 @@ wp_die( __( 'Error in moving the item to Trash.' ) ); } - $trashed++; + ++$trashed; } $sendback = add_query_arg( @@ -160,7 +160,7 @@ wp_die( __( 'Error in restoring the item from Trash.' ) ); } - $untrashed++; + ++$untrashed; } $sendback = add_query_arg( 'untrashed', $untrashed, $sendback ); @@ -185,7 +185,7 @@ wp_die( __( 'Error in deleting the item.' ) ); } } - $deleted++; + ++$deleted; } $sendback = add_query_arg( 'deleted', $deleted, $sendback ); break; @@ -288,7 +288,11 @@ 'title' => __( 'Bulk actions' ), 'content' => '

' . __( 'You can also edit or move multiple posts to the Trash at once. Select the posts you want to act on using the checkboxes, then select the action you want to take from the Bulk actions menu and click Apply.' ) . '

' . - '

' . __( 'When using Bulk Edit, you can change the metadata (categories, author, etc.) for all selected posts at once. To remove a post from the grouping, just click the x next to its name in the Bulk Edit area that appears.' ) . '

', + '

' . sprintf( + /* translators: %s: The dismiss dashicon used for buttons that dismiss or remove. */ + __( 'When using Bulk Edit, you can change the metadata (categories, author, etc.) for all selected posts at once. To remove a post from the grouping, just click the %sremove button next to its name in the Bulk Edit area that appears.' ), + '' + ) . '

', ) ); @@ -377,17 +381,17 @@ 'untrashed' => _n( '%s page restored from the Trash.', '%s pages restored from the Trash.', $bulk_counts['untrashed'] ), ); $bulk_messages['wp_block'] = array( - /* translators: %s: Number of blocks. */ - 'updated' => _n( '%s block updated.', '%s blocks updated.', $bulk_counts['updated'] ), - 'locked' => ( 1 === $bulk_counts['locked'] ) ? __( '1 block not updated, somebody is editing it.' ) : - /* translators: %s: Number of blocks. */ - _n( '%s block not updated, somebody is editing it.', '%s blocks not updated, somebody is editing them.', $bulk_counts['locked'] ), - /* translators: %s: Number of blocks. */ - 'deleted' => _n( '%s block permanently deleted.', '%s blocks permanently deleted.', $bulk_counts['deleted'] ), - /* translators: %s: Number of blocks. */ - 'trashed' => _n( '%s block moved to the Trash.', '%s blocks moved to the Trash.', $bulk_counts['trashed'] ), - /* translators: %s: Number of blocks. */ - 'untrashed' => _n( '%s block restored from the Trash.', '%s blocks restored from the Trash.', $bulk_counts['untrashed'] ), + /* translators: %s: Number of patterns. */ + 'updated' => _n( '%s pattern updated.', '%s patterns updated.', $bulk_counts['updated'] ), + 'locked' => ( 1 === $bulk_counts['locked'] ) ? __( '1 pattern not updated, somebody is editing it.' ) : + /* translators: %s: Number of patterns. */ + _n( '%s pattern not updated, somebody is editing it.', '%s patterns not updated, somebody is editing them.', $bulk_counts['locked'] ), + /* translators: %s: Number of patterns. */ + 'deleted' => _n( '%s pattern permanently deleted.', '%s patterns permanently deleted.', $bulk_counts['deleted'] ), + /* translators: %s: Number of patterns. */ + 'trashed' => _n( '%s pattern moved to the Trash.', '%s patterns moved to the Trash.', $bulk_counts['trashed'] ), + /* translators: %s: Number of patterns. */ + 'untrashed' => _n( '%s pattern restored from the Trash.', '%s patterns restored from the Trash.', $bulk_counts['untrashed'] ), ); /** @@ -465,9 +469,13 @@ } if ( $messages ) { - printf( - '

%s

', - implode( ' ', $messages ) + wp_admin_notice( + implode( ' ', $messages ), + array( + 'id' => 'message', + 'additional_classes' => array( 'updated' ), + 'dismissible' => true, + ) ); } unset( $messages ); @@ -482,7 +490,7 @@ search_box( $post_type_object->labels->search_items, 'post' ); ?> - + diff --git a/src/wp-admin/export.php b/src/wp-admin/export.php index e073a24f2948a..7f1dd43445624 100644 --- a/src/wp-admin/export.php +++ b/src/wp-admin/export.php @@ -160,7 +160,12 @@ function export_date_options( $post_type = 'post' ) { } $month = zeroise( $date->month, 2 ); - echo ''; + + printf( + '', + esc_attr( $date->year . '-' . $month ), + $wp_locale->get_month( $month ) . ' ' . $date->year + ); } } ?> diff --git a/src/wp-admin/import.php b/src/wp-admin/import.php index 7bf1c1a135490..c97a31b6eda33 100644 --- a/src/wp-admin/import.php +++ b/src/wp-admin/import.php @@ -60,16 +60,21 @@

- -
-

- ' . esc_html( $_GET['invalid'] ) . '' ); - ?> -

-
- +' . __( 'Error:' ) . ' ' . sprintf( + /* translators: %s: Importer slug. */ + __( 'The %s importer is invalid or is not installed.' ), + '' . esc_html( $_GET['invalid'] ) . '' + ); + wp_admin_notice( + $importer_not_installed, + array( + 'additional_classes' => array( 'error' ), + ) + ); +endif; +?>

0 ) { $parent_post = get_post( $parent ); $parent = $parent_post->post_parent; - $level++; + ++$level; } } @@ -2211,7 +2211,7 @@ function wp_ajax_inline_save_tax() { while ( $parent > 0 ) { $parent_tag = get_term( $parent, $taxonomy ); $parent = $parent_tag->parent; - $level++; + ++$level; } $wp_list_table->single_row( $tag, $level ); @@ -2821,7 +2821,7 @@ function wp_ajax_set_attachment_thumbnail() { } if ( set_post_thumbnail( $post_id, $thumbnail_id ) ) { - $success++; + ++$success; } } @@ -4939,8 +4939,8 @@ function wp_ajax_wp_privacy_export_personal_data() { * Array of personal data exporters. * * @type callable $callback Callable exporter function that accepts an - * email address and a page and returns an array - * of name => value pairs of personal data. + * email address and a page number and returns an + * array of name => value pairs of personal data. * @type string $exporter_friendly_name Translated user facing friendly name for the * exporter. * } @@ -5051,10 +5051,10 @@ function wp_ajax_wp_privacy_export_personal_data() { * * @since 4.9.6 * - * @param array $response The personal data for the given exporter and page. + * @param array $response The personal data for the given exporter and page number. * @param int $exporter_index The index of the exporter that provided this data. * @param string $email_address The email address associated with this personal data. - * @param int $page The page for this response. + * @param int $page The page number for this response. * @param int $request_id The privacy request post ID associated with this request. * @param bool $send_as_email Whether the final results of the export should be emailed to the user. * @param string $exporter_key The key (slug) of the exporter that provided this data. @@ -5128,8 +5128,8 @@ function wp_ajax_wp_privacy_erase_personal_data() { * @type array ...$0 { * Array of personal data exporters. * - * @type callable $callback Callable eraser that accepts an email address and - * a page and returns an array with boolean values for + * @type callable $callback Callable eraser that accepts an email address and a page + * number, and returns an array with boolean values for * whether items were removed or retained and any messages * from the eraser, as well as if additional pages are * available. @@ -5281,10 +5281,17 @@ function wp_ajax_wp_privacy_erase_personal_data() { * * @since 4.9.6 * - * @param array $response The personal data for the given exporter and page. + * @param array $response { + * The personal data for the given exporter and page number. + * + * @type bool $items_removed Whether items were actually removed or not. + * @type bool $items_retained Whether items were retained or not. + * @type string[] $messages An array of messages to add to the personal data export file. + * @type bool $done Whether the eraser is finished or not. + * } * @param int $eraser_index The index of the eraser that provided this data. * @param string $email_address The email address associated with this personal data. - * @param int $page The page for this response. + * @param int $page The page number for this response. * @param int $request_id The privacy request post ID associated with this request. * @param string $eraser_key The key (slug) of the eraser that provided this data. */ diff --git a/src/wp-admin/includes/class-bulk-upgrader-skin.php b/src/wp-admin/includes/class-bulk-upgrader-skin.php index 8ce4a70ff7221..461311962d411 100644 --- a/src/wp-admin/includes/class-bulk-upgrader-skin.php +++ b/src/wp-admin/includes/class-bulk-upgrader-skin.php @@ -143,10 +143,16 @@ public function after( $title = '' ) { echo '

'; if ( $this->error || ! $this->result ) { if ( $this->error ) { - echo '

' . sprintf( $this->upgrader->strings['skin_update_failed_error'], $title, '' . $this->error . '' ) . '

'; + $after_error_message = sprintf( $this->upgrader->strings['skin_update_failed_error'], $title, '' . $this->error . '' ); } else { - echo '

' . sprintf( $this->upgrader->strings['skin_update_failed'], $title ) . '

'; + $after_error_message = sprintf( $this->upgrader->strings['skin_update_failed'], $title ); } + wp_admin_notice( + $after_error_message, + array( + 'additional_classes' => array( 'error' ), + ) + ); echo ''; } diff --git a/src/wp-admin/includes/class-custom-background.php b/src/wp-admin/includes/class-custom-background.php index e8aee43c2edbb..b818016b28931 100644 --- a/src/wp-admin/includes/class-custom-background.php +++ b/src/wp-admin/includes/class-custom-background.php @@ -239,30 +239,37 @@ public function admin_page() {

- -
-

- Customizer.' ), admin_url( 'customize.php?autofocus[control]=background_image' ) ); - ?> -

-
- + wp_admin_notice( + $message, + array( + 'type' => 'info', + 'additional_classes' => array( 'hide-if-no-customize' ), + ) + ); + } - updated ) ) { ?> -
-

- Visit your site to see how it looks.' ), esc_url( home_url( '/' ) ) ); - ?> -

-
- + if ( ! empty( $this->updated ) ) { + $updated_message = sprintf( + /* translators: %s: Home URL. */ + __( 'Background updated. Visit your site to see how it looks.' ), + esc_url( home_url( '/' ) ) + ); + wp_admin_notice( + $updated_message, + array( + 'id' => 'message', + 'additional_classes' => array( 'updated' ), + ) + ); + } + ?>

diff --git a/src/wp-admin/includes/class-custom-image-header.php b/src/wp-admin/includes/class-custom-image-header.php index f1361440fa9cd..9df725af0cb06 100644 --- a/src/wp-admin/includes/class-custom-image-header.php +++ b/src/wp-admin/includes/class-custom-image-header.php @@ -509,30 +509,37 @@ public function step_1() {

- -
-

- Customizer.' ), admin_url( 'customize.php?autofocus[control]=header_image' ) ); - ?> -

-
- + wp_admin_notice( + $message, + array( + 'type' => 'info', + 'additional_classes' => array( 'hide-if-no-customize' ), + ) + ); + } - updated ) ) { ?> -
-

- Visit your site to see how it looks.' ), esc_url( home_url( '/' ) ) ); - ?> -

-
- + if ( ! empty( $this->updated ) ) { + $updated_message = sprintf( + /* translators: %s: Home URL. */ + __( 'Header updated. Visit your site to see how it looks.' ), + esc_url( home_url( '/' ) ) + ); + wp_admin_notice( + $updated_message, + array( + 'id' => 'message', + 'additional_classes' => array( 'updated' ), + ) + ); + } + ?>

diff --git a/src/wp-admin/includes/class-language-pack-upgrader.php b/src/wp-admin/includes/class-language-pack-upgrader.php index adeac200d4f80..3c3d42a56a9c8 100644 --- a/src/wp-admin/includes/class-language-pack-upgrader.php +++ b/src/wp-admin/includes/class-language-pack-upgrader.php @@ -238,7 +238,7 @@ public function bulk_upgrade( $language_updates = array(), $args = array() ) { $destination .= '/themes'; } - $this->update_current++; + ++$this->update_current; $options = array( 'package' => $language_update->package, diff --git a/src/wp-admin/includes/class-plugin-upgrader.php b/src/wp-admin/includes/class-plugin-upgrader.php index 0bb711f019c95..02743f64561e9 100644 --- a/src/wp-admin/includes/class-plugin-upgrader.php +++ b/src/wp-admin/includes/class-plugin-upgrader.php @@ -274,6 +274,8 @@ public function upgrade( $plugin, $args = array() ) { * @since 2.8.0 * @since 3.7.0 The `$args` parameter was added, making clearing the plugin update cache optional. * + * @global string $wp_version The WordPress version string. + * * @param string[] $plugins Array of paths to plugin files relative to the plugins directory. * @param array $args { * Optional. Other arguments for upgrading several plugins at once. @@ -283,6 +285,8 @@ public function upgrade( $plugin, $args = array() ) { * @return array|false An array of results indexed by plugin file, or false if unable to connect to the filesystem. */ public function bulk_upgrade( $plugins, $args = array() ) { + global $wp_version; + $defaults = array( 'clear_update_cache' => true, ); @@ -326,7 +330,7 @@ public function bulk_upgrade( $plugins, $args = array() ) { $this->update_count = count( $plugins ); $this->update_current = 0; foreach ( $plugins as $plugin ) { - $this->update_current++; + ++$this->update_current; $this->skin->plugin_info = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin, false, true ); if ( ! isset( $current->response[ $plugin ] ) ) { @@ -343,23 +347,55 @@ public function bulk_upgrade( $plugins, $args = array() ) { $this->skin->plugin_active = is_plugin_active( $plugin ); - $result = $this->run( - array( - 'package' => $r->package, - 'destination' => WP_PLUGIN_DIR, - 'clear_destination' => true, - 'clear_working' => true, - 'is_multi' => true, - 'hook_extra' => array( - 'plugin' => $plugin, - 'temp_backup' => array( - 'slug' => dirname( $plugin ), - 'src' => WP_PLUGIN_DIR, - 'dir' => 'plugins', + if ( isset( $r->requires ) && ! is_wp_version_compatible( $r->requires ) ) { + $result = new WP_Error( + 'incompatible_wp_required_version', + sprintf( + /* translators: 1: Current WordPress version, 2: WordPress version required by the new plugin version. */ + __( 'Your WordPress version is %1$s, however the new plugin version requires %2$s.' ), + $wp_version, + $r->requires + ) + ); + + $this->skin->before( $result ); + $this->skin->error( $result ); + $this->skin->after(); + } elseif ( isset( $r->requires_php ) && ! is_php_version_compatible( $r->requires_php ) ) { + $result = new WP_Error( + 'incompatible_php_required_version', + sprintf( + /* translators: 1: Current PHP version, 2: PHP version required by the new plugin version. */ + __( 'The PHP version on your server is %1$s, however the new plugin version requires %2$s.' ), + PHP_VERSION, + $r->requires_php + ) + ); + + $this->skin->before( $result ); + $this->skin->error( $result ); + $this->skin->after(); + } else { + add_filter( 'upgrader_source_selection', array( $this, 'check_package' ) ); + $result = $this->run( + array( + 'package' => $r->package, + 'destination' => WP_PLUGIN_DIR, + 'clear_destination' => true, + 'clear_working' => true, + 'is_multi' => true, + 'hook_extra' => array( + 'plugin' => $plugin, + 'temp_backup' => array( + 'slug' => dirname( $plugin ), + 'src' => WP_PLUGIN_DIR, + 'dir' => 'plugins', + ), ), - ), - ) - ); + ) + ); + remove_filter( 'upgrader_source_selection', array( $this, 'check_package' ) ); + } $results[ $plugin ] = $result; diff --git a/src/wp-admin/includes/class-theme-upgrader.php b/src/wp-admin/includes/class-theme-upgrader.php index 6bb9ba784a2c5..12bd4772919cc 100644 --- a/src/wp-admin/includes/class-theme-upgrader.php +++ b/src/wp-admin/includes/class-theme-upgrader.php @@ -426,7 +426,7 @@ public function bulk_upgrade( $themes, $args = array() ) { $this->update_count = count( $themes ); $this->update_current = 0; foreach ( $themes as $theme ) { - $this->update_current++; + ++$this->update_current; $this->skin->theme_info = $this->theme_info( $theme ); @@ -768,5 +768,4 @@ public function theme_info( $theme = null ) { return $theme; } - } diff --git a/src/wp-admin/includes/class-walker-nav-menu-checklist.php b/src/wp-admin/includes/class-walker-nav-menu-checklist.php index 939d08b4201d1..6fc5c4169048d 100644 --- a/src/wp-admin/includes/class-walker-nav-menu-checklist.php +++ b/src/wp-admin/includes/class-walker-nav-menu-checklist.php @@ -123,5 +123,4 @@ public function start_el( &$output, $data_object, $depth = 0, $args = null, $cur $output .= ''; $output .= ''; } - } diff --git a/src/wp-admin/includes/class-walker-nav-menu-edit.php b/src/wp-admin/includes/class-walker-nav-menu-edit.php index cb585c9b18f82..7cc7052cdba16 100644 --- a/src/wp-admin/includes/class-walker-nav-menu-edit.php +++ b/src/wp-admin/includes/class-walker-nav-menu-edit.php @@ -61,7 +61,8 @@ public function start_el( &$output, $data_object, $depth = 0, $args = null, $cur global $_wp_nav_menu_max_depth; // Restores the more descriptive, specific name for use within this method. - $menu_item = $data_object; + $menu_item = $data_object; + $_wp_nav_menu_max_depth = $depth > $_wp_nav_menu_max_depth ? $depth : $_wp_nav_menu_max_depth; ob_start(); @@ -319,5 +320,4 @@ public function start_el( &$output, $data_object, $depth = 0, $args = null, $cur name ); - $failures++; + ++$failures; } $body[] = ''; @@ -1432,7 +1432,7 @@ protected function send_debug_email() { if ( ! $item->result || is_wp_error( $item->result ) ) { /* translators: %s: Name of plugin / theme / translation. */ $body[] = ' * ' . sprintf( __( 'FAILED: %s' ), $item->name ); - $failures++; + ++$failures; } } } diff --git a/src/wp-admin/includes/class-wp-comments-list-table.php b/src/wp-admin/includes/class-wp-comments-list-table.php index 7d87ae9aabdc4..401dde0d97275 100644 --- a/src/wp-admin/includes/class-wp-comments-list-table.php +++ b/src/wp-admin/includes/class-wp-comments-list-table.php @@ -685,7 +685,8 @@ protected function handle_row_actions( $item, $column_name, $primary ) { } // Restores the more descriptive, specific name for use within this method. - $comment = $item; + $comment = $item; + $the_comment_status = wp_get_comment_status( $comment ); $output = ''; @@ -1087,6 +1088,9 @@ public function column_response( $comment ) { * @param string $column_name The custom column's name. */ public function column_default( $item, $column_name ) { + // Restores the more descriptive, specific name for use within this method. + $comment = $item; + /** * Fires when the default column output is displayed for a single row. * @@ -1095,6 +1099,6 @@ public function column_default( $item, $column_name ) { * @param string $column_name The custom column's name. * @param string $comment_id The comment ID as a numeric string. */ - do_action( 'manage_comments_custom_column', $column_name, $item->comment_ID ); + do_action( 'manage_comments_custom_column', $column_name, $comment->comment_ID ); } } diff --git a/src/wp-admin/includes/class-wp-community-events.php b/src/wp-admin/includes/class-wp-community-events.php index 09557c86a4782..008611af21c09 100644 --- a/src/wp-admin/includes/class-wp-community-events.php +++ b/src/wp-admin/includes/class-wp-community-events.php @@ -483,7 +483,7 @@ protected function trim_events( array $events ) { $future_wordcamps = array_filter( $future_events, - static function( $wordcamp ) { + static function ( $wordcamp ) { return 'wordcamp' === $wordcamp['type']; } ); diff --git a/src/wp-admin/includes/class-wp-debug-data.php b/src/wp-admin/includes/class-wp-debug-data.php index 39ecd016e81af..d83c8737685eb 100644 --- a/src/wp-admin/includes/class-wp-debug-data.php +++ b/src/wp-admin/includes/class-wp-debug-data.php @@ -548,6 +548,7 @@ public static function debug_data() { ); } else { // Get the PHP ini directive values. + $file_uploads = ini_get( 'file_uploads' ); $post_max_size = ini_get( 'post_max_size' ); $upload_max_filesize = ini_get( 'upload_max_filesize' ); $max_file_uploads = ini_get( 'max_file_uploads' ); @@ -556,8 +557,8 @@ public static function debug_data() { // Add info in Media section. $info['wp-media']['fields']['file_uploads'] = array( 'label' => __( 'File uploads' ), - 'value' => empty( ini_get( 'file_uploads' ) ) ? __( 'Disabled' ) : __( 'Enabled' ), - 'debug' => 'File uploads is turned off', + 'value' => $file_uploads ? __( 'Enabled' ) : __( 'Disabled' ), + 'debug' => $file_uploads, ); $info['wp-media']['fields']['post_max_size'] = array( 'label' => __( 'Max size of post data allowed' ), @@ -855,10 +856,7 @@ public static function debug_data() { ); // Populate the database debug fields. - if ( is_resource( $wpdb->dbh ) ) { - // Old mysql extension. - $extension = 'mysql'; - } elseif ( is_object( $wpdb->dbh ) ) { + if ( is_object( $wpdb->dbh ) ) { // mysqli or PDO. $extension = get_class( $wpdb->dbh ); } else { @@ -868,16 +866,7 @@ public static function debug_data() { $server = $wpdb->get_var( 'SELECT VERSION()' ); - if ( isset( $wpdb->use_mysqli ) && $wpdb->use_mysqli ) { - $client_version = $wpdb->dbh->client_info; - } else { - // phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysql_get_client_info,PHPCompatibility.Extensions.RemovedExtensions.mysql_DeprecatedRemoved - if ( preg_match( '|[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}|', mysql_get_client_info(), $matches ) ) { - $client_version = $matches[0]; - } else { - $client_version = null; - } - } + $client_version = $wpdb->dbh->client_info; $info['wp-database']['fields']['extension'] = array( 'label' => __( 'Extension' ), diff --git a/src/wp-admin/includes/class-wp-filesystem-base.php b/src/wp-admin/includes/class-wp-filesystem-base.php index 07e3f379876e9..b20a4b99e4a97 100644 --- a/src/wp-admin/includes/class-wp-filesystem-base.php +++ b/src/wp-admin/includes/class-wp-filesystem-base.php @@ -333,7 +333,6 @@ public function search_for_folder( $folder, $base = '.', $loop = false ) { * This comes into effect when the CWD is /home/user/ but WP is at /var/www/.... */ return $this->search_for_folder( $folder, '/', true ); - } /** @@ -862,5 +861,4 @@ public function rmdir( $path, $recursive = false ) { public function dirlist( $path, $include_hidden = true, $recursive = false ) { return false; } - } diff --git a/src/wp-admin/includes/class-wp-links-list-table.php b/src/wp-admin/includes/class-wp-links-list-table.php index f29cf7b3e237e..f8886df5fbb8e 100644 --- a/src/wp-admin/includes/class-wp-links-list-table.php +++ b/src/wp-admin/includes/class-wp-links-list-table.php @@ -290,6 +290,9 @@ public function column_rating( $link ) { * @param string $column_name Current column name. */ public function column_default( $item, $column_name ) { + // Restores the more descriptive, specific name for use within this method. + $link = $item; + /** * Fires for each registered custom link column. * @@ -298,7 +301,7 @@ public function column_default( $item, $column_name ) { * @param string $column_name Name of the custom column. * @param int $link_id Link ID. */ - do_action( 'manage_link_custom_column', $column_name, $item->link_id ); + do_action( 'manage_link_custom_column', $column_name, $link->link_id ); } public function display_rows() { @@ -332,7 +335,8 @@ protected function handle_row_actions( $item, $column_name, $primary ) { } // Restores the more descriptive, specific name for use within this method. - $link = $item; + $link = $item; + $edit_link = get_edit_bookmark_link( $link ); $actions = array(); diff --git a/src/wp-admin/includes/class-wp-list-table.php b/src/wp-admin/includes/class-wp-list-table.php index 03fe097538858..8258ebf2a60b2 100644 --- a/src/wp-admin/includes/class-wp-list-table.php +++ b/src/wp-admin/includes/class-wp-list-table.php @@ -186,7 +186,8 @@ public function __get( $name ) { return $this->$name; } - trigger_error( + wp_trigger_error( + __METHOD__, "The property `{$name}` is not declared. Getting a dynamic property is " . 'deprecated since version 6.4.0! Instead, declare the property on the class.', E_USER_DEPRECATED @@ -209,7 +210,8 @@ public function __set( $name, $value ) { return; } - trigger_error( + wp_trigger_error( + __METHOD__, "The property `{$name}` is not declared. Setting a dynamic property is " . 'deprecated since version 6.4.0! Instead, declare the property on the class.', E_USER_DEPRECATED @@ -230,7 +232,8 @@ public function __isset( $name ) { return isset( $this->$name ); } - trigger_error( + wp_trigger_error( + __METHOD__, "The property `{$name}` is not declared. Checking `isset()` on a dynamic property " . 'is deprecated since version 6.4.0! Instead, declare the property on the class.', E_USER_DEPRECATED @@ -252,7 +255,8 @@ public function __unset( $name ) { return; } - trigger_error( + wp_trigger_error( + __METHOD__, "A property `{$name}` is not declared. Unsetting a dynamic property is " . 'deprecated since version 6.4.0! Instead, declare the property on the class.', E_USER_DEPRECATED @@ -1406,7 +1410,7 @@ public function print_column_headers( $with_id = true ) { '' . '' . ''; - $cb_counter++; + ++$cb_counter; } foreach ( $columns as $column_key => $column_display_name ) { diff --git a/src/wp-admin/includes/class-wp-media-list-table.php b/src/wp-admin/includes/class-wp-media-list-table.php index 9eae94ef92ed7..712f6ae190118 100644 --- a/src/wp-admin/includes/class-wp-media-list-table.php +++ b/src/wp-admin/includes/class-wp-media-list-table.php @@ -880,11 +880,11 @@ protected function handle_row_actions( $item, $column_name, $primary ) { return ''; } + // Restores the more descriptive, specific name for use within this method. + $post = $item; + $att_title = _draft_or_post_title(); - $actions = $this->_get_row_actions( - $item, // WP_Post object for an attachment. - $att_title - ); + $actions = $this->_get_row_actions( $post, $att_title ); return $this->row_actions( $actions ); } diff --git a/src/wp-admin/includes/class-wp-ms-sites-list-table.php b/src/wp-admin/includes/class-wp-ms-sites-list-table.php index ec48bf37c7b26..7f8ca76d82df3 100644 --- a/src/wp-admin/includes/class-wp-ms-sites-list-table.php +++ b/src/wp-admin/includes/class-wp-ms-sites-list-table.php @@ -597,6 +597,9 @@ public function column_plugins( $blog ) { * @param string $column_name Current column name. */ public function column_default( $item, $column_name ) { + // Restores the more descriptive, specific name for use within this method. + $blog = $item; + /** * Fires for each registered custom column in the Sites list table. * @@ -605,7 +608,7 @@ public function column_default( $item, $column_name ) { * @param string $column_name The name of the column to display. * @param int $blog_id The site ID. */ - do_action( 'manage_sites_custom_column', $column_name, $item['blog_id'] ); + do_action( 'manage_sites_custom_column', $column_name, $blog['blog_id'] ); } /** @@ -714,7 +717,8 @@ protected function handle_row_actions( $item, $column_name, $primary ) { } // Restores the more descriptive, specific name for use within this method. - $blog = $item; + $blog = $item; + $blogname = untrailingslashit( $blog['domain'] . $blog['path'] ); // Preordered. diff --git a/src/wp-admin/includes/class-wp-ms-themes-list-table.php b/src/wp-admin/includes/class-wp-ms-themes-list-table.php index 4b94e539213ea..ca8010940020e 100644 --- a/src/wp-admin/includes/class-wp-ms-themes-list-table.php +++ b/src/wp-admin/includes/class-wp-ms-themes-list-table.php @@ -509,7 +509,8 @@ public function display_rows() { */ public function column_cb( $item ) { // Restores the more descriptive, specific name for use within this method. - $theme = $item; + $theme = $item; + $checkbox_id = 'checkbox_' . md5( $theme->get( 'Name' ) ); ?>
'; + + wp_admin_notice( + $incompatible_notice_message, + array( + 'type' => 'error', + 'additional_classes' => array( 'notice-alt', 'inline' ), + ) + ); } ?>
diff --git a/src/wp-admin/includes/class-wp-plugins-list-table.php b/src/wp-admin/includes/class-wp-plugins-list-table.php index 56e76251dacc3..fd0700b24958a 100644 --- a/src/wp-admin/includes/class-wp-plugins-list-table.php +++ b/src/wp-admin/includes/class-wp-plugins-list-table.php @@ -728,7 +728,7 @@ public function single_row( $item ) { $suffix = 2; while ( in_array( $plugin_id_attr, $plugin_id_attrs, true ) ) { $plugin_id_attr = "$plugin_slug-$suffix"; - $suffix++; + ++$suffix; } $plugin_id_attrs[] = $plugin_id_attr; @@ -1243,7 +1243,14 @@ public function single_row( $item ) { */ echo apply_filters( 'plugin_auto_update_setting_html', $html, $plugin_file, $plugin_data ); - echo ''; + wp_admin_notice( + '', + array( + 'type' => 'error', + 'additional_classes' => array( 'notice-alt', 'inline', 'hidden' ), + ) + ); + echo ''; break; @@ -1275,56 +1282,64 @@ public function single_row( $item ) { printf( '
' . ''; + wp_admin_notice( + $incompatible_message, + array( + 'type' => 'error', + 'additional_classes' => array( 'notice-alt', 'inline', 'update-message' ), + ) + ); + + echo ''; } /** diff --git a/src/wp-admin/includes/class-wp-posts-list-table.php b/src/wp-admin/includes/class-wp-posts-list-table.php index 6e9bcdc527add..55456333c8554 100644 --- a/src/wp-admin/includes/class-wp-posts-list-table.php +++ b/src/wp-admin/includes/class-wp-posts-list-table.php @@ -898,7 +898,7 @@ private function _display_rows_hierarchical( $pages, $pagenum = 1, $per_page = 2 $to_display[ $page->ID ] = $level; } - $count++; + ++$count; if ( isset( $children_pages ) ) { $this->_page_rows( $children_pages, $count, $page->ID, $level + 1, $pagenum, $per_page, $to_display ); @@ -917,7 +917,7 @@ private function _display_rows_hierarchical( $pages, $pagenum = 1, $per_page = 2 $to_display[ $op->ID ] = 0; } - $count++; + ++$count; } } } @@ -992,7 +992,7 @@ private function _page_rows( &$children_pages, &$count, $parent_page, $level, $p while ( $my_parent = array_pop( $my_parents ) ) { $to_display[ $my_parent->ID ] = $level - $num_parents; - $num_parents--; + --$num_parents; } } @@ -1000,7 +1000,7 @@ private function _page_rows( &$children_pages, &$count, $parent_page, $level, $p $to_display[ $page->ID ] = $level; } - $count++; + ++$count; $this->_page_rows( $children_pages, $count, $page->ID, $level + 1, $pagenum, $per_page, $to_display ); } @@ -1019,6 +1019,7 @@ private function _page_rows( &$children_pages, &$count, $parent_page, $level, $p public function column_cb( $item ) { // Restores the more descriptive, specific name for use within this method. $post = $item; + $show = current_user_can( 'edit_post', $post->ID ); /** @@ -1097,7 +1098,7 @@ public function column_title( $post ) { break; } - $this->current_level++; + ++$this->current_level; $find_main_page = (int) $parent->post_parent; if ( ! isset( $parent_name ) ) { @@ -1167,7 +1168,12 @@ public function column_title( $post ) { } } - get_inline_data( $post ); + /** This filter is documented in wp-admin/includes/class-wp-posts-list-table.php */ + $quick_edit_enabled = apply_filters( 'quick_edit_enabled_for_post_type', true, $post->post_type ); + + if ( $quick_edit_enabled ) { + get_inline_data( $post ); + } } /** @@ -1458,7 +1464,8 @@ protected function handle_row_actions( $item, $column_name, $primary ) { } // Restores the more descriptive, specific name for use within this method. - $post = $item; + $post = $item; + $post_type_object = get_post_type_object( $post->post_type ); $can_edit_post = current_user_can( 'edit_post', $post->ID ); $actions = array(); @@ -1473,7 +1480,17 @@ protected function handle_row_actions( $item, $column_name, $primary ) { __( 'Edit' ) ); - if ( 'wp_block' !== $post->post_type ) { + /** + * Filters whether Quick Edit should be enabled for the given post type. + * + * @since 6.4.0 + * + * @param bool $enable Whether to enable the Quick Edit functionality. Default true. + * @param string $post_type Post type name. + */ + $quick_edit_enabled = apply_filters( 'quick_edit_enabled_for_post_type', true, $post->post_type ); + + if ( $quick_edit_enabled && 'wp_block' !== $post->post_type ) { $actions['inline hide-if-no-js'] = sprintf( '', /* translators: %s: Post title. */ @@ -2076,16 +2093,23 @@ public function inline_edit() { - +

', + array( + 'type' => 'error', + 'additional_classes' => array( 'notice-alt', 'inline', 'hidden' ), + 'paragraph_wrap' => false, + ) + ); + ?>
' . - '

', esc_attr( $this->get_column_count() ) ); + $incompatible_message = ''; if ( ! $compatible_php && ! $compatible_wp ) { - _e( 'This plugin does not work with your versions of WordPress and PHP.' ); + $incompatible_message .= __( 'This plugin does not work with your versions of WordPress and PHP.' ); if ( current_user_can( 'update_core' ) && current_user_can( 'update_php' ) ) { - printf( + $incompatible_message .= sprintf( /* translators: 1: URL to WordPress Updates screen, 2: URL to Update PHP page. */ ' ' . __( 'Please update WordPress, and then learn more about updating PHP.' ), self_admin_url( 'update-core.php' ), esc_url( wp_get_update_php_url() ) ); - wp_update_php_annotation( '

', '' ); + $incompatible_message .= wp_update_php_annotation( '

', '', false ); } elseif ( current_user_can( 'update_core' ) ) { - printf( + $incompatible_message .= sprintf( /* translators: %s: URL to WordPress Updates screen. */ ' ' . __( 'Please update WordPress.' ), self_admin_url( 'update-core.php' ) ); } elseif ( current_user_can( 'update_php' ) ) { - printf( + $incompatible_message .= sprintf( /* translators: %s: URL to Update PHP page. */ ' ' . __( 'Learn more about updating PHP.' ), esc_url( wp_get_update_php_url() ) ); - wp_update_php_annotation( '

', '' ); + $incompatible_message .= wp_update_php_annotation( '

', '', false ); } } elseif ( ! $compatible_wp ) { - _e( 'This plugin does not work with your version of WordPress.' ); + $incompatible_message .= __( 'This plugin does not work with your version of WordPress.' ); if ( current_user_can( 'update_core' ) ) { - printf( + $incompatible_message .= sprintf( /* translators: %s: URL to WordPress Updates screen. */ ' ' . __( 'Please update WordPress.' ), self_admin_url( 'update-core.php' ) ); } } elseif ( ! $compatible_php ) { - _e( 'This plugin does not work with your version of PHP.' ); + $incompatible_message .= __( 'This plugin does not work with your version of PHP.' ); if ( current_user_can( 'update_php' ) ) { - printf( + $incompatible_message .= sprintf( /* translators: %s: URL to Update PHP page. */ ' ' . __( 'Learn more about updating PHP.' ), esc_url( wp_get_update_php_url() ) ); - wp_update_php_annotation( '

', '' ); + $incompatible_message .= wp_update_php_annotation( '

', '', false ); } } - echo '

diff --git a/src/wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php b/src/wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php index 53d67459fe30f..716535160f12d 100644 --- a/src/wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php +++ b/src/wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php @@ -164,5 +164,4 @@ public function column_next_steps( $item ) { break; } } - } diff --git a/src/wp-admin/includes/class-wp-privacy-policy-content.php b/src/wp-admin/includes/class-wp-privacy-policy-content.php index 46b10e15f6b66..a64d043233356 100644 --- a/src/wp-admin/includes/class-wp-privacy-policy-content.php +++ b/src/wp-admin/includes/class-wp-privacy-policy-content.php @@ -130,31 +130,28 @@ public static function text_change_check() { * Outputs a warning when some privacy info has changed. * * @since 4.9.6 - * - * @global WP_Post $post Global post object. */ public static function policy_text_changed_notice() { - global $post; - $screen = get_current_screen()->id; if ( 'privacy' !== $screen ) { return; } - ?> -
-

- review the guide and update your privacy policy.' ), - esc_url( admin_url( 'privacy-policy-guide.php?tab=policyguide' ) ) - ); - ?> -

-
- review the guide and update your privacy policy.' ), + esc_url( admin_url( 'privacy-policy-guide.php?tab=policyguide' ) ) + ); + + wp_admin_notice( + $privacy_message, + array( + 'type' => 'warning', + 'additional_classes' => array( 'policy-text-updated' ), + 'dismissible' => true, + ) + ); } /** @@ -356,22 +353,20 @@ public static function notice( $post = null ) { 'after' ); } else { - ?> -
-

- %s %s', - $url, - $label, - /* translators: Hidden accessibility text. */ - __( '(opens in a new tab)' ) - ); - ?> -

-
- %s %s', + $url, + $label, + /* translators: Hidden accessibility text. */ + __( '(opens in a new tab)' ) + ); + wp_admin_notice( + $message, + array( + 'type' => 'warning', + 'additional_classes' => array( 'inline', 'wp-pp-notice' ), + ) + ); } } @@ -398,8 +393,14 @@ public static function privacy_policy_guide() { $badge_title = sprintf( __( 'Removed %s.' ), $date ); /* translators: %s: Date of plugin deactivation. */ - $removed = __( 'You deactivated this plugin on %s and may no longer need this policy.' ); - $removed = '

' . sprintf( $removed, $date ) . '

'; + $removed = sprintf( __( 'You deactivated this plugin on %s and may no longer need this policy.' ), $date ); + $removed = wp_get_admin_notice( + $removed, + array( + 'type' => 'info', + 'additional_classes' => array( 'inline' ), + ) + ); } elseif ( ! empty( $section['updated'] ) ) { $badge_class = ' blue'; $date = date_i18n( $date_format, $section['updated'] ); diff --git a/src/wp-admin/includes/class-wp-privacy-requests-table.php b/src/wp-admin/includes/class-wp-privacy-requests-table.php index cbc8c01892617..e7ffeebd20e93 100644 --- a/src/wp-admin/includes/class-wp-privacy-requests-table.php +++ b/src/wp-admin/includes/class-wp-privacy-requests-table.php @@ -239,9 +239,9 @@ public function process_bulk_action() { $resend = _wp_privacy_resend_request( $request_id ); if ( $resend && ! is_wp_error( $resend ) ) { - $count++; + ++$count; } else { - $failures++; + ++$failures; } } @@ -286,7 +286,7 @@ public function process_bulk_action() { $result = _wp_privacy_completed_request( $request_id ); if ( $result && ! is_wp_error( $result ) ) { - $count++; + ++$count; } } @@ -309,9 +309,9 @@ public function process_bulk_action() { case 'delete': foreach ( $request_ids as $request_id ) { if ( wp_delete_post( $request_id, true ) ) { - $count++; + ++$count; } else { - $failures++; + ++$failures; } } diff --git a/src/wp-admin/includes/class-wp-site-health-auto-updates.php b/src/wp-admin/includes/class-wp-site-health-auto-updates.php index d1655eb1d87d6..f8521ab2b0846 100644 --- a/src/wp-admin/includes/class-wp-site-health-auto-updates.php +++ b/src/wp-admin/includes/class-wp-site-health-auto-updates.php @@ -42,7 +42,7 @@ public function run_tests() { $tests = array_filter( $tests ); $tests = array_map( - static function( $test ) { + static function ( $test ) { $test = (object) $test; if ( empty( $test->severity ) ) { diff --git a/src/wp-admin/includes/class-wp-site-health.php b/src/wp-admin/includes/class-wp-site-health.php index a0e1de586bde2..6d87edee1b865 100644 --- a/src/wp-admin/includes/class-wp-site-health.php +++ b/src/wp-admin/includes/class-wp-site-health.php @@ -381,14 +381,14 @@ public function get_test_plugin_version() { // Loop over the available plugins and check their versions and active state. foreach ( $plugins as $plugin_path => $plugin ) { - $plugins_total++; + ++$plugins_total; if ( is_plugin_active( $plugin_path ) ) { - $plugins_active++; + ++$plugins_active; } if ( array_key_exists( $plugin_path, $plugin_updates ) ) { - $plugins_need_update++; + ++$plugins_need_update; } } @@ -543,21 +543,21 @@ public function get_test_theme_version() { } foreach ( $all_themes as $theme_slug => $theme ) { - $themes_total++; + ++$themes_total; if ( array_key_exists( $theme_slug, $theme_updates ) ) { - $themes_need_updates++; + ++$themes_need_updates; } } // If this is a child theme, increase the allowed theme count by one, to account for the parent. if ( is_child_theme() ) { - $allowed_theme_count++; + ++$allowed_theme_count; } // If there's a default theme installed and not in use, we count that as allowed as well. if ( $has_default_theme && ! $using_default_theme ) { - $allowed_theme_count++; + ++$allowed_theme_count; } if ( $themes_total > $allowed_theme_count ) { @@ -1356,13 +1356,8 @@ public function get_test_utf8mb4_support() { } } - if ( $wpdb->use_mysqli ) { - // phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysqli_get_client_info - $mysql_client_version = mysqli_get_client_info(); - } else { - // phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysql_get_client_info,PHPCompatibility.Extensions.RemovedExtensions.mysql_DeprecatedRemoved - $mysql_client_version = mysql_get_client_info(); - } + // phpcs:ignore WordPress.DB.RestrictedFunctions.mysql_mysqli_get_client_info + $mysql_client_version = mysqli_get_client_info(); /* * libmysql has supported utf8mb4 since 5.5.3, same as the MySQL server. @@ -3298,11 +3293,11 @@ public function wp_cron_scheduled_check() { foreach ( $results as $result ) { if ( 'critical' === $result['status'] ) { - $site_status['critical']++; + ++$site_status['critical']; } elseif ( 'recommended' === $result['status'] ) { - $site_status['recommended']++; + ++$site_status['recommended']; } else { - $site_status['good']++; + ++$site_status['good']; } } @@ -3638,5 +3633,4 @@ private function available_object_cache_services() { */ return apply_filters( 'site_status_available_object_cache_services', $services ); } - } diff --git a/src/wp-admin/includes/class-wp-terms-list-table.php b/src/wp-admin/includes/class-wp-terms-list-table.php index 3c277d6a61f7c..4160577591525 100644 --- a/src/wp-admin/includes/class-wp-terms-list-table.php +++ b/src/wp-admin/includes/class-wp-terms-list-table.php @@ -63,7 +63,6 @@ public function __construct( $args = array() ) { if ( empty( $post_type ) || ! in_array( $post_type, get_post_types( array( 'show_ui' => true ) ), true ) ) { $post_type = 'post'; } - } /** @@ -311,7 +310,7 @@ private function _rows( $taxonomy, $terms, &$children, $start, $per_page, &$coun while ( $my_parent = array_pop( $my_parents ) ) { echo "\t"; $this->single_row( $my_parent, $level - $num_parents ); - $num_parents--; + --$num_parents; } } @@ -426,12 +425,17 @@ public function column_name( $tag ) { $name ); - $output .= ''; + if ( $quick_edit_enabled ) { + $output .= ''; + } return $output; } @@ -465,32 +469,46 @@ protected function handle_row_actions( $item, $column_name, $primary ) { } // Restores the more descriptive, specific name for use within this method. - $tag = $item; + $tag = $item; + $taxonomy = $this->screen->taxonomy; $uri = wp_doing_ajax() ? wp_get_referer() : $_SERVER['REQUEST_URI']; - $edit_link = add_query_arg( - 'wp_http_referer', - urlencode( wp_unslash( $uri ) ), - get_edit_term_link( $tag, $taxonomy, $this->screen->post_type ) - ); - $actions = array(); if ( current_user_can( 'edit_term', $tag->term_id ) ) { $actions['edit'] = sprintf( '%s', - esc_url( $edit_link ), + esc_url( + add_query_arg( + 'wp_http_referer', + urlencode( wp_unslash( $uri ) ), + get_edit_term_link( $tag, $taxonomy, $this->screen->post_type ) + ) + ), /* translators: %s: Taxonomy term name. */ esc_attr( sprintf( __( 'Edit “%s”' ), $tag->name ) ), __( 'Edit' ) ); - $actions['inline hide-if-no-js'] = sprintf( - '', - /* translators: %s: Taxonomy term name. */ - esc_attr( sprintf( __( 'Quick edit “%s” inline' ), $tag->name ) ), - __( 'Quick Edit' ) - ); + + /** + * Filters whether Quick Edit should be enabled for the given taxonomy. + * + * @since 6.4.0 + * + * @param bool $enable Whether to enable the Quick Edit functionality. Default true. + * @param string $taxonomy Taxonomy name. + */ + $quick_edit_enabled = apply_filters( 'quick_edit_enabled_for_taxonomy', true, $taxonomy ); + + if ( $quick_edit_enabled ) { + $actions['inline hide-if-no-js'] = sprintf( + '', + /* translators: %s: Taxonomy term name. */ + esc_attr( sprintf( __( 'Quick edit “%s” inline' ), $tag->name ) ), + __( 'Quick Edit' ) + ); + } } if ( current_user_can( 'delete_term', $tag->term_id ) ) { @@ -627,6 +645,9 @@ public function column_links( $tag ) { * @return string */ public function column_default( $item, $column_name ) { + // Restores the more descriptive, specific name for use within this method. + $tag = $item; + /** * Filters the displayed columns in the terms list table. * @@ -644,7 +665,7 @@ public function column_default( $item, $column_name ) { * @param string $column_name Name of the column. * @param int $term_id Term ID. */ - return apply_filters( "manage_{$this->screen->taxonomy}_custom_column", '', $column_name, $item->term_id ); + return apply_filters( "manage_{$this->screen->taxonomy}_custom_column", '', $column_name, $tag->term_id ); } /** @@ -712,9 +733,16 @@ public function inline_edit() { - +

', + array( + 'type' => 'error', + 'additional_classes' => array( 'notice-alt', 'inline', 'hidden' ), + 'paragraph_wrap' => false, + ) + ); + ?>
diff --git a/src/wp-admin/includes/class-wp-upgrader.php b/src/wp-admin/includes/class-wp-upgrader.php index d3788c906cb12..1fbfa99e4cf45 100644 --- a/src/wp-admin/includes/class-wp-upgrader.php +++ b/src/wp-admin/includes/class-wp-upgrader.php @@ -185,10 +185,10 @@ protected function schedule_temp_backup_cleanup() { * @since 2.8.0 */ public function generic_strings() { - $this->strings['bad_request'] = __( 'Invalid data provided.' ); - $this->strings['fs_unavailable'] = __( 'Could not access filesystem.' ); - $this->strings['fs_error'] = __( 'Filesystem error.' ); - $this->strings['fs_no_root_dir'] = __( 'Unable to locate WordPress root directory.' ); + $this->strings['bad_request'] = __( 'Invalid data provided.' ); + $this->strings['fs_unavailable'] = __( 'Could not access filesystem.' ); + $this->strings['fs_error'] = __( 'Filesystem error.' ); + $this->strings['fs_no_root_dir'] = __( 'Unable to locate WordPress root directory.' ); /* translators: %s: Directory name. */ $this->strings['fs_no_content_dir'] = sprintf( __( 'Unable to locate WordPress content directory (%s).' ), 'wp-content' ); $this->strings['fs_no_plugins_dir'] = __( 'Unable to locate WordPress plugin directory.' ); @@ -1207,8 +1207,7 @@ public function delete_temp_backup() { if ( ! $wp_filesystem->delete( $temp_backup_dir, true ) ) { $errors->add( 'temp_backup_delete_failed', - sprintf( $this->strings['temp_backup_delete_failed'] ), - $args['slug'] + sprintf( $this->strings['temp_backup_delete_failed'], $args['slug'] ) ); continue; } diff --git a/src/wp-admin/includes/class-wp-users-list-table.php b/src/wp-admin/includes/class-wp-users-list-table.php index 43abd608aeadc..f0dc57eb606b4 100644 --- a/src/wp-admin/includes/class-wp-users-list-table.php +++ b/src/wp-admin/includes/class-wp-users-list-table.php @@ -680,5 +680,4 @@ protected function get_role_list( $user_object ) { */ return apply_filters( 'get_role_list', $role_list, $user_object ); } - } diff --git a/src/wp-admin/includes/dashboard.php b/src/wp-admin/includes/dashboard.php index f0d0da1779b9e..f74b408881856 100644 --- a/src/wp-admin/includes/dashboard.php +++ b/src/wp-admin/includes/dashboard.php @@ -284,7 +284,6 @@ function wp_dashboard() { " method="post" id="quick-press" class="initial-form hide-if-no-js"> - -
- + array( 'error' ), + ) + ); + } + ?>
'; require_once ABSPATH . 'wp-admin/admin-footer.php'; die(); @@ -142,7 +151,13 @@ function network_step1( $errors = false ) { $hostname = get_clean_basedomain(); $has_ports = strstr( $hostname, ':' ); if ( ( false !== $has_ports && ! in_array( $has_ports, array( ':80', ':443' ), true ) ) ) { - echo '

' . __( 'Error:' ) . ' ' . __( 'You cannot install a network of sites with your server address.' ) . '

'; + wp_admin_notice( + '' . __( 'Error:' ) . ' ' . __( 'You cannot install a network of sites with your server address.' ), + array( + 'additional_classes' => array( 'error' ), + ) + ); + echo '

' . sprintf( /* translators: %s: Port number. */ __( 'You cannot use port numbers such as %s.' ), @@ -160,11 +175,17 @@ function network_step1( $errors = false ) { $error_codes = array(); if ( is_wp_error( $errors ) ) { - echo '

' . __( 'Error: The network could not be created.' ) . '

'; + $network_created_error_message = '

' . __( 'Error: The network could not be created.' ) . '

'; foreach ( $errors->get_error_messages() as $error ) { - echo "

$error

"; + $network_created_error_message .= "

$error

"; } - echo '
'; + wp_admin_notice( + $network_created_error_message, + array( + 'additional_classes' => array( 'error' ), + 'paragraph_wrap' => false, + ) + ); $error_codes = $errors->get_error_codes(); } @@ -195,33 +216,39 @@ function network_step1( $errors = false ) { $subdomain_install = false; $got_mod_rewrite = got_mod_rewrite(); if ( $got_mod_rewrite ) { // Dangerous assumptions. - echo '

' . __( 'Note:' ) . ' '; - printf( + $message_class = 'updated'; + $message = '

' . __( 'Warning:' ) . ' '; + $message .= '

' . sprintf( /* translators: %s: mod_rewrite */ __( 'Please make sure the Apache %s module is installed as it will be used at the end of this installation.' ), 'mod_rewrite' - ); - echo '

'; + ) . '

'; } elseif ( $is_apache ) { - echo '

' . __( 'Warning:' ) . ' '; - printf( + $message_class = 'error'; + $message = '

' . __( 'Warning:' ) . ' '; + $message .= sprintf( /* translators: %s: mod_rewrite */ __( 'It looks like the Apache %s module is not installed.' ), 'mod_rewrite' - ); - echo '

'; + ) . '

'; } if ( $got_mod_rewrite || $is_apache ) { // Protect against mod_rewrite mimicry (but ! Apache). - echo '

'; - printf( + $message .= '

' . sprintf( /* translators: 1: mod_rewrite, 2: mod_rewrite documentation URL, 3: Google search for mod_rewrite. */ __( 'If %1$s is disabled, ask your administrator to enable that module, or look at the Apache documentation or elsewhere for help setting it up.' ), 'mod_rewrite', 'https://httpd.apache.org/docs/mod/mod_rewrite.html', 'https://www.google.com/search?q=apache+mod_rewrite' + ) . '

'; + + wp_admin_notice( + $message, + array( + 'additional_classes' => array( $message_class, 'inline' ), + 'paragraph_wrap' => false, + ) ); - echo '

'; } } @@ -263,7 +290,14 @@ function network_step1( $errors = false ) { endif; if ( WP_CONTENT_DIR !== ABSPATH . 'wp-content' && ( allow_subdirectory_install() || ! allow_subdomain_install() ) ) { - echo '

' . __( 'Warning:' ) . ' ' . __( 'Subdirectory networks may not be fully compatible with custom wp-content directories.' ) . '

'; + $subdirectory_warning_message = '' . __( 'Warning:' ) . ' '; + $subdirectory_warning_message .= __( 'Subdirectory networks may not be fully compatible with custom wp-content directories.' ); + wp_admin_notice( + $subdirectory_warning_message, + array( + 'additional_classes' => array( 'error', 'inline' ), + ) + ); } $is_www = str_starts_with( $hostname, 'www.' ); @@ -409,7 +443,12 @@ function network_step2( $errors = false ) { // Wildcard DNS message. if ( is_wp_error( $errors ) ) { - echo '
' . $errors->get_error_message() . '
'; + wp_admin_notice( + $errors->get_error_message(), + array( + 'additional_classes' => array( 'error' ), + ) + ); } if ( $_POST ) { @@ -426,8 +465,14 @@ function network_step2( $errors = false ) { get_var( "SELECT meta_value FROM $wpdb->sitemeta WHERE site_id = 1 AND meta_key = 'subdomain_install'" ); + + wp_admin_notice( + '' . __( 'Warning:' ) . ' ' . __( 'An existing WordPress network was detected.' ), + array( + 'additional_classes' => array( 'error' ), + ) + ); ?> -

@@ -817,37 +817,54 @@ function install_plugin_information() { $tested_wp = ( empty( $api->tested ) || version_compare( get_bloginfo( 'version' ), $api->tested, '<=' ) ); if ( ! $compatible_php ) { - echo '

'; - _e( 'Error: This plugin requires a newer version of PHP.' ); + $compatible_php_notice_message = '

'; + $compatible_php_notice_message .= __( 'Error: This plugin requires a newer version of PHP.' ); + if ( current_user_can( 'update_php' ) ) { - printf( + $compatible_php_notice_message .= sprintf( /* translators: %s: URL to Update PHP page. */ ' ' . __( 'Click here to learn more about updating PHP.' ), esc_url( wp_get_update_php_url() ) - ); - - wp_update_php_annotation( '

', '' ); + ) . wp_update_php_annotation( '

', '', false ); } else { - echo '

'; + $compatible_php_notice_message .= '

'; } - echo '
'; + + wp_admin_notice( + $compatible_php_notice_message, + array( + 'type' => 'error', + 'additional_classes' => array( 'notice-alt' ), + 'paragraph_wrap' => false, + ) + ); } if ( ! $tested_wp ) { - echo '

'; - _e( 'Warning: This plugin has not been tested with your current version of WordPress.' ); - echo '

'; + wp_admin_notice( + __( 'Warning: This plugin has not been tested with your current version of WordPress.' ), + array( + 'type' => 'warning', + 'additional_classes' => array( 'notice-alt' ), + ) + ); } elseif ( ! $compatible_wp ) { - echo '

'; - _e( 'Error: This plugin requires a newer version of WordPress.' ); + $compatible_wp_notice_message = __( 'Error: This plugin requires a newer version of WordPress.' ); if ( current_user_can( 'update_core' ) ) { - printf( + $compatible_wp_notice_message .= sprintf( /* translators: %s: URL to WordPress Updates screen. */ ' ' . __( 'Click here to update WordPress.' ), esc_url( self_admin_url( 'update-core.php' ) ) ); } - echo '

'; + + wp_admin_notice( + $compatible_wp_notice_message, + array( + 'type' => 'error', + 'additional_classes' => array( 'notice-alt' ), + ) + ); } foreach ( (array) $api->sections as $section_name => $content ) { diff --git a/src/wp-admin/includes/plugin.php b/src/wp-admin/includes/plugin.php index d5e62ed06ff37..f55bbd80eb5df 100644 --- a/src/wp-admin/includes/plugin.php +++ b/src/wp-admin/includes/plugin.php @@ -2497,13 +2497,17 @@ function paused_plugins_notice() { return; } - printf( - '

%s
%s

%s

', + $message = sprintf( + '%s
%s

%s', __( 'One or more plugins failed to load properly.' ), __( 'You can find more details and make changes on the Plugins screen.' ), esc_url( admin_url( 'plugins.php?plugin_status=paused' ) ), __( 'Go to the Plugins screen' ) ); + wp_admin_notice( + $message, + array( 'type' => 'error' ) + ); } /** @@ -2571,8 +2575,8 @@ function deactivated_plugins_notice() { ); } - printf( - '

%s
%s

%s

', + $message = sprintf( + '%s
%s

%s', sprintf( /* translators: %s: Name of deactivated plugin. */ __( '%s plugin deactivated during WordPress upgrade.' ), @@ -2582,6 +2586,7 @@ function deactivated_plugins_notice() { esc_url( admin_url( 'plugins.php?plugin_status=inactive' ) ), __( 'Go to the Plugins screen' ) ); + wp_admin_notice( $message, array( 'type' => 'warning' ) ); } // Empty the options. diff --git a/src/wp-admin/includes/post.php b/src/wp-admin/includes/post.php index ed73b8ff5fd14..3709ded67fdd5 100644 --- a/src/wp-admin/includes/post.php +++ b/src/wp-admin/includes/post.php @@ -2207,6 +2207,7 @@ function taxonomy_meta_box_sanitize_cb_input( $taxonomy, $terms ) { * * @since 5.0.0 * @since 6.3.0 Added `selectors` field. + * @since 6.4.0 Added `block_hooks` field. * * @return array An associative array of registered block data. */ @@ -2221,6 +2222,7 @@ function get_block_editor_server_block_settings() { 'attributes' => 'attributes', 'provides_context' => 'providesContext', 'uses_context' => 'usesContext', + 'block_hooks' => 'blockHooks', 'selectors' => 'selectors', 'supports' => 'supports', 'category' => 'category', diff --git a/src/wp-admin/includes/revision.php b/src/wp-admin/includes/revision.php index 530e2fdea252d..8ed45fd19304e 100644 --- a/src/wp-admin/includes/revision.php +++ b/src/wp-admin/includes/revision.php @@ -161,7 +161,6 @@ function wp_get_revision_ui_diff( $post, $compare_from, $compare_to ) { * @param WP_Post $compare_to The revision post to compare to. */ return apply_filters( 'wp_get_revision_ui_diff', $return, $compare_from, $compare_to ); - } /** diff --git a/src/wp-admin/includes/template.php b/src/wp-admin/includes/template.php index 2394fbb6f2084..a7255bb7ee4e8 100644 --- a/src/wp-admin/includes/template.php +++ b/src/wp-admin/includes/template.php @@ -461,7 +461,7 @@ function wp_comment_reply( $position = 1, $checkbox = false, $mode = 'single', $ - +

@@ -512,9 +512,16 @@ function wp_comment_reply( $position = 1, $checkbox = false, $mode = 'single', $

- +

', + array( + 'type' => 'error', + 'additional_classes' => array( 'notice-alt', 'inline', 'hidden' ), + 'paragraph_wrap' => false, + ) + ); + ?>
@@ -1006,10 +1013,15 @@ function wp_import_upload_form( $action ) { $size = size_format( $bytes ); $upload_dir = wp_upload_dir(); if ( ! empty( $upload_dir['error'] ) ) : - ?> -

-

- ' . __( 'Before you can upload your import file, you will need to fix the following error:' ) . '

'; + $upload_directory_error .= '

' . $upload_dir['error'] . '

'; + wp_admin_notice( + $upload_directory_error, + array( + 'additonal_classes' => array( 'error' ), + 'paragraph_wrap' => false, + ) + ); else : ?> @@ -1355,7 +1367,7 @@ function do_meta_boxes( $screen, $context, $data_object ) { } } - $i++; + ++$i; // get_hidden_meta_boxes() doesn't apply in the block editor. $hidden_class = ( ! $screen->is_block_editor() && in_array( $box['id'], $hidden, true ) ) ? ' hide-if-js' : ''; echo '
' . "\n"; @@ -1427,16 +1439,17 @@ function do_meta_boxes( $screen, $context, $data_object ) { if ( WP_DEBUG && ! $block_compatible && 'edit' === $screen->parent_base && ! $screen->is_block_editor() && ! isset( $_GET['meta-box-loader'] ) ) { $plugin = _get_plugin_from_callback( $box['callback'] ); if ( $plugin ) { - ?> -
-

- {$plugin['Name']}" ); - ?> -

-
- {$plugin['Name']}" + ); + wp_admin_notice( + $meta_box_not_compatible_message, + array( + 'additional_classes' => array( 'error', 'inline' ), + ) + ); } } @@ -1451,7 +1464,6 @@ function do_meta_boxes( $screen, $context, $data_object ) { echo '
'; return $i; - } /** @@ -1551,7 +1563,7 @@ function do_accordion_sections( $screen, $context, $data_object ) { continue; } - $i++; + ++$i; $hidden_class = in_array( $box['id'], $hidden, true ) ? 'hide-if-js' : ''; $open_class = ''; @@ -2689,17 +2701,22 @@ function convert_to_screen( $hook_name ) { * @access private */ function _local_storage_notice() { - ?> - - '; + $local_storage_message .= __( 'The backup of this post in your browser is different from the version below.' ); + $local_storage_message .= '

'; + $local_storage_message .= '

'; + $local_storage_message .= __( 'This will replace the current editor content with the last backup version. You can use undo and redo in the editor to get the old content back or to return to the restored version.' ); + $local_storage_message .= '

'; + + wp_admin_notice( + $local_storage_message, + array( + 'id' => 'local-storage-notice', + 'additional_classes' => array( 'hidden' ), + 'dismissible' => true, + 'paragraph_wrap' => false, + ) + ); } /** @@ -2777,9 +2794,12 @@ function wp_star_rating( $args = array() ) { * @since 4.2.0 */ function _wp_posts_page_notice() { - printf( - '

%s

', - __( 'You are currently editing the page that shows your latest posts.' ) + wp_admin_notice( + __( 'You are currently editing the page that shows your latest posts.' ), + array( + 'type' => 'warning', + 'additional_classes' => array( 'inline' ), + ) ); } diff --git a/src/wp-admin/includes/theme-install.php b/src/wp-admin/includes/theme-install.php index 94b591eedf75f..949f0d54a171a 100644 --- a/src/wp-admin/includes/theme-install.php +++ b/src/wp-admin/includes/theme-install.php @@ -243,7 +243,6 @@ function display_themes() { } $wp_list_table->prepare_items(); $wp_list_table->display(); - } /** diff --git a/src/wp-admin/includes/theme.php b/src/wp-admin/includes/theme.php index d98cb5de33dd3..b5579052a14c9 100644 --- a/src/wp-admin/includes/theme.php +++ b/src/wp-admin/includes/theme.php @@ -156,7 +156,7 @@ function get_page_templates( $post = null, $post_type = 'page' ) { * @return string */ function _get_template_edit_filename( $fullpath, $containingfolder ) { - return str_replace( dirname( dirname( $containingfolder ) ), '', $fullpath ); + return str_replace( dirname( $containingfolder, 2 ), '', $fullpath ); } /** @@ -1058,12 +1058,7 @@ function customize_themes_print_templates() { <# if ( data.active ) { #> <# } else if ( 'installed' === data.type ) { #> - - <# if ( data.actions && data.actions['delete'] ) { #> - - <# } #> - - +
<# if ( data.blockTheme ) { #> <# } #> <# } #> +
+ + <# if ( data.actions && data.actions['delete'] ) { #> + + <# } #> + <# } else { #> <# if ( data.compatibleWP && data.compatiblePHP ) { #> @@ -1166,11 +1167,14 @@ function resume_theme( $theme, $redirect = '' ) { * creating a fatal error. */ if ( ! empty( $redirect ) ) { + $stylesheet_path = get_stylesheet_directory(); + $template_path = get_template_directory(); + $functions_path = ''; - if ( str_contains( STYLESHEETPATH, $extension ) ) { - $functions_path = STYLESHEETPATH . '/functions.php'; - } elseif ( str_contains( TEMPLATEPATH, $extension ) ) { - $functions_path = TEMPLATEPATH . '/functions.php'; + if ( str_contains( $stylesheet_path, $extension ) ) { + $functions_path = $stylesheet_path . '/functions.php'; + } elseif ( str_contains( $template_path, $extension ) ) { + $functions_path = $template_path . '/functions.php'; } if ( ! empty( $functions_path ) ) { @@ -1224,11 +1228,18 @@ function paused_themes_notice() { return; } - printf( - '

%s
%s

%s

', + $message = sprintf( + '

%s
%s

%s

', __( 'One or more themes failed to load properly.' ), __( 'You can find more details and make changes on the Themes screen.' ), esc_url( admin_url( 'themes.php' ) ), __( 'Go to the Themes screen' ) ); + wp_admin_notice( + $message, + array( + 'type' => 'error', + 'paragraph_wrap' => false, + ) + ); } diff --git a/src/wp-admin/includes/update-core.php b/src/wp-admin/includes/update-core.php index 6085b02c8fdc4..fdb522c889609 100644 --- a/src/wp-admin/includes/update-core.php +++ b/src/wp-admin/includes/update-core.php @@ -1805,7 +1805,7 @@ function _upgrade_422_find_genericons_files_in_folder( $directory ) { $dirs = glob( $directory . '*', GLOB_ONLYDIR ); $dirs = array_filter( $dirs, - static function( $dir ) { + static function ( $dir ) { /* * Skip any node_modules directories. * diff --git a/src/wp-admin/includes/update.php b/src/wp-admin/includes/update.php index 78ca061f2e072..2d3ccfbbb3e0f 100644 --- a/src/wp-admin/includes/update.php +++ b/src/wp-admin/includes/update.php @@ -342,7 +342,14 @@ function update_nag() { ); } - echo "
$msg
"; + wp_admin_notice( + $msg, + array( + 'type' => 'warning', + 'additonal_classes' => array( 'update-nag', 'inline' ), + 'paragraph_wrap' => false, + ) + ); } /** @@ -884,7 +891,14 @@ function maintenance_nag() { $msg = __( 'An automated WordPress update has failed to complete! Please notify the site administrator.' ); } - echo "
$msg
"; + wp_admin_notice( + $msg, + array( + 'type' => 'warning', + 'additional_classes' => array( 'update-nag', 'inline' ), + 'paragraph_wrap' => false, + ) + ); } /** @@ -1049,19 +1063,12 @@ function wp_recovery_mode_nag() { $url = add_query_arg( 'action', WP_Recovery_Mode::EXIT_ACTION, $url ); $url = wp_nonce_url( $url, WP_Recovery_Mode::EXIT_ACTION ); - ?> -
-

- Exit Recovery Mode' ), - esc_url( $url ) - ); - ?> -

-
- Exit Recovery Mode' ), + esc_url( $url ) + ); + wp_admin_notice( $message, array( 'type' => 'info' ) ); } /** diff --git a/src/wp-admin/includes/upgrade.php b/src/wp-admin/includes/upgrade.php index 23653d1c2b46c..bf0b12405da5c 100644 --- a/src/wp-admin/includes/upgrade.php +++ b/src/wp-admin/includes/upgrade.php @@ -625,10 +625,9 @@ function wp_new_blog_notification( $blog_title, $blog_url, $user_id, $password ) * * @global int $wp_current_db_version The old (current) database version. * @global int $wp_db_version The new database version. - * @global wpdb $wpdb WordPress database abstraction object. */ function wp_upgrade() { - global $wp_current_db_version, $wp_db_version, $wpdb; + global $wp_current_db_version, $wp_db_version; $wp_current_db_version = __get_option( 'db_version' ); @@ -996,7 +995,6 @@ function upgrade_110() { $wpdb->query( "UPDATE $wpdb->comments SET comment_date_gmt = DATE_ADD(comment_date, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)" ); $wpdb->query( "UPDATE $wpdb->users SET user_registered = DATE_ADD(user_registered, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)" ); } - } /** @@ -1294,7 +1292,7 @@ function upgrade_230() { $num = 2; do { $alt_slug = $slug . "-$num"; - $num++; + ++$num; $slug_check = $wpdb->get_var( $wpdb->prepare( "SELECT slug FROM $wpdb->terms WHERE slug = %s", $alt_slug ) ); } while ( $slug_check ); @@ -1546,7 +1544,6 @@ function upgrade_250() { if ( $wp_current_db_version < 6689 ) { populate_roles_250(); } - } /** @@ -1705,7 +1702,6 @@ function upgrade_300() { ) ); } - } /** diff --git a/src/wp-admin/includes/user.php b/src/wp-admin/includes/user.php index 1d2d919348c79..e19727401d89d 100644 --- a/src/wp-admin/includes/user.php +++ b/src/wp-admin/includes/user.php @@ -535,28 +535,30 @@ function default_password_nag() { if ( 'profile.php' === $pagenow || ! get_user_option( 'default_password_nag' ) ) { return; } - ?> -
-

- - -

-

- %2$s | ', - esc_url( get_edit_profile_url() . '#password' ), - __( 'Yes, take me to my profile page' ) - ); - printf( - '%2$s', - '?default_password_nag=0', - __( 'No thanks, do not remind me again' ) - ); - ?> -

-
- %1$s %2$s

', + __( 'Notice:' ), + __( 'You are using the auto-generated password for your account. Would you like to change it?' ) + ); + $default_password_nag_message .= sprintf( + '

%2$s | ', + esc_url( get_edit_profile_url() . '#password' ), + __( 'Yes, take me to my profile page' ) + ); + $default_password_nag_message .= sprintf( + '%2$s

', + '?default_password_nag=0', + __( 'No thanks, do not remind me again' ) + ); + + wp_admin_notice( + $default_password_nag_message, + array( + 'additional_classes' => array( 'error', 'default-password-nag' ), + 'paragraph_wrap' => false, + ) + ); } /** diff --git a/src/wp-admin/includes/widgets.php b/src/wp-admin/includes/widgets.php index 93979b6a25de5..682f596d941f7 100644 --- a/src/wp-admin/includes/widgets.php +++ b/src/wp-admin/includes/widgets.php @@ -134,7 +134,7 @@ function wp_list_widget_controls( $sidebar, $sidebar_name = '' ) { function wp_list_widget_controls_dynamic_sidebar( $params ) { global $wp_registered_widgets; static $i = 0; - $i++; + ++$i; $widget_id = $params[0]['widget_id']; $id = isset( $params[0]['_temp_id'] ) ? $params[0]['_temp_id'] : $widget_id; @@ -168,7 +168,7 @@ function next_widget_id_number( $id_base ) { $number = max( $number, $matches[1] ); } } - $number++; + ++$number; return $number; } diff --git a/src/wp-admin/link-manager.php b/src/wp-admin/link-manager.php index 5f56ac7983bd9..4ae6c4bcc9eb8 100644 --- a/src/wp-admin/link-manager.php +++ b/src/wp-admin/link-manager.php @@ -101,7 +101,7 @@ ?> - +

'; $deleted = (int) $_REQUEST['deleted']; /* translators: %s: Number of links. */ - printf( _n( '%s link deleted.', '%s links deleted.', $deleted ), $deleted ); - echo '

'; + $deleted_message = sprintf( _n( '%s link deleted.', '%s links deleted.', $deleted ), $deleted ); + wp_admin_notice( + $deleted_message, + array( + 'id' => 'message', + 'additional_classes' => array( 'updated' ), + 'dismissible' => true, + ) + ); $_SERVER['REQUEST_URI'] = remove_query_arg( array( 'deleted' ), $_SERVER['REQUEST_URI'] ); } ?> diff --git a/src/wp-admin/link.php b/src/wp-admin/link.php index 084b1d7566ec1..f07cc5897d3a3 100644 --- a/src/wp-admin/link.php +++ b/src/wp-admin/link.php @@ -45,7 +45,7 @@ $link_id = (int) $link_id; if ( wp_delete_link( $link_id ) ) { - $deleted++; + ++$deleted; } } diff --git a/src/wp-admin/maint/repair.php b/src/wp-admin/maint/repair.php index 554e466d76f3e..1c0f6ffa985eb 100644 --- a/src/wp-admin/maint/repair.php +++ b/src/wp-admin/maint/repair.php @@ -7,7 +7,7 @@ */ define( 'WP_REPAIRING', true ); -require_once dirname( dirname( __DIR__ ) ) . '/wp-load.php'; +require_once dirname( __DIR__, 2 ) . '/wp-load.php'; header( 'Content-Type: text/html; charset=utf-8' ); ?> diff --git a/src/wp-admin/media-upload.php b/src/wp-admin/media-upload.php index 7f943a829f564..015bc9d63de69 100644 --- a/src/wp-admin/media-upload.php +++ b/src/wp-admin/media-upload.php @@ -116,4 +116,3 @@ */ do_action( "media_upload_{$tab}" ); } - diff --git a/src/wp-admin/menu.php b/src/wp-admin/menu.php index 17317f9daa24b..567af4ae40bf2 100644 --- a/src/wp-admin/menu.php +++ b/src/wp-admin/menu.php @@ -63,10 +63,9 @@ // $menu[5] = Posts. -$menu[10] = array( __( 'Media' ), 'upload_files', 'upload.php', '', 'menu-top menu-icon-media', 'menu-media', 'dashicons-admin-media' ); - $submenu['upload.php'][5] = array( __( 'Library' ), 'upload_files', 'upload.php' ); - /* translators: Add new file. */ - $submenu['upload.php'][10] = array( _x( 'Add New', 'file' ), 'upload_files', 'media-new.php' ); +$menu[10] = array( __( 'Media' ), 'upload_files', 'upload.php', '', 'menu-top menu-icon-media', 'menu-media', 'dashicons-admin-media' ); + $submenu['upload.php'][5] = array( __( 'Library' ), 'upload_files', 'upload.php' ); + $submenu['upload.php'][10] = array( __( 'Add New Media File' ), 'upload_files', 'media-new.php' ); $i = 15; foreach ( get_taxonomies_for_attachments( 'objects' ) as $tax ) { if ( ! $tax->show_ui || ! $tax->show_in_menu ) { @@ -77,10 +76,9 @@ } unset( $tax, $i ); -$menu[15] = array( __( 'Links' ), 'manage_links', 'link-manager.php', '', 'menu-top menu-icon-links', 'menu-links', 'dashicons-admin-links' ); - $submenu['link-manager.php'][5] = array( _x( 'All Links', 'admin menu' ), 'manage_links', 'link-manager.php' ); - /* translators: Add new links. */ - $submenu['link-manager.php'][10] = array( _x( 'Add New', 'link' ), 'manage_links', 'link-add.php' ); +$menu[15] = array( __( 'Links' ), 'manage_links', 'link-manager.php', '', 'menu-top menu-icon-links', 'menu-links', 'dashicons-admin-links' ); + $submenu['link-manager.php'][5] = array( _x( 'All Links', 'admin menu' ), 'manage_links', 'link-manager.php' ); + $submenu['link-manager.php'][10] = array( __( 'Add New Link' ), 'manage_links', 'link-add.php' ); $submenu['link-manager.php'][15] = array( __( 'Link Categories' ), 'manage_categories', 'edit-tags.php?taxonomy=link_category' ); // $menu[20] = Pages. @@ -163,7 +161,7 @@ */ $core_menu_positions = array( 59, 60, 65, 70, 75, 80, 85, 99 ); while ( isset( $menu[ $ptype_menu_position ] ) || in_array( $ptype_menu_position, $core_menu_positions, true ) ) { - $ptype_menu_position++; + ++$ptype_menu_position; } $menu[ $ptype_menu_position ] = array( esc_attr( $ptype_obj->labels->menu_name ), $ptype_obj->cap->edit_posts, $ptype_file, '', $menu_class, $ptype_menu_id, $menu_icon ); @@ -304,8 +302,7 @@ function _add_plugin_file_editor_to_tools() { $submenu['plugins.php'][5] = array( __( 'Installed Plugins' ), 'activate_plugins', 'plugins.php' ); if ( ! is_multisite() ) { - /* translators: Add new plugin. */ - $submenu['plugins.php'][10] = array( _x( 'Add New', 'plugin' ), 'install_plugins', 'plugin-install.php' ); + $submenu['plugins.php'][10] = array( __( 'Add New Plugin' ), 'install_plugins', 'plugin-install.php' ); if ( wp_is_block_theme() ) { // Place the menu item below the Theme File Editor menu item. add_action( 'admin_menu', '_add_plugin_file_editor_to_tools', 101 ); @@ -326,9 +323,9 @@ function _add_plugin_file_editor_to_tools() { $_wp_real_parent_file['profile.php'] = 'users.php'; // Back-compat for plugins adding submenus to profile.php. $submenu['users.php'][5] = array( __( 'All Users' ), 'list_users', 'users.php' ); if ( current_user_can( 'create_users' ) ) { - $submenu['users.php'][10] = array( _x( 'Add New', 'user' ), 'create_users', 'user-new.php' ); + $submenu['users.php'][10] = array( __( 'Add New User' ), 'create_users', 'user-new.php' ); } elseif ( is_multisite() ) { - $submenu['users.php'][10] = array( _x( 'Add New', 'user' ), 'promote_users', 'user-new.php' ); + $submenu['users.php'][10] = array( __( 'Add New User' ), 'promote_users', 'user-new.php' ); } $submenu['users.php'][15] = array( __( 'Profile' ), 'read', 'profile.php' ); diff --git a/src/wp-admin/my-sites.php b/src/wp-admin/my-sites.php index 51dc1bdd264b0..be7f63bb76391 100644 --- a/src/wp-admin/my-sites.php +++ b/src/wp-admin/my-sites.php @@ -78,7 +78,7 @@ if ( in_array( get_site_option( 'registration' ), array( 'all', 'blog' ), true ) ) { /** This filter is documented in wp-login.php */ $sign_up_url = apply_filters( 'wp_signup_location', network_site_url( 'wp-signup.php' ) ); - printf( ' %s', esc_url( $sign_up_url ), esc_html_x( 'Add New', 'site' ) ); + printf( ' %s', esc_url( $sign_up_url ), esc_html__( 'Add New Site' ) ); } if ( empty( $blogs ) ) : diff --git a/src/wp-admin/nav-menus.php b/src/wp-admin/nav-menus.php index 1758bfe221e1c..93b3c5e635182 100644 --- a/src/wp-admin/nav-menus.php +++ b/src/wp-admin/nav-menus.php @@ -281,7 +281,14 @@ check_admin_referer( 'delete-menu_item_' . $menu_item_id ); if ( is_nav_menu_item( $menu_item_id ) && wp_delete_post( $menu_item_id, true ) ) { - $messages[] = '

' . __( 'The menu item has been successfully deleted.' ) . '

'; + $messages[] = wp_get_admin_notice( + __( 'The menu item has been successfully deleted.' ), + array( + 'id' => 'message', + 'additional_classes' => array( 'updated' ), + 'dismissible' => true, + ) + ); } break; @@ -302,9 +309,23 @@ } if ( is_wp_error( $deletion ) ) { - $messages[] = '

' . $deletion->get_error_message() . '

'; + $messages[] = wp_get_admin_notice( + $deletion->get_error_message(), + array( + 'id' => 'message', + 'additional_classes' => array( 'error' ), + 'dismissible' => true, + ) + ); } else { - $messages[] = '

' . __( 'The menu has been successfully deleted.' ) . '

'; + $messages[] = wp_get_admin_notice( + __( 'The menu has been successfully deleted.' ), + array( + 'id' => 'message', + 'additional_classes' => array( 'updated' ), + 'dismissible' => true, + ) + ); } break; @@ -320,13 +341,27 @@ $deletion = wp_delete_nav_menu( $menu_id_to_delete ); if ( is_wp_error( $deletion ) ) { - $messages[] = '

' . $deletion->get_error_message() . '

'; + $messages[] = wp_get_admin_notice( + $deletion->get_error_message(), + array( + 'id' => 'message', + 'additional_classes' => array( 'error' ), + 'dismissible' => true, + ) + ); $deletion_error = true; } } if ( empty( $deletion_error ) ) { - $messages[] = '

' . __( 'Selected menus have been successfully deleted.' ) . '

'; + $messages[] = wp_get_admin_notice( + __( 'Selected menus have been successfully deleted.' ), + array( + 'id' => 'message', + 'additional_classes' => array( 'updated' ), + 'dismissible' => true, + ) + ); } break; @@ -349,7 +384,14 @@ $_nav_menu_selected_id = wp_update_nav_menu_object( 0, array( 'menu-name' => $new_menu_title ) ); if ( is_wp_error( $_nav_menu_selected_id ) ) { - $messages[] = '

' . $_nav_menu_selected_id->get_error_message() . '

'; + $messages[] = wp_get_admin_notice( + $_nav_menu_selected_id->get_error_message(), + array( + 'id' => 'message', + 'additional_classes' => array( 'error' ), + 'dismissible' => true, + ) + ); } else { $_menu_object = wp_get_nav_menu_object( $_nav_menu_selected_id ); $nav_menu_selected_id = $_nav_menu_selected_id; @@ -400,7 +442,14 @@ exit; } } else { - $messages[] = '

' . __( 'Please enter a valid menu name.' ) . '

'; + $messages[] = wp_get_admin_notice( + __( 'Please enter a valid menu name.' ), + array( + 'id' => 'message', + 'additional_classes' => array( 'error' ), + 'dismissible' => true, + ) + ); } // Update existing menu. @@ -422,7 +471,14 @@ $menu_title = trim( esc_html( $_POST['menu-name'] ) ); if ( ! $menu_title ) { - $messages[] = '

' . __( 'Please enter a valid menu name.' ) . '

'; + $messages[] = wp_get_admin_notice( + __( 'Please enter a valid menu name.' ), + array( + 'id' => 'message', + 'additional_classes' => array( 'error' ), + 'dismissible' => true, + ) + ); $menu_title = $_menu_object->name; } @@ -431,7 +487,14 @@ if ( is_wp_error( $_nav_menu_selected_id ) ) { $_menu_object = $_nav_menu_selected_id; - $messages[] = '

' . $_nav_menu_selected_id->get_error_message() . '

'; + $messages[] = wp_get_admin_notice( + $_nav_menu_selected_id->get_error_message(), + array( + 'id' => 'message', + 'additional_classes' => array( 'error' ), + 'dismissible' => true, + ) + ); } else { $_menu_object = wp_get_nav_menu_object( $_nav_menu_selected_id ); $nav_menu_selected_title = $_menu_object->name; @@ -468,7 +531,14 @@ // Set menu locations. set_theme_mod( 'nav_menu_locations', $menu_locations ); - $messages[] = '

' . __( 'Menu locations updated.' ) . '

'; + $messages[] = wp_get_admin_notice( + __( 'Menu locations updated.' ), + array( + 'id' => 'message', + 'additional_classes' => array( 'updated' ), + 'dismissible' => true, + ) + ); } break; @@ -614,11 +684,19 @@ function wp_nav_menu_max_depth( $classes ) { wp_initial_nav_menu_meta_boxes(); if ( ! current_theme_supports( 'menus' ) && ! $num_locations ) { - $messages[] = '

' . sprintf( + $message_no_theme_support = sprintf( /* translators: %s: URL to Widgets screen. */ __( 'Your theme does not natively support menus, but you can use them in sidebars by adding a “Navigation Menu” widget on the Widgets screen.' ), admin_url( 'widgets.php' ) - ) . '

'; + ); + $messages[] = wp_get_admin_notice( + $message_no_theme_support, + array( + 'id' => 'message', + 'additional_classes' => array( 'updated' ), + 'dismissible' => true, + ) + ); } if ( ! $locations_screen ) : // Main tab. @@ -1149,7 +1227,10 @@ function wp_nav_menu_max_depth( $classes ) { diff --git a/src/wp-admin/network/menu.php b/src/wp-admin/network/menu.php index 99cfb20e2573f..73cc86b23484d 100644 --- a/src/wp-admin/network/menu.php +++ b/src/wp-admin/network/menu.php @@ -50,11 +50,11 @@ /* translators: Sites menu item. */ $menu[5] = array( __( 'Sites' ), 'manage_sites', 'sites.php', '', 'menu-top menu-icon-site', 'menu-site', 'dashicons-admin-multisite' ); $submenu['sites.php'][5] = array( __( 'All Sites' ), 'manage_sites', 'sites.php' ); -$submenu['sites.php'][10] = array( _x( 'Add New', 'site' ), 'create_sites', 'site-new.php' ); +$submenu['sites.php'][10] = array( __( 'Add New Site' ), 'create_sites', 'site-new.php' ); $menu[10] = array( __( 'Users' ), 'manage_network_users', 'users.php', '', 'menu-top menu-icon-users', 'menu-users', 'dashicons-admin-users' ); $submenu['users.php'][5] = array( __( 'All Users' ), 'manage_network_users', 'users.php' ); -$submenu['users.php'][10] = array( _x( 'Add New', 'user' ), 'create_users', 'user-new.php' ); +$submenu['users.php'][10] = array( __( 'Add New User' ), 'create_users', 'user-new.php' ); if ( current_user_can( 'update_themes' ) && $update_data['counts']['themes'] ) { $menu[15] = array( @@ -78,7 +78,7 @@ $menu[15] = array( __( 'Themes' ), 'manage_network_themes', 'themes.php', '', 'menu-top menu-icon-appearance', 'menu-appearance', 'dashicons-admin-appearance' ); } $submenu['themes.php'][5] = array( __( 'Installed Themes' ), 'manage_network_themes', 'themes.php' ); -$submenu['themes.php'][10] = array( _x( 'Add New', 'theme' ), 'install_themes', 'theme-install.php' ); +$submenu['themes.php'][10] = array( __( 'Add New Theme' ), 'install_themes', 'theme-install.php' ); $submenu['themes.php'][15] = array( __( 'Theme File Editor' ), 'edit_themes', 'theme-editor.php' ); if ( current_user_can( 'update_plugins' ) && $update_data['counts']['plugins'] ) { @@ -103,7 +103,7 @@ $menu[20] = array( __( 'Plugins' ), 'manage_network_plugins', 'plugins.php', '', 'menu-top menu-icon-plugins', 'menu-plugins', 'dashicons-admin-plugins' ); } $submenu['plugins.php'][5] = array( __( 'Installed Plugins' ), 'manage_network_plugins', 'plugins.php' ); -$submenu['plugins.php'][10] = array( _x( 'Add New', 'plugin' ), 'install_plugins', 'plugin-install.php' ); +$submenu['plugins.php'][10] = array( __( 'Add New Plugin' ), 'install_plugins', 'plugin-install.php' ); $submenu['plugins.php'][15] = array( __( 'Plugin File Editor' ), 'edit_plugins', 'plugin-editor.php' ); $menu[25] = array( __( 'Settings' ), 'manage_network_options', 'settings.php', '', 'menu-top menu-icon-settings', 'menu-settings', 'dashicons-admin-settings' ); diff --git a/src/wp-admin/network/sites.php b/src/wp-admin/network/sites.php index 7ba3ec55ff0da..402c047312d48 100644 --- a/src/wp-admin/network/sites.php +++ b/src/wp-admin/network/sites.php @@ -378,7 +378,7 @@

- +

-

+ ' . __( 'Caution:' ) . ' ' . __( 'This theme may be active on other sites in the network.' ), + array( + 'additional_classes' => array( 'error' ), + ) + ); + ?>

-

+ ' . __( 'Caution:' ) . ' ' . __( 'These themes may be active on other sites in the network.' ), + array( + 'additional_classes' => array( 'error' ), + ) + ); + ?>

- -

Warning: these pages should not be the same!' ); ?>

- - -

Warning: these pages should not be the same as your Privacy Policy page!' ); ?>

- + Warning: these pages should not be the same!' ), + array( + 'type' => 'warning', + 'id' => 'front-page-warning', + 'additional_classes' => array( 'inline' ), + ) + ); + endif; + if ( get_option( 'wp_page_for_privacy_policy' ) === get_option( 'page_for_posts' ) || get_option( 'wp_page_for_privacy_policy' ) === get_option( 'page_on_front' ) ) : + wp_admin_notice( + __( 'Warning: these pages should not be the same as your Privacy Policy page!' ), + array( + 'type' => 'warning', + 'id' => 'privacy-policy-page-warning', + 'additional_classes' => array( 'inline' ), + ) + ); + endif; + ?> diff --git a/src/wp-admin/options.php b/src/wp-admin/options.php index df872f4731c28..a8c7497ed82e4 100644 --- a/src/wp-admin/options.php +++ b/src/wp-admin/options.php @@ -359,10 +359,14 @@

-
-

-
- + ' . __( 'Warning:' ) . ' ' . __( 'This page allows direct access to your site settings. You can break things here. Please be cautious!' ), + array( + 'type' => 'warning', + ) + ); + ?> diff --git a/src/wp-admin/plugin-editor.php b/src/wp-admin/plugin-editor.php index 1b0b714c325c9..345f0c09e05c2 100644 --- a/src/wp-admin/plugin-editor.php +++ b/src/wp-admin/plugin-editor.php @@ -29,7 +29,15 @@ ?>

-

+ 'message', + 'additional_classes' => array( 'error' ), + ) + ); + ?>

- -
-

-
- -
-

-
get_error_message() ? $edit_error->get_error_message() : $edit_error->get_error_code() ); ?>
-
- + array( 'updated', 'is-dismissible' ), + 'id' => 'message', + ) + ); +elseif ( is_wp_error( $edit_error ) ) : + $error = esc_html( $edit_error->get_error_message() ? $edit_error->get_error_message() : $edit_error->get_error_code() ); + $message = '

' . __( 'There was an error while trying to update the file. You may need to fix something and try updating again.' ) . '

+
' . $error . '
'; + wp_admin_notice( + $message, + array( + 'type' => 'error', + 'id' => 'message', + 'paragraph_wrap' => false, + ) + ); +endif; +?>
@@ -280,11 +301,17 @@
- -
-

Warning: Making changes to active plugins is not recommended.' ); ?>

-
- + Warning: Making changes to active plugins is not recommended.' ), + array( + 'type' => 'warning', + 'additional_classes' => array( 'inline', 'active-plugin-edit-warning' ), + ) + ); + } + ?>

diff --git a/src/wp-admin/plugins.php b/src/wp-admin/plugins.php index 164467952f059..7ec59ae40bcc0 100644 --- a/src/wp-admin/plugins.php +++ b/src/wp-admin/plugins.php @@ -339,15 +339,31 @@ ?>

- -

- + ' . __( 'Caution:' ) . ' ' . __( 'This plugin may be active on other sites in the network.' ); + wp_admin_notice( + $maybe_active_plugin, + array( + 'additional_classes' => array( 'error' ), + ) + ); + endif; + ?>

- -

- + ' . __( 'Caution:' ) . ' ' . __( 'These plugins may be active on other sites in the network.' ); + wp_admin_notice( + $maybe_active_plugins, + array( + 'additional_classes' => array( 'error' ), + ) + ); + endif; + ?>

    @@ -547,7 +563,7 @@ '

    ' . __( 'The search for installed plugins will search for terms in their name, description, or author.' ) . ' ' . __( 'The search results will be updated as you type.' ) . '

    ' . '

    ' . sprintf( /* translators: %s: WordPress Plugin Directory URL. */ - __( 'If you would like to see more plugins to choose from, click on the “Add New” button and you will be able to browse or search for additional plugins from the WordPress Plugin Directory. Plugins in the WordPress Plugin Directory are designed and developed by third parties, and are compatible with the license WordPress uses. Oh, and they’re free!' ), + __( 'If you would like to see more plugins to choose from, click on the “Add New Plugin” button and you will be able to browse or search for additional plugins from the WordPress Plugin Directory. Plugins in the WordPress Plugin Directory are designed and developed by third parties, and are compatible with the license WordPress uses. Oh, and they’re free!' ), __( 'https://wordpress.org/plugins/' ) ) . '

    ', ) @@ -607,18 +623,29 @@ $invalid = validate_active_plugins(); if ( ! empty( $invalid ) ) { foreach ( $invalid as $plugin_file => $error ) { - echo '

    '; - printf( + $deactivated_message = sprintf( /* translators: 1: Plugin file, 2: Error message. */ __( 'The plugin %1$s has been deactivated due to an error: %2$s' ), '' . esc_html( $plugin_file ) . '', esc_html( $error->get_error_message() ) ); - echo '

    '; + wp_admin_notice( + $deactivated_message, + array( + 'id' => 'message', + 'additional_classes' => array( 'error' ), + ) + ); } } -if ( isset( $_GET['error'] ) ) : +// Used by wp_admin_notice() updated notices. +$updated_notice_args = array( + 'id' => 'message', + 'additional_classes' => array( 'updated' ), + 'dismissible' => true, +); +if ( isset( $_GET['error'] ) ) { if ( isset( $_GET['main'] ) ) { $errmsg = __( 'You cannot delete a plugin while it is active on the main site.' ); @@ -639,10 +666,6 @@ $errmsg = __( 'Plugin could not be activated because it triggered a fatal error.' ); } - ?> -

    - - - '; } - ?> -
    - 'message', + 'additional_classes' => array( 'error' ), + ) + ); + +} elseif ( isset( $_GET['deleted'] ) ) { + $delete_result = get_transient( 'plugins_delete_result_' . $user_ID ); // Delete it once we're done. delete_transient( 'plugins_delete_result_' . $user_ID ); - if ( is_wp_error( $delete_result ) ) : - ?> -
    -

    - get_error_message() ) - ); - ?> -

    -
    - -
    -

    - -

    -
    - - -

    - -

    - -

    - -

    - -

    - -

    - -

    - -

    - -

    - -

    - + if ( is_wp_error( $delete_result ) ) { + $plugin_not_deleted_message = sprintf( + /* translators: %s: Error message. */ + __( 'Plugin could not be deleted due to an error: %s' ), + esc_html( $delete_result->get_error_message() ) + ); + wp_admin_notice( + $plugin_not_deleted_message, + array( + 'id' => 'message', + 'additional_classes' => array( 'error' ), + 'dismissible' => true, + ) + ); + } else { + if ( 1 === (int) $_GET['deleted'] ) { + $plugins_deleted_message = __( 'The selected plugin has been deleted.' ); + } else { + $plugins_deleted_message = __( 'The selected plugins have been deleted.' ); + } + wp_admin_notice( $plugins_deleted_message, $updated_notice_args ); + } +} elseif ( isset( $_GET['activate'] ) ) { + wp_admin_notice( __( 'Plugin activated.' ), $updated_notice_args ); +} elseif ( isset( $_GET['activate-multi'] ) ) { + wp_admin_notice( __( 'Selected plugins activated.' ), $updated_notice_args ); +} elseif ( isset( $_GET['deactivate'] ) ) { + wp_admin_notice( __( 'Plugin deactivated.' ), $updated_notice_args ); +} elseif ( isset( $_GET['deactivate-multi'] ) ) { + wp_admin_notice( __( 'Selected plugins deactivated.' ), $updated_notice_args ); +} elseif ( 'update-selected' === $action ) { + wp_admin_notice( __( 'All selected plugins are up to date.' ), $updated_notice_args ); +} elseif ( isset( $_GET['resume'] ) ) { + wp_admin_notice( __( 'Plugin resumed.' ), $updated_notice_args ); +} elseif ( isset( $_GET['enabled-auto-update'] ) ) { + wp_admin_notice( __( 'Plugin will be auto-updated.' ), $updated_notice_args ); +} elseif ( isset( $_GET['disabled-auto-update'] ) ) { + wp_admin_notice( __( 'Plugin will no longer be auto-updated.' ), $updated_notice_args ); +} elseif ( isset( $_GET['enabled-auto-update-multi'] ) ) { + wp_admin_notice( __( 'Selected plugins will be auto-updated.' ), $updated_notice_args ); +} elseif ( isset( $_GET['disabled-auto-update-multi'] ) ) { + wp_admin_notice( __( 'Selected plugins will no longer be auto-updated.' ), $updated_notice_args ); +} +?>

    @@ -726,7 +749,7 @@ - + -
    -

    -
    + 'error', + 'additional_classes' => array( 'hide-if-js' ), + ) +); +?>

    diff --git a/src/wp-admin/site-editor.php b/src/wp-admin/site-editor.php index 93b1a9313135f..6442ee562b0a1 100644 --- a/src/wp-admin/site-editor.php +++ b/src/wp-admin/site-editor.php @@ -23,8 +23,8 @@ wp_die( __( 'The theme you are currently using is not compatible with the Site Editor.' ) ); } -$is_template_part = isset( $_GET['postType'] ) && 'wp_template_part' === sanitize_key( $_GET['postType'] ); -$is_template_part_path = isset( $_GET['path'] ) && 'wp_template_partall' === sanitize_key( $_GET['path'] ); +$is_template_part = isset( $_GET['postType'] ) && 'wp_template_part' === sanitize_key( $_GET['postType'] ); +$is_template_part_path = isset( $_GET['path'] ) && 'wp_template_partall' === sanitize_key( $_GET['path'] ); $is_template_part_editor = $is_template_part || $is_template_part_path; if ( ! wp_is_block_theme() && ! $is_template_part_editor ) { @@ -42,7 +42,7 @@ // Default to is-fullscreen-mode to avoid jumps in the UI. add_filter( 'admin_body_class', - static function( $classes ) { + static function ( $classes ) { return "$classes is-fullscreen-mode"; } ); @@ -160,22 +160,25 @@ static function( $classes ) {

    -
    -

    - -

    -
    + 'error', + 'additional_classes' => array( 'hide-if-js' ), + ) + ); + ?>
    diff --git a/src/wp-admin/site-health-info.php b/src/wp-admin/site-health-info.php index 7676a8dc90f6c..46b329adb6cfc 100644 --- a/src/wp-admin/site-health-info.php +++ b/src/wp-admin/site-health-info.php @@ -18,11 +18,15 @@ } $health_check_site_status = WP_Site_Health::get_instance(); -?> -
    -

    -
    +wp_admin_notice( + __( 'The Site Health check requires JavaScript.' ), + array( + 'type' => 'error', + 'additional_classes' => array( 'hide-if-js' ), + ) +); +?>
    -

    - 'success', + 'id' => 'message', + 'dismissible' => true, + ) + ); } else { - ?> -

    - 'error', + 'id' => 'message', + 'dismissible' => true, + ) + ); } } ?> @@ -212,12 +222,15 @@ require_once ABSPATH . 'wp-admin/admin-footer.php'; return; } else { + wp_admin_notice( + __( 'The Site Health check requires JavaScript.' ), + array( + 'type' => 'error', + 'additional_classes' => array( 'hide-if-js' ), + ) + ); ?> -
    -

    -
    -

    diff --git a/src/wp-admin/theme-editor.php b/src/wp-admin/theme-editor.php index 07de6269a7db0..c9253f5badc93 100644 --- a/src/wp-admin/theme-editor.php +++ b/src/wp-admin/theme-editor.php @@ -189,31 +189,44 @@

    - -
    -

    -
    - -
    -

    -
    get_error_message() ? $edit_error->get_error_message() : $edit_error->get_error_code() ); ?>
    -
    - + 'message', + 'is-dismissible' => true, + 'additional_classes' => array( 'updated' ), + ) + ); +} elseif ( is_wp_error( $edit_error ) ) { + $error_code = esc_html( $edit_error->get_error_message() ? $edit_error->get_error_message() : $edit_error->get_error_code() ); + $message = '

    ' . __( 'There was an error while trying to update the file. You may need to fix something and try updating again.' ) . '

    +
    ' . $error_code . '
    '; + wp_admin_notice( + $message, + array( + 'type' => 'error', + 'id' => 'message', + ) + ); +} - -
    -

    -

    - built-in CSS editor.' ), - esc_url( add_query_arg( 'autofocus[section]', 'custom_css', admin_url( 'customize.php' ) ) ) - ); - ?> -

    -
    - +if ( preg_match( '/\.css$/', $file ) && ! wp_is_block_theme() && current_user_can( 'customize' ) ) { + $message = '

    ' . __( 'Did you know?' ) . '

    ' . sprintf( + /* translators: %s: Link to Custom CSS section in the Customizer. */ + __( 'There is no need to change your CSS here — you can edit and live preview CSS changes in the built-in CSS editor.' ), + esc_url( add_query_arg( 'autofocus[section]', 'custom_css', admin_url( 'customize.php' ) ) ) + ) . '

    '; + wp_admin_notice( + $message, + array( + 'type' => 'info', + 'id' => 'message', + ) + ); +} +?>
    @@ -249,7 +262,12 @@ errors() ) { - echo '

    ' . __( 'This theme is broken.' ) . ' ' . $theme->errors()->get_error_message() . '

    '; + wp_admin_notice( + '' . __( 'This theme is broken.' ) . ' ' . $theme->errors()->get_error_message(), + array( + 'additional_classes' => array( 'error' ), + ) + ); } ?> @@ -281,7 +299,12 @@

    ' . __( 'File does not exist! Please double check the name and try again.' ) . '

    '; + wp_admin_notice( + __( 'File does not exist! Please double check the name and try again.' ), + array( + 'additional_classes' => array( 'error' ), + ) + ); else : ?> @@ -304,23 +327,30 @@
    - get_stylesheet() === get_template() ) : ?> -
    -

    - - - - -

    -
    - + get_stylesheet() === get_template() ) : + $message = ( is_writable( $file ) ) ? '' . __( 'Caution:' ) . ' ' : ''; + $message .= __( 'This is a file in your current parent theme.' ); + wp_admin_notice( + $message, + array( + 'type' => 'warning', + 'additional_classes' => array( 'inline' ), + ) + ); + endif; + ?>
    - +

    - +

    - +
    @@ -342,7 +374,7 @@
    -
    -

    -
    + array( 'error', 'hide-if-js' ), + ) + ); + ?>
    @@ -318,7 +323,15 @@ <# } #> <# if ( data.installed ) { #> -

    + 'success', + 'additional_classes' => array( 'notice-alt' ), + ) + ); + ?> <# } #> <# if ( ! data.compatible_wp || ! data.compatible_php ) { #> diff --git a/src/wp-admin/themes.php b/src/wp-admin/themes.php index 351fe93dbd975..80486748f460b 100644 --- a/src/wp-admin/themes.php +++ b/src/wp-admin/themes.php @@ -153,7 +153,7 @@ } else { $help_install = '

    ' . sprintf( /* translators: %s: https://wordpress.org/themes/ */ - __( 'If you would like to see more themes to choose from, click on the “Add New” button and you will be able to browse or search for additional themes from the WordPress Theme Directory. Themes in the WordPress Theme Directory are designed and developed by third parties, and are compatible with the license WordPress uses. Oh, and they’re free!' ), + __( 'If you would like to see more themes to choose from, click on the “Add New Theme” button and you will be able to browse or search for additional themes from the WordPress Theme Directory. Themes in the WordPress Theme Directory are designed and developed by third parties, and are compatible with the license WordPress uses. Oh, and they’re free!' ), __( 'https://wordpress.org/themes/' ) ) . '

    '; } @@ -252,7 +252,7 @@

    - + @@ -260,49 +260,97 @@
    -

    - 'message1', + 'additional_classes' => array( 'updated' ), + 'dismissible' => true, + ) + ); } elseif ( isset( $_GET['activated'] ) ) { if ( isset( $_GET['previewed'] ) ) { - ?> -

    - ' . __( 'Visit site' ) . '', + array( + 'id' => 'message2', + 'additional_classes' => array( 'updated' ), + 'dismissible' => true, + ) + ); } else { - ?> -

    - ' . __( 'Visit site' ) . '', + array( + 'id' => 'message2', + 'additional_classes' => array( 'updated' ), + 'dismissible' => true, + ) + ); } } elseif ( isset( $_GET['deleted'] ) ) { - ?> -

    - 'message3', + 'additional_classes' => array( 'updated' ), + 'dismissible' => true, + ) + ); } elseif ( isset( $_GET['delete-active-child'] ) ) { - ?> -

    - 'message4', + 'additional_classes' => array( 'error' ), + ) + ); } elseif ( isset( $_GET['resumed'] ) ) { - ?> -

    - 'message5', + 'additional_classes' => array( 'updated' ), + 'dismissible' => true, + ) + ); } elseif ( isset( $_GET['error'] ) && 'resuming' === $_GET['error'] ) { - ?> -

    fatal error.' ); ?>

    - fatal error.' ), + array( + 'id' => 'message6', + 'additional_classes' => array( 'error' ), + ) + ); } elseif ( isset( $_GET['enabled-auto-update'] ) ) { - ?> -

    - 'message7', + 'additional_classes' => array( 'updated' ), + 'dismissible' => true, + ) + ); } elseif ( isset( $_GET['disabled-auto-update'] ) ) { - ?> -

    - 'message8', + 'additional_classes' => array( 'updated' ), + 'dismissible' => true, + ) + ); } $current_theme = wp_get_theme(); if ( $current_theme->errors() && ( ! is_multisite() || current_user_can( 'manage_network_themes' ) ) ) { - echo '

    ' . __( 'Error:' ) . ' ' . $current_theme->errors()->get_error_message() . '

    '; + wp_admin_notice( + __( 'Error:' ) . ' ' . $current_theme->errors()->get_error_message(), + array( + 'additional_classes' => array( 'error' ), + ) + ); } $current_theme_actions = array(); @@ -395,130 +443,144 @@ - -

    - - Update now' ); ?> - - - -

    - -

    - Update now' ); + } else { + $new_version_available = __( 'New version available.' ); + } + wp_admin_notice( + $new_version_available, + array( + 'type' => 'warning', + 'additional_classes' => array( 'notice-alt', 'inline', 'update-message' ), + ) + ); + else : + $theme_update_error = ''; + if ( ! $theme['updateResponse']['compatibleWP'] && ! $theme['updateResponse']['compatiblePHP'] ) { + $theme_update_error .= sprintf( + /* translators: %s: Theme name. */ + __( 'There is a new version of %s available, but it does not work with your versions of WordPress and PHP.' ), + $theme['name'] + ); + if ( current_user_can( 'update_core' ) && current_user_can( 'update_php' ) ) { + $theme_update_error .= sprintf( + /* translators: 1: URL to WordPress Updates screen, 2: URL to Update PHP page. */ + ' ' . __( 'Please update WordPress, and then learn more about updating PHP.' ), + self_admin_url( 'update-core.php' ), + esc_url( wp_get_update_php_url() ) ); - if ( current_user_can( 'update_core' ) && current_user_can( 'update_php' ) ) { - printf( - /* translators: 1: URL to WordPress Updates screen, 2: URL to Update PHP page. */ - ' ' . __( 'Please update WordPress, and then learn more about updating PHP.' ), - self_admin_url( 'update-core.php' ), - esc_url( wp_get_update_php_url() ) - ); - wp_update_php_annotation( '

    ', '' ); - } elseif ( current_user_can( 'update_core' ) ) { - printf( - /* translators: %s: URL to WordPress Updates screen. */ - ' ' . __( 'Please update WordPress.' ), - self_admin_url( 'update-core.php' ) - ); - } elseif ( current_user_can( 'update_php' ) ) { - printf( - /* translators: %s: URL to Update PHP page. */ - ' ' . __( 'Learn more about updating PHP.' ), - esc_url( wp_get_update_php_url() ) - ); - wp_update_php_annotation( '

    ', '' ); - } - } elseif ( ! $theme['updateResponse']['compatibleWP'] ) { - printf( - /* translators: %s: Theme name. */ - __( 'There is a new version of %s available, but it does not work with your version of WordPress.' ), - $theme['name'] + wp_update_php_annotation( '

    ', '', false ); + } elseif ( current_user_can( 'update_core' ) ) { + $theme_update_error .= sprintf( + /* translators: %s: URL to WordPress Updates screen. */ + ' ' . __( 'Please update WordPress.' ), + self_admin_url( 'update-core.php' ) ); - if ( current_user_can( 'update_core' ) ) { - printf( - /* translators: %s: URL to WordPress Updates screen. */ - ' ' . __( 'Please update WordPress.' ), - self_admin_url( 'update-core.php' ) - ); - } - } elseif ( ! $theme['updateResponse']['compatiblePHP'] ) { - printf( - /* translators: %s: Theme name. */ - __( 'There is a new version of %s available, but it does not work with your version of PHP.' ), - $theme['name'] + } elseif ( current_user_can( 'update_php' ) ) { + $theme_update_error .= sprintf( + /* translators: %s: URL to Update PHP page. */ + ' ' . __( 'Learn more about updating PHP.' ), + esc_url( wp_get_update_php_url() ) ); - if ( current_user_can( 'update_php' ) ) { - printf( - /* translators: %s: URL to Update PHP page. */ - ' ' . __( 'Learn more about updating PHP.' ), - esc_url( wp_get_update_php_url() ) - ); - wp_update_php_annotation( '

    ', '' ); - } + wp_update_php_annotation( '

    ', '', false ); } - ?> -

    - - + } elseif ( ! $theme['updateResponse']['compatibleWP'] ) { + $theme_update_error .= sprintf( + /* translators: %s: Theme name. */ + __( 'There is a new version of %s available, but it does not work with your version of WordPress.' ), + $theme['name'] + ); + if ( current_user_can( 'update_core' ) ) { + $theme_update_error .= sprintf( + /* translators: %s: URL to WordPress Updates screen. */ + ' ' . __( 'Please update WordPress.' ), + self_admin_url( 'update-core.php' ) + ); + } + } elseif ( ! $theme['updateResponse']['compatiblePHP'] ) { + $theme_update_error .= sprintf( + /* translators: %s: Theme name. */ + __( 'There is a new version of %s available, but it does not work with your version of PHP.' ), + $theme['name'] + ); + if ( current_user_can( 'update_php' ) ) { + $theme_update_error .= sprintf( + /* translators: %s: URL to Update PHP page. */ + ' ' . __( 'Learn more about updating PHP.' ), + esc_url( wp_get_update_php_url() ) + ); + wp_update_php_annotation( '

    ', '', false ); + } + } + wp_admin_notice( + $theme_update_error, + array( + 'type' => 'error', + 'additional_classes' => array( 'notice-alt', 'inline', 'update-message' ), + ) + ); + endif; + endif; -

    '; + $message = ''; if ( ! $theme['compatibleWP'] && ! $theme['compatiblePHP'] ) { - _e( 'This theme does not work with your versions of WordPress and PHP.' ); + $message = __( 'This theme does not work with your versions of WordPress and PHP.' ); if ( current_user_can( 'update_core' ) && current_user_can( 'update_php' ) ) { - printf( + $message .= sprintf( /* translators: 1: URL to WordPress Updates screen, 2: URL to Update PHP page. */ ' ' . __( 'Please update WordPress, and then learn more about updating PHP.' ), self_admin_url( 'update-core.php' ), esc_url( wp_get_update_php_url() ) ); - wp_update_php_annotation( '

    ', '' ); + $message .= wp_update_php_annotation( '

    ', '', false ); } elseif ( current_user_can( 'update_core' ) ) { - printf( + $message .= sprintf( /* translators: %s: URL to WordPress Updates screen. */ ' ' . __( 'Please update WordPress.' ), self_admin_url( 'update-core.php' ) ); } elseif ( current_user_can( 'update_php' ) ) { - printf( + $message .= sprintf( /* translators: %s: URL to Update PHP page. */ ' ' . __( 'Learn more about updating PHP.' ), esc_url( wp_get_update_php_url() ) ); - wp_update_php_annotation( '

    ', '' ); + $message .= wp_update_php_annotation( '

    ', '', false ); } } elseif ( ! $theme['compatibleWP'] ) { - _e( 'This theme does not work with your version of WordPress.' ); + $message .= __( 'This theme does not work with your version of WordPress.' ); if ( current_user_can( 'update_core' ) ) { - printf( + $message .= sprintf( /* translators: %s: URL to WordPress Updates screen. */ ' ' . __( 'Please update WordPress.' ), self_admin_url( 'update-core.php' ) ); } } elseif ( ! $theme['compatiblePHP'] ) { - _e( 'This theme does not work with your version of PHP.' ); + $message .= __( 'This theme does not work with your version of PHP.' ); if ( current_user_can( 'update_php' ) ) { - printf( + $message .= sprintf( /* translators: %s: URL to Update PHP page. */ ' ' . __( 'Learn more about updating PHP.' ), esc_url( wp_get_update_php_url() ) ); - wp_update_php_annotation( '

    ', '' ); + $message .= wp_update_php_annotation( '

    ', '', false ); } } - echo '

    '; + + wp_admin_notice( + $message, + array( + 'type' => 'error', + 'additional_classes' => array( 'inline', 'notice-alt' ), + ) + ); } - ?> - @@ -612,7 +674,9 @@ - + get( 'Name' ) ? $broken_theme->display( 'Name' ) : esc_html( $broken_theme->get_stylesheet() ); ?> errors()->get_error_message(); ?> @@ -673,7 +737,9 @@ } ?> - +
@@ -692,6 +758,13 @@ * @return string The template for displaying the auto-update setting link. */ function wp_theme_auto_update_setting_template() { + $notice = wp_get_admin_notice( + '', + array( + 'type' => 'error', + 'additional_classes' => array( 'notice-alt', 'inline', 'hidden' ), + ) + ); $template = '
<# if ( data.autoupdate.supported ) { #> @@ -717,7 +790,7 @@ function wp_theme_auto_update_setting_template() { <# } #>
' . wp_get_auto_update_message() . ' <# } #> - + ' . $notice . '
'; @@ -1148,23 +1221,23 @@ function wp_theme_auto_update_setting_template() { /* translators: %s: Theme name. */ $aria_label = sprintf( _x( 'Activate %s', 'theme' ), '{{ data.name }}' ); ?> - <# if ( data.actions.activate ) { #> - - <# } #> <# if ( ! data.blockTheme ) { #> <# } #> + <# if ( data.actions.activate ) { #> + + <# } #> <# } else { #> - <# if ( data.actions.activate ) { #> - - <# } #> <# if ( ! data.blockTheme ) { #> <# } #> + <# if ( data.actions.activate ) { #> + + <# } #> <# } #>
diff --git a/src/wp-admin/update-core.php b/src/wp-admin/update-core.php index 8949f39e33d27..acd6cf7bf72ec 100644 --- a/src/wp-admin/update-core.php +++ b/src/wp-admin/update-core.php @@ -191,7 +191,6 @@ function list_core_update( $update ) { } echo ''; - } /** @@ -242,13 +241,8 @@ function dismissed_updates() { * Display upgrade WordPress for downloading latest or upgrading automatically form. * * @since 2.7.0 - * - * @global string $required_php_version The required PHP version string. - * @global string $required_mysql_version The required MySQL version string. */ function core_upgrade_preamble() { - global $required_php_version, $required_mysql_version; - $updates = get_core_updates(); // Include an unmodified $wp_version. @@ -261,14 +255,19 @@ function core_upgrade_preamble() { _e( 'An updated version of WordPress is available.' ); echo ''; - echo '

'; - printf( + $message = sprintf( /* translators: 1: Documentation on WordPress backups, 2: Documentation on updating WordPress. */ __( 'Important: Before updating, please back up your database and files. For help with updates, visit the Updating WordPress documentation page.' ), __( 'https://wordpress.org/documentation/article/wordpress-backups/' ), __( 'https://wordpress.org/documentation/article/updating-wordpress/' ) ); - echo '

'; + wp_admin_notice( + $message, + array( + 'type' => 'warning', + 'additional_classes' => array( 'inline' ), + ) + ); } elseif ( $is_development_version ) { echo '

' . __( 'You are using a development version of WordPress.' ) . '

'; } else { @@ -308,10 +307,22 @@ function core_auto_updates_settings() { if ( isset( $_GET['core-major-auto-updates-saved'] ) ) { if ( 'enabled' === $_GET['core-major-auto-updates-saved'] ) { $notice_text = __( 'Automatic updates for all WordPress versions have been enabled. Thank you!' ); - echo '

' . $notice_text . '

'; + wp_admin_notice( + $notice_text, + array( + 'type' => 'success', + 'dismissible' => true, + ) + ); } elseif ( 'disabled' === $_GET['core-major-auto-updates-saved'] ) { $notice_text = __( 'WordPress will only receive automatic security and maintenance releases from now on.' ); - echo '

' . $notice_text . '

'; + wp_admin_notice( + $notice_text, + array( + 'type' => 'success', + 'dismissible' => true, + ) + ); } } @@ -1061,16 +1072,22 @@ function do_undismiss_core_update() { if ( 'themes' === $upgrade_error ) { $theme_updates = get_theme_updates(); if ( ! empty( $theme_updates ) ) { - echo '

'; - _e( 'Please select one or more themes to update.' ); - echo '

'; + wp_admin_notice( + __( 'Please select one or more themes to update.' ), + array( + 'additional_classes' => array( 'error' ), + ) + ); } } else { $plugin_updates = get_plugin_updates(); if ( ! empty( $plugin_updates ) ) { - echo '

'; - _e( 'Please select one or more plugins to update.' ); - echo '

'; + wp_admin_notice( + __( 'Please select one or more plugins to update.' ), + array( + 'additional_classes' => array( 'error' ), + ) + ); } } } diff --git a/src/wp-admin/upgrade.php b/src/wp-admin/upgrade.php index 8d361b214a008..414fbb28d1946 100644 --- a/src/wp-admin/upgrade.php +++ b/src/wp-admin/upgrade.php @@ -72,7 +72,7 @@

-

+

- +
- -

- + 'message', + 'additional_classes' => array( 'updated' ), + 'dismissible' => true, + ) + ); + } -
-

- Switch to the list view.' ), - 'upload.php?mode=list' + if ( ! empty( $message ) ) { + wp_admin_notice( + $message, + array( + 'id' => 'message', + 'additional_classes' => array( 'updated' ), + 'dismissible' => true, + ) ); - ?> -

-
+ } + + $js_required_message = sprintf( + /* translators: %s: List view URL. */ + __( 'The grid view for the Media Library requires JavaScript. Switch to the list view.' ), + 'upload.php?mode=list' + ); + wp_admin_notice( + $js_required_message, + array( + 'additional_classes' => array( 'error', 'hide-if-js' ), + ) + ); + ?>
- + - -

- + 'message', + 'additional_classes' => array( 'updated' ), + 'dismissible' => true, + ) + ); +} +?>
diff --git a/src/wp-admin/user-edit.php b/src/wp-admin/user-edit.php index c5468cf93773b..d9b630e058184 100644 --- a/src/wp-admin/user-edit.php +++ b/src/wp-admin/user-edit.php @@ -200,36 +200,58 @@ require_once ABSPATH . 'wp-admin/admin-header.php'; ?> - ID ) && current_user_can( 'manage_network_options' ) ) : ?> -

- - - -
- -

- -

- - -

- -
- - - -
- -

- -
- - - -
-

\n

", $errors->get_error_messages() ); ?>

-
- + ID ) && current_user_can( 'manage_network_options' ) ) : + $message = '' . __( 'Important:' ) . ' ' . __( 'This user has super admin privileges.' ); + wp_admin_notice( + $message, + array( + 'type' => 'info', + ) + ); + endif; + + if ( isset( $_GET['updated'] ) ) : + if ( IS_PROFILE_PAGE ) : + $message = '' . __( 'Profile updated.' ) . ''; + else : + $message = '' . __( 'User updated.' ) . ''; + endif; + if ( $wp_http_referer && ! str_contains( $wp_http_referer, 'user-new.php' ) && ! IS_PROFILE_PAGE ) : + $message .= '' . __( '← Go to Users' ) . ''; + endif; + wp_admin_notice( + $message, + array( + 'id' => 'message', + 'dismissible' => true, + 'additional_classes' => array( 'updated' ), + ) + ); + endif; + + if ( isset( $_GET['error'] ) ) : + $message = ''; + if ( 'new-email' === $_GET['error'] ) : + $message = __( 'Error while saving the new email address. Please try again.' ); + endif; + wp_admin_notice( + $message, + array( + 'type' => 'error', + ) + ); + endif; + + if ( isset( $errors ) && is_wp_error( $errors ) ) { + wp_admin_notice( + implode( "

\n

", $errors->get_error_messages() ), + array( + 'additional_classes' => array( 'error' ), + ) + ); + } + ?>

@@ -238,9 +260,9 @@ - + - + @@ -524,25 +546,28 @@

- ID, '_new_email', true ); ?> - user_email && $profile_user->ID === $current_user->ID ) : ?> -
-

- ' . esc_html( $new_email['newemail'] ) . '' - ); - printf( - ' %2$s', - esc_url( wp_nonce_url( self_admin_url( 'profile.php?dismiss=' . $current_user->ID . '_new_email' ), 'dismiss-' . $current_user->ID . '_new_email' ) ), - __( 'Cancel' ) - ); - ?> -

-
- + ID, '_new_email', true ); + if ( $new_email && $new_email['newemail'] !== $current_user->user_email && $profile_user->ID === $current_user->ID ) : + + $pending_change_message = sprintf( + /* translators: %s: New email. */ + __( 'There is a pending change of your email to %s.' ), + '' . esc_html( $new_email['newemail'] ) . '' + ); + $pending_change_message .= sprintf( + ' %2$s', + esc_url( wp_nonce_url( self_admin_url( 'profile.php?dismiss=' . $current_user->ID . '_new_email' ), 'dismiss-' . $current_user->ID . '_new_email' ) ), + __( 'Cancel' ) + ); + wp_admin_notice( + $pending_change_message, + array( + 'additional_classes' => array( 'updated', 'inline' ), + ) + ); + endif; + ?> @@ -802,11 +827,17 @@

- -
-

-
- + 'error', + 'additional_classes' => array( 'inline' ), + ) + ); + endif; + ?>
):', " $attr", $tag, 1 ); @@ -46,6 +75,5 @@ public function filter_script_loader_tag( $tag, $handle ) { } return $tag; } - } } diff --git a/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-separator-control.php b/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-separator-control.php index 270d8e598ef91..6e988aa12430d 100644 --- a/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-separator-control.php +++ b/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-separator-control.php @@ -24,7 +24,6 @@ class TwentyTwenty_Separator_Control extends WP_Customize_Control { public function render_content() { echo '
'; } - } } } diff --git a/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-svg-icons.php b/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-svg-icons.php index 0e576f0af6651..6f28dd7dbc728 100644 --- a/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-svg-icons.php +++ b/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-svg-icons.php @@ -335,6 +335,5 @@ public static function get_social_link_svg( $uri ) { 'youtube' => '', ); - } } diff --git a/src/wp-content/themes/twentytwenty/functions.php b/src/wp-content/themes/twentytwenty/functions.php index be61189ea24d2..d05df26a2b488 100644 --- a/src/wp-content/themes/twentytwenty/functions.php +++ b/src/wp-content/themes/twentytwenty/functions.php @@ -135,8 +135,11 @@ function twentytwenty_theme_support() { * by the theme. */ $loader = new TwentyTwenty_Script_Loader(); - add_filter( 'script_loader_tag', array( $loader, 'filter_script_loader_tag' ), 10, 2 ); - + if ( version_compare( $GLOBALS['wp_version'], '6.3', '<' ) ) { + add_filter( 'script_loader_tag', array( $loader, 'filter_script_loader_tag' ), 10, 2 ); + } else { + add_filter( 'print_scripts_array', array( $loader, 'migrate_legacy_strategy_script_data' ), 100 ); + } } add_action( 'after_setup_theme', 'twentytwenty_theme_support' ); @@ -195,7 +198,6 @@ function twentytwenty_register_styles() { // Add print CSS. wp_enqueue_style( 'twentytwenty-print-style', get_template_directory_uri() . '/print.css', null, $theme_version, 'print' ); - } add_action( 'wp_enqueue_scripts', 'twentytwenty_register_styles' ); @@ -213,9 +215,14 @@ function twentytwenty_register_scripts() { wp_enqueue_script( 'comment-reply' ); } - wp_enqueue_script( 'twentytwenty-js', get_template_directory_uri() . '/assets/js/index.js', array(), $theme_version, false ); - wp_script_add_data( 'twentytwenty-js', 'async', true ); - + /* + * This script is intentionally printed in the head because it involves the page header. The `defer` script loading + * strategy ensures that it does not block rendering; being in the head it will start loading earlier so that it + * will execute sooner once the DOM has loaded. The $args array is not used here to avoid unintentional footer + * placement in WP<6.3; the wp_script_add_data() call is used instead. + */ + wp_enqueue_script( 'twentytwenty-js', get_template_directory_uri() . '/assets/js/index.js', array(), $theme_version ); + wp_script_add_data( 'twentytwenty-js', 'strategy', 'defer' ); } add_action( 'wp_enqueue_scripts', 'twentytwenty_register_scripts' ); @@ -330,7 +337,6 @@ function twentytwenty_get_custom_logo( $html ) { } return $html; - } add_filter( 'get_custom_logo', 'twentytwenty_get_custom_logo' ); @@ -402,7 +408,6 @@ function twentytwenty_sidebar_registration() { ) ) ); - } add_action( 'widgets_init', 'twentytwenty_sidebar_registration' ); @@ -431,7 +436,7 @@ function twentytwenty_block_editor_styles() { } // Enqueue the editor script. - wp_enqueue_script( 'twentytwenty-block-editor-script', get_theme_file_uri( '/assets/js/editor-script-block.js' ), array( 'wp-blocks', 'wp-dom' ), wp_get_theme()->get( 'Version' ), true ); + wp_enqueue_script( 'twentytwenty-block-editor-script', get_theme_file_uri( '/assets/js/editor-script-block.js' ), array( 'wp-blocks', 'wp-dom' ), wp_get_theme()->get( 'Version' ), array( 'in_footer' => true ) ); } add_action( 'enqueue_block_editor_assets', 'twentytwenty_block_editor_styles', 1, 1 ); @@ -448,7 +453,6 @@ function twentytwenty_classic_editor_styles() { ); add_editor_style( $classic_editor_styles ); - } add_action( 'init', 'twentytwenty_classic_editor_styles' ); @@ -477,7 +481,6 @@ function twentytwenty_add_classic_editor_customizer_styles( $mce_init ) { } return $mce_init; - } add_filter( 'tiny_mce_before_init', 'twentytwenty_add_classic_editor_customizer_styles' ); @@ -505,7 +508,6 @@ function twentytwenty_add_classic_editor_non_latin_styles( $mce_init ) { } return $mce_init; - } add_filter( 'tiny_mce_before_init', 'twentytwenty_add_classic_editor_non_latin_styles' ); @@ -597,7 +599,6 @@ function twentytwenty_block_editor_settings() { if ( '#ffffff' === strtolower( twentytwenty_get_color_for_area( 'content', 'text' ) ) ) { add_theme_support( 'dark-editor-style' ); } - } add_action( 'after_setup_theme', 'twentytwenty_block_editor_settings' ); @@ -625,13 +626,13 @@ function twentytwenty_customize_controls_enqueue_scripts() { $theme_version = wp_get_theme()->get( 'Version' ); // Add main customizer js file. - wp_enqueue_script( 'twentytwenty-customize', get_template_directory_uri() . '/assets/js/customize.js', array( 'jquery' ), $theme_version, false ); + wp_enqueue_script( 'twentytwenty-customize', get_template_directory_uri() . '/assets/js/customize.js', array( 'jquery' ), $theme_version ); // Add script for color calculations. - wp_enqueue_script( 'twentytwenty-color-calculations', get_template_directory_uri() . '/assets/js/color-calculations.js', array( 'wp-color-picker' ), $theme_version, false ); + wp_enqueue_script( 'twentytwenty-color-calculations', get_template_directory_uri() . '/assets/js/color-calculations.js', array( 'wp-color-picker' ), $theme_version ); // Add script for controls. - wp_enqueue_script( 'twentytwenty-customize-controls', get_template_directory_uri() . '/assets/js/customize-controls.js', array( 'twentytwenty-color-calculations', 'customize-controls', 'underscore', 'jquery' ), $theme_version, false ); + wp_enqueue_script( 'twentytwenty-customize-controls', get_template_directory_uri() . '/assets/js/customize-controls.js', array( 'twentytwenty-color-calculations', 'customize-controls', 'underscore', 'jquery' ), $theme_version ); wp_localize_script( 'twentytwenty-customize-controls', 'twentyTwentyBgColors', twentytwenty_get_customizer_color_vars() ); } @@ -647,7 +648,7 @@ function twentytwenty_customize_controls_enqueue_scripts() { function twentytwenty_customize_preview_init() { $theme_version = wp_get_theme()->get( 'Version' ); - wp_enqueue_script( 'twentytwenty-customize-preview', get_theme_file_uri( '/assets/js/customize-preview.js' ), array( 'customize-preview', 'customize-selective-refresh', 'jquery' ), $theme_version, true ); + wp_enqueue_script( 'twentytwenty-customize-preview', get_theme_file_uri( '/assets/js/customize-preview.js' ), array( 'customize-preview', 'customize-selective-refresh', 'jquery' ), $theme_version, array( 'in_footer' => true ) ); wp_localize_script( 'twentytwenty-customize-preview', 'twentyTwentyBgColors', twentytwenty_get_customizer_color_vars() ); wp_localize_script( 'twentytwenty-customize-preview', 'twentyTwentyPreviewEls', twentytwenty_get_elements_array() ); diff --git a/src/wp-content/themes/twentytwenty/inc/custom-css.php b/src/wp-content/themes/twentytwenty/inc/custom-css.php index 815f5d1b723b7..e551eb6abc5d4 100644 --- a/src/wp-content/themes/twentytwenty/inc/custom-css.php +++ b/src/wp-content/themes/twentytwenty/inc/custom-css.php @@ -42,7 +42,6 @@ function twentytwenty_generate_css( $selector, $style, $value, $prefix = '', $su } return $return; - } } @@ -190,6 +189,5 @@ function twentytwenty_get_customizer_css( $type = 'front-end' ) { // Return the results. return ob_get_clean(); - } } diff --git a/src/wp-content/themes/twentytwenty/inc/starter-content.php b/src/wp-content/themes/twentytwenty/inc/starter-content.php index 89be38bbe840b..52b36d4c9f89b 100644 --- a/src/wp-content/themes/twentytwenty/inc/starter-content.php +++ b/src/wp-content/themes/twentytwenty/inc/starter-content.php @@ -214,5 +214,4 @@ function twentytwenty_get_starter_content() { * @param array $starter_content Array of starter content. */ return apply_filters( 'twentytwenty_starter_content', $starter_content ); - } diff --git a/src/wp-content/themes/twentytwenty/inc/template-tags.php b/src/wp-content/themes/twentytwenty/inc/template-tags.php index d91ffd344a9cb..8014eb4123d3c 100644 --- a/src/wp-content/themes/twentytwenty/inc/template-tags.php +++ b/src/wp-content/themes/twentytwenty/inc/template-tags.php @@ -88,7 +88,6 @@ function twentytwenty_site_logo( $args = array(), $display = true ) { } echo $html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped - } /** @@ -154,7 +153,6 @@ function twentytwenty_is_comment_by_post_author( $comment = null ) { } } return false; - } /** @@ -172,7 +170,6 @@ function twentytwenty_filter_comment_reply_link( $link ) { $link = str_replace( 'class=\'', 'class=\'do-not-scroll ', $link ); return $link; - } add_filter( 'comment_reply_link', 'twentytwenty_filter_comment_reply_link' ); @@ -194,7 +191,6 @@ function twentytwenty_filter_comment_reply_link( $link ) { function twentytwenty_the_post_meta( $post_id = null, $location = 'single-top' ) { echo twentytwenty_get_post_meta( $post_id, $location ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Escaped in twentytwenty_get_post_meta(). - } /** @@ -231,7 +227,6 @@ function twentytwenty_edit_post_link( $link, $post_id, $text ) { ); return ''; - } add_filter( 'edit_post_link', 'twentytwenty_edit_post_link', 10, 3 ); @@ -523,7 +518,6 @@ function twentytwenty_get_post_meta( $post_id = null, $location = 'single-top' ) } } - } /** @@ -564,7 +558,6 @@ function twentytwenty_filter_wp_list_pages_item_classes( $css_class, $page, $dep } return $css_class; - } add_filter( 'page_css_class', 'twentytwenty_filter_wp_list_pages_item_classes', 10, 4 ); @@ -614,7 +607,6 @@ function twentytwenty_add_sub_toggles_to_main_menu( $args, $item ) { } return $args; - } add_filter( 'nav_menu_item_args', 'twentytwenty_add_sub_toggles_to_main_menu', 10, 2 ); @@ -661,7 +653,6 @@ function twentytwenty_no_js_class() { ?> 1 ) { echo ''; } diff --git a/src/wp-content/themes/twentytwenty/package-lock.json b/src/wp-content/themes/twentytwenty/package-lock.json index eda16ad6bf3cb..2c25174847de2 100644 --- a/src/wp-content/themes/twentytwenty/package-lock.json +++ b/src/wp-content/themes/twentytwenty/package-lock.json @@ -1,8 +1,16657 @@ { "name": "twentytwenty", "version": "2.3.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "twentytwenty", + "version": "2.3.0", + "license": "GPL-2.0-or-later", + "devDependencies": { + "@wordpress/browserslist-config": "^5.24.0", + "@wordpress/scripts": "^24.6.0", + "autoprefixer": "^10.4.15", + "concurrently": "^8.2.1", + "postcss": "^8.4.29", + "postcss-cli": "^10.1.0", + "rtlcss": "^4.1.0", + "stylelint-a11y": "^1.2.3" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.20.14", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz", + "integrity": "sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", + "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", + "dev": true, + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.20.14", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", + "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz", + "integrity": "sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", + "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.2.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz", + "integrity": "sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.10", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", + "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", + "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.13", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.20.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", + "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz", + "integrity": "sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead.", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz", + "integrity": "sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", + "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead.", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", + "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.20.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.15.tgz", + "integrity": "sha512-Vv4DMZ6MiNOhu/LdaZsT/bsLRxgL94d269Mv4R/9sp6+Mp++X/JqypZYypJXLlM4mlL352/Egzbzr98iABH1CA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz", + "integrity": "sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", + "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz", + "integrity": "sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz", + "integrity": "sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-simple-access": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", + "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-identifier": "^7.19.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz", + "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.20.2.tgz", + "integrity": "sha512-KS/G8YI8uwMGKErLFOHS/ekhqdHhpEloxs43NecQHVgo2QuQSyJhGIY1fL8UGl9wy5ItVwwoUL4YxVqsplGq2g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", + "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.20.13.tgz", + "integrity": "sha512-MmTZx/bkUrfJhhYAYt3Urjm+h8DQGrPrnKQ94jLo7NLuOU+T89a7IByhKmrb8SKhrIYIQ0FN0CHMbnFRen4qNw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "dev": true, + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", + "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.13.tgz", + "integrity": "sha512-O7I/THxarGcDZxkgWKMUrk7NK1/WbHAg3Xx86gqS6x9MTrNL6AwIluuZ96ms4xeDe6AVx6rjHbWHP7x26EPQBA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.20.12", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-typescript": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", + "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-react-display-name": "^7.18.6", + "@babel/plugin-transform-react-jsx": "^7.18.6", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-pure-annotations": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", + "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-typescript": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.15.tgz", + "integrity": "sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", + "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.13", + "@babel/types": "^7.20.7", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.1.1.tgz", + "integrity": "sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4", + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@es-joy/jsdoccomment": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.36.1.tgz", + "integrity": "sha512-922xqFsTpHs6D0BUiG4toiyPOMc8/jafnWKxz1KWgS4XzKPy2qXf1Pe6UFuNSCQqt6tOuhAWXBNuuyUhJmw9Vg==", + "dev": true, + "dependencies": { + "comment-parser": "1.3.1", + "esquery": "^1.4.0", + "jsdoc-type-pratt-parser": "~3.1.0" + }, + "engines": { + "node": "^14 || ^16 || ^17 || ^18 || ^19" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "dev": true + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dev": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dev": true, + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz", + "integrity": "sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==", + "dev": true, + "dependencies": { + "ansi-html-community": "^0.0.8", + "common-path-prefix": "^3.0.0", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "find-up": "^5.0.0", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.4", + "schema-utils": "^3.0.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <4.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "dev": true + }, + "node_modules/@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "dev": true + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", + "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.5.0.tgz", + "integrity": "sha512-8zYdkym7qNyfXpWvu4yq46k41pyNM9SOstoWhKlm+IfdCE1DdnRKeMUPsWIEO/DEkaWxJ8T9esNdG3QwQ93jBA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.5.0.tgz", + "integrity": "sha512-NFdxMq3xA42Kb1UbzCVxplUc0iqSyM9X8kopImvFnB+uSDdzIHOdbs1op8ofAvVRtbg4oZiyRl3fTYeKcOe9Iw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", + "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", + "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", + "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", + "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", + "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", + "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "dev": true, + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", + "@svgr/babel-plugin-remove-jsx-attribute": "*", + "@svgr/babel-plugin-remove-jsx-empty-expression": "*", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", + "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", + "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", + "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", + "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", + "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", + "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.0", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", + "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/hast-util-to-babel-ast": "^6.5.1", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "^6.0.0" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz", + "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==", + "dev": true, + "dependencies": { + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "svgo": "^2.8.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/webpack": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.5.1.tgz", + "integrity": "sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.19.6", + "@babel/plugin-transform-react-constant-elements": "^7.18.12", + "@babel/preset-env": "^7.19.4", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.18.6", + "@svgr/core": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "@svgr/plugin-svgo": "^6.5.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", + "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", + "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.0.tgz", + "integrity": "sha512-35EhHNOXgxnUgh4XCJsGhE7zdlDhYDN/aMG6UbkByCFFNgQ7b3U+uVoqBpicFydR8JEfgdjCF7SJ7MiJfzuiTA==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.33", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz", + "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-proxy": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", + "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.11.19", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.19.tgz", + "integrity": "sha512-YUgMWAQBWLObABqrvx8qKO1enAvBUdjZOAWQ5grBAkp5LQv45jBvYKZ3oFS9iKRCQyFjqw6iuEa1vmFqtxYLZw==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/prettier": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", + "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", + "dev": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.0.27", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.27.tgz", + "integrity": "sha512-3vtRKHgVxu3Jp9t718R9BuzoD4NcQ8YJ5XRzsSKxNDiDonD2MXIT1TmSkenxuCycZJoQT5d2vE8LwWJxBC1gmA==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.0.10", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.10.tgz", + "integrity": "sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "dev": true, + "dependencies": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/tapable": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.8.tgz", + "integrity": "sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==", + "dev": true + }, + "node_modules/@types/uglify-js": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.1.tgz", + "integrity": "sha512-GkewRA4i5oXacU/n4MA9+bLgt5/L3F1mKrYvFGm7r2ouLXhRKjuWwo9XHNnbx6WF3vlGW21S3fCvgqxvxXXc5g==", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/@types/uglify-js/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@types/webpack": { + "version": "4.41.33", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.33.tgz", + "integrity": "sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/tapable": "^1", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "anymatch": "^3.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/@types/webpack-sources": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.0.tgz", + "integrity": "sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + } + }, + "node_modules/@types/webpack/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", + "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.50.0.tgz", + "integrity": "sha512-vwksQWSFZiUhgq3Kv7o1Jcj0DUNylwnIlGvKvLLYsq8pAWha6/WCnXUeaSoNNha/K7QSf2+jvmkxggC1u3pIwQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.50.0", + "@typescript-eslint/type-utils": "5.50.0", + "@typescript-eslint/utils": "5.50.0", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.50.0.tgz", + "integrity": "sha512-KCcSyNaogUDftK2G9RXfQyOCt51uB5yqC6pkUYqhYh8Kgt+DwR5M0EwEAxGPy/+DH6hnmKeGsNhiZRQxjH71uQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.50.0", + "@typescript-eslint/types": "5.50.0", + "@typescript-eslint/typescript-estree": "5.50.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.50.0.tgz", + "integrity": "sha512-rt03kaX+iZrhssaT974BCmoUikYtZI24Vp/kwTSy841XhiYShlqoshRFDvN1FKKvU2S3gK+kcBW1EA7kNUrogg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.50.0", + "@typescript-eslint/visitor-keys": "5.50.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.50.0.tgz", + "integrity": "sha512-dcnXfZ6OGrNCO7E5UY/i0ktHb7Yx1fV6fnQGGrlnfDhilcs6n19eIRcvLBqx6OQkrPaFlDPk3OJ0WlzQfrV0bQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.50.0", + "@typescript-eslint/utils": "5.50.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.50.0.tgz", + "integrity": "sha512-atruOuJpir4OtyNdKahiHZobPKFvZnBnfDiyEaBf6d9vy9visE7gDjlmhl+y29uxZ2ZDgvXijcungGFjGGex7w==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.50.0.tgz", + "integrity": "sha512-Gq4zapso+OtIZlv8YNAStFtT6d05zyVCK7Fx3h5inlLBx2hWuc/0465C2mg/EQDDU2LKe52+/jN4f0g9bd+kow==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.50.0", + "@typescript-eslint/visitor-keys": "5.50.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.50.0.tgz", + "integrity": "sha512-v/AnUFImmh8G4PH0NDkf6wA8hujNNcrwtecqW4vtQ1UOSNBaZl49zP1SHoZ/06e+UiwzHpgb5zP5+hwlYYWYAw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.50.0", + "@typescript-eslint/types": "5.50.0", + "@typescript-eslint/typescript-estree": "5.50.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.50.0.tgz", + "integrity": "sha512-cdMeD9HGu6EXIeGOh2yVW6oGf9wq8asBgZx7nsR/D36gTfQ0odE5kcRYe5M81vjEFAcPeugXrHg78Imu55F6gg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.50.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", + "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "dev": true, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x", + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", + "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "dev": true, + "dependencies": { + "envinfo": "^7.7.3" + }, + "peerDependencies": { + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", + "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", + "dev": true, + "peerDependencies": { + "webpack-cli": "4.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@wordpress/babel-plugin-import-jsx-pragma": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-4.9.0.tgz", + "integrity": "sha512-ejG0lyO8UmMsCydNLfHM2mX6s1IoCtIJ0mHoQ/AKtzetr9PbJRIdQgpIA876zXW46wd0WJE3V+kjEZPDzeEvDA==", + "dev": true, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@babel/core": "^7.12.9" + } + }, + "node_modules/@wordpress/babel-preset-default": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-7.10.0.tgz", + "integrity": "sha512-4psTNav+VcxZAkWnHfq6ePFSDDGOvmc2p0KjHygi03NCZgWBy3cnlRr/Vy736ZQ7CM98YLsYYKBG/3sWdk3n2A==", + "dev": true, + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-transform-react-jsx": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.0", + "@babel/preset-env": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.0", + "@wordpress/babel-plugin-import-jsx-pragma": "^4.9.0", + "@wordpress/browserslist-config": "^5.9.0", + "@wordpress/element": "^5.3.0", + "@wordpress/warning": "^2.26.0", + "browserslist": "^4.17.6", + "core-js": "^3.19.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@wordpress/base-styles": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-4.17.0.tgz", + "integrity": "sha512-QDdW5PzPNzSOAudlkeMIuwlGxmQSmnJAulD11f4d/OPwfU+KMk3hYr6QS3nzFghlT6IDwcwwlNE6BgoN772G4A==", + "dev": true + }, + "node_modules/@wordpress/browserslist-config": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-5.24.0.tgz", + "integrity": "sha512-6QYbEVeIZxak8Bt0XCQ7msF9QcVjWqdREgDXVcWPD907WdKC5Hmi8ZtY63mY5OouKn5Cnxg7VJRv1AWb9eT0/g==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@wordpress/dependency-extraction-webpack-plugin": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-4.9.0.tgz", + "integrity": "sha512-p8pN330wQ6WEZhkt3Jva/fVc/79J4LpZi8TpH0X+770YKrhI429YZIenFriQiM72iaWK3Q+gaYziM4bndP+s8w==", + "dev": true, + "dependencies": { + "json2php": "^0.0.5", + "webpack-sources": "^3.2.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "webpack": "^4.8.3 || ^5.0.0" + } + }, + "node_modules/@wordpress/element": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.3.0.tgz", + "integrity": "sha512-sgBrPm9suYx9sAtMLnfqgJem54Vew+BvVRpQoKQjpoXAKklGKSr52xOERek2TZQuZl/hMCCdvScrLIIW96UNAw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.16.0", + "@types/react": "^18.0.21", + "@types/react-dom": "^18.0.6", + "@wordpress/escape-html": "^2.26.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.0.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/escape-html": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-2.26.0.tgz", + "integrity": "sha512-uWumpNH4hnmeepTw9K3gC5LmoZECom5L1P6HuZXYXyld8eU5L9p/JdvAPOwLmjffHyJO3hiB2JqYd+nKElbtrw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.16.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/eslint-plugin": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-13.10.0.tgz", + "integrity": "sha512-FW3JryRMeUpdhbBi6n4bKPHoYUqwSZI/7jjmvObiUlr8uJfXRFRXfgYOCP8BiVjMyGDBpiMs95Fyf1QbQ79Img==", + "dev": true, + "dependencies": { + "@babel/eslint-parser": "^7.16.0", + "@typescript-eslint/eslint-plugin": "^5.3.0", + "@typescript-eslint/parser": "^5.3.0", + "@wordpress/babel-preset-default": "^7.10.0", + "@wordpress/prettier-config": "^2.9.0", + "cosmiconfig": "^7.0.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-jest": "^27.2.1", + "eslint-plugin-jsdoc": "^39.6.9", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-prettier": "^3.3.0", + "eslint-plugin-react": "^7.27.0", + "eslint-plugin-react-hooks": "^4.3.0", + "globals": "^13.12.0", + "requireindex": "^1.2.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6.14.4" + }, + "peerDependencies": { + "@babel/core": ">=7", + "eslint": ">=8", + "prettier": ">=2", + "typescript": ">=4" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/@wordpress/eslint-plugin/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wordpress/jest-console": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-6.9.0.tgz", + "integrity": "sha512-ppIbCF9WTF7Pg6zhAlUI1fa3kQFqv4ME9jhJrRMMHL3fkqKMSsR9RdP0auxPWd0/BvA98zS3KgaR7Zpq8CWgPQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.16.0", + "jest-matcher-utils": "^27.4.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "jest": ">=27" + } + }, + "node_modules/@wordpress/jest-preset-default": { + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-10.7.0.tgz", + "integrity": "sha512-rMf+HS75o06+teQTBkEH4R7RobaIwG4HoVvLnfuSan0EnkyqcXadQ1tyFNKPT8rA6nB/wJn649dibE1+UMSUpw==", + "dev": true, + "dependencies": { + "@wordpress/jest-console": "^6.9.0", + "babel-jest": "^27.4.5" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@babel/core": ">=7", + "jest": ">=27" + } + }, + "node_modules/@wordpress/npm-package-json-lint-config": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-4.11.0.tgz", + "integrity": "sha512-xqc/RH/djM3qNB0OEip8Jj81AsKKf4fQGoKkE6XVeTcpBwbNRyswj5uBHCmgBbN/OjEoXBxDokchg8P1IGHLpQ==", + "dev": true, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "npm-package-json-lint": ">=3.6.0" + } + }, + "node_modules/@wordpress/postcss-plugins-preset": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-4.10.0.tgz", + "integrity": "sha512-hurPICllpkAPlXbRkye7vsj4W+4LdhJhNoloSzgE9c7gWXmrlBFqk71G+6JrODmj2M9SIxBfth7Myn7VUfr2kQ==", + "dev": true, + "dependencies": { + "@wordpress/base-styles": "^4.17.0", + "autoprefixer": "^10.2.5" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/@wordpress/prettier-config": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-2.9.0.tgz", + "integrity": "sha512-Y6Huuwr0XzVAREsALqQ+Il2SI5da0uTiysNd6Rq4hFPvjolsiFKCZYdniow6VpTXm5iVMGdKQIOoC3awSyTAXA==", + "dev": true, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "prettier": ">=2" + } + }, + "node_modules/@wordpress/scripts": { + "version": "24.6.0", + "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-24.6.0.tgz", + "integrity": "sha512-IbJkihQsjaZz03qyTPcjRF2FWiVVcCm90eL/QutO9cSmZbqfAT1hwNSZIEakiy7GK553k4JirV0eDuMfi4IcWA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.2", + "@svgr/webpack": "^6.2.1", + "@wordpress/babel-preset-default": "^7.6.0", + "@wordpress/browserslist-config": "^5.5.0", + "@wordpress/dependency-extraction-webpack-plugin": "^4.5.0", + "@wordpress/eslint-plugin": "^13.6.0", + "@wordpress/jest-preset-default": "^10.3.0", + "@wordpress/npm-package-json-lint-config": "^4.7.0", + "@wordpress/postcss-plugins-preset": "^4.6.0", + "@wordpress/prettier-config": "^2.5.0", + "@wordpress/stylelint-config": "^21.5.0", + "adm-zip": "^0.5.9", + "babel-jest": "^27.4.5", + "babel-loader": "^8.2.3", + "browserslist": "^4.17.6", + "chalk": "^4.0.0", + "check-node-version": "^4.1.0", + "clean-webpack-plugin": "^3.0.0", + "copy-webpack-plugin": "^10.2.0", + "cross-spawn": "^5.1.0", + "css-loader": "^6.2.0", + "cssnano": "^5.0.7", + "cwd": "^0.10.0", + "dir-glob": "^3.0.1", + "eslint": "^8.3.0", + "expect-puppeteer": "^4.4.0", + "fast-glob": "^3.2.7", + "filenamify": "^4.2.0", + "jest": "^27.4.5", + "jest-dev-server": "^6.0.2", + "jest-environment-node": "^27.4.4", + "markdownlint-cli": "^0.31.1", + "merge-deep": "^3.0.3", + "mini-css-extract-plugin": "^2.5.1", + "minimist": "^1.2.0", + "npm-package-json-lint": "^5.0.0", + "npm-packlist": "^3.0.0", + "postcss": "^8.4.5", + "postcss-loader": "^6.2.1", + "prettier": "npm:wp-prettier@2.6.2", + "puppeteer-core": "^13.2.0", + "react-refresh": "^0.10.0", + "read-pkg-up": "^7.0.1", + "resolve-bin": "^0.4.0", + "sass": "^1.35.2", + "sass-loader": "^12.1.0", + "source-map-loader": "^3.0.0", + "stylelint": "^14.2.0", + "terser-webpack-plugin": "^5.1.4", + "url-loader": "^4.1.1", + "webpack": "^5.47.1", + "webpack-bundle-analyzer": "^4.4.2", + "webpack-cli": "^4.9.1", + "webpack-dev-server": "^4.4.0" + }, + "bin": { + "wp-scripts": "bin/wp-scripts.js" + }, + "engines": { + "node": ">=14", + "npm": ">=6.14.4" + }, + "peerDependencies": { + "react": "^17.0.0", + "react-dom": "^17.0.0" + } + }, + "node_modules/@wordpress/scripts/node_modules/prettier": { + "name": "wp-prettier", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/wp-prettier/-/wp-prettier-2.6.2.tgz", + "integrity": "sha512-AV33EzqiFJ3fj+mPlKABN59YFPReLkDxQnj067Z3uEOeRQf3g05WprL0RDuqM7UBhSRo9W1rMSC2KvZmjE5UOA==", + "dev": true + }, + "node_modules/@wordpress/stylelint-config": { + "version": "21.9.0", + "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-21.9.0.tgz", + "integrity": "sha512-o5TMSX4ww3glf8A6byHnfwodMVB95dH0KoQ4nm5T9KMtsBYNd87HdM9WkVGVsFGb7oZlpL1ydREmlhsQh8sKYw==", + "dev": true, + "dependencies": { + "stylelint-config-recommended": "^6.0.0", + "stylelint-config-recommended-scss": "^5.0.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "stylelint": "^14.2" + } + }, + "node_modules/@wordpress/warning": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.26.0.tgz", + "integrity": "sha512-nGupksgetlQAzF2E0rAHH17v+uKDarBGto9UduUIsiivYqJdJ/x2f3HopxPrGRDqEjOkPXoywQb9haNMU2zVmg==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adm-zip": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", + "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true, + "peerDependencies": { + "ajv": ">=5.0.0" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", + "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", + "dev": true + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/autoprefixer": { + "version": "10.4.15", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.15.tgz", + "integrity": "sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==", + "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" + } + ], + "dependencies": { + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001520", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.3.tgz", + "integrity": "sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", + "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.7" + } + }, + "node_modules/axobject-query": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", + "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dev": true, + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dev": true, + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "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" + } + ] + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/bonjour-service": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.0.tgz", + "integrity": "sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q==", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.21.10", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", + "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", + "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" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001517", + "electron-to-chromium": "^1.4.477", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001527", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001527.tgz", + "integrity": "sha512-YkJi7RwPgWtXVSgK4lG9AHH57nSzvvOp9MesgXmw4Q7n0C3H04L0foHqfxcmSAm5AcWb8dW9AYj2tR7/5GnddQ==", + "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" + } + ] + }, + "node_modules/capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/chalk/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/chalk/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/chalk/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dev": true, + "dependencies": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/check-node-version": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/check-node-version/-/check-node-version-4.2.1.tgz", + "integrity": "sha512-YYmFYHV/X7kSJhuN/QYHUu998n/TRuDe8UenM3+m5NrkiH670lb9ILqHIvBencvJc4SDh+XcbXMR4b+TtubJiw==", + "dev": true, + "dependencies": { + "chalk": "^3.0.0", + "map-values": "^1.0.1", + "minimist": "^1.2.0", + "object-filter": "^1.0.2", + "run-parallel": "^1.1.4", + "semver": "^6.3.0" + }, + "bin": { + "check-node-version": "bin.js" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/check-node-version/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/check-node-version/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/check-node-version/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/check-node-version/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/check-node-version/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/check-node-version/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", + "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "node_modules/clean-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A==", + "dev": true, + "dependencies": { + "@types/webpack": "^4.4.31", + "del": "^4.1.1" + }, + "engines": { + "node": ">=8.9.0" + }, + "peerDependencies": { + "webpack": "*" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone-deep": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", + "integrity": "sha512-we+NuQo2DHhSl+DP6jlUiAhyAjBQrYnpOk15rN6c6JSPScjiCLh8IbSU+VTcph6YS3o7mASE8a0+gbZ7ChLpgg==", + "dev": true, + "dependencies": { + "for-own": "^0.1.3", + "is-plain-object": "^2.0.1", + "kind-of": "^3.0.2", + "lazy-cache": "^1.0.3", + "shallow-clone": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/comment-parser": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", + "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", + "dev": true, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concurrently": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.1.tgz", + "integrity": "sha512-nVraf3aXOpIcNud5pB9M82p1tynmZkrSGQ1p6X/VY8cJ+2LMVqAgXsJxYYefACSHbTYlm92O1xuhdGTjwoEvbQ==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "date-fns": "^2.30.0", + "lodash": "^4.17.21", + "rxjs": "^7.8.1", + "shell-quote": "^1.8.1", + "spawn-command": "0.0.2", + "supports-color": "^8.1.1", + "tree-kill": "^1.2.2", + "yargs": "^17.7.2" + }, + "bin": { + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": "^14.13.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/concurrently/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/concurrently/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/concurrently/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/copy-webpack-plugin": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz", + "integrity": "sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.7", + "glob-parent": "^6.0.1", + "globby": "^12.0.2", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 12.20.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/copy-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/copy-webpack-plugin/node_modules/array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", + "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "dev": true, + "dependencies": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/copy-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-js": { + "version": "3.27.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.27.2.tgz", + "integrity": "sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.27.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.27.2.tgz", + "integrity": "sha512-welaYuF7ZtbYKGrIy7y3eb40d37rG1FvzEOfe7hSLd2iD6duMDqUhRfSvCGyC46HhR6Y8JXXdZ2lnRUMkPBpvg==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.27.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.27.2.tgz", + "integrity": "sha512-Cf2jqAbXgWH3VVzjyaaFkY1EBazxugUepGymDoeteyYr9ByX51kD2jdHZlsEF/xnJMyN3Prua7mQuzwMg6Zc9A==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/cross-spawn/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/cross-spawn/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + }, + "node_modules/css-declaration-sorter": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", + "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-functions-list": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", + "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", + "dev": true, + "engines": { + "node": ">=12.22" + } + }, + "node_modules/css-loader": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", + "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.19", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.14", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", + "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==", + "dev": true, + "dependencies": { + "cssnano-preset-default": "^5.2.13", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.13", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz", + "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.3", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.1", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/csstype": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==", + "dev": true + }, + "node_modules/cwd": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/cwd/-/cwd-0.10.0.tgz", + "integrity": "sha512-YGZxdTTL9lmLkCUTpg4j0zQ7IhRB5ZmqNBbGCl3Tg6MP/d5/6sY7L5mmTjzbc6JKgVZYiqTQTNhPFsbXNGlRaA==", + "dev": true, + "dependencies": { + "find-pkg": "^0.1.2", + "fs-exists-sync": "^0.1.0" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "node_modules/deep-equal": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", + "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.2", + "get-intrinsic": "^1.1.3", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", + "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/devtools-protocol": { + "version": "0.0.981744", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", + "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==", + "dev": true + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "node_modules/dns-packet": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", + "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.509", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.509.tgz", + "integrity": "sha512-G5KlSWY0zzhANtX15tkikHl4WB7zil2Y65oT52EZUL194abjUXBZym12Ht7Bhuwm/G3LJFEqMADyv2Cks56dmg==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dev": true, + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-abstract": { + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz", + "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.1", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-module-lexer": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", + "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", + "dev": true + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.33.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz", + "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.4.1", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz", + "integrity": "sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "27.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.2.1.tgz", + "integrity": "sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "^5.10.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "39.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.8.0.tgz", + "integrity": "sha512-ZwGmk0jJoJD/NILeDRBKrpq/PCgddUdATjeU5JGTqTzKsOWfeaHOnaAwZjuOh7T8EB4hSoZ/9pR4+Qns2ldQVg==", + "dev": true, + "dependencies": { + "@es-joy/jsdoccomment": "~0.36.1", + "comment-parser": "1.3.1", + "debug": "^4.3.4", + "escape-string-regexp": "^4.0.0", + "esquery": "^1.4.0", + "semver": "^7.3.8", + "spdx-expression-parse": "^3.0.1" + }, + "engines": { + "node": "^14 || ^16 || ^17 || ^18 || ^19" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", + "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.20.7", + "aria-query": "^5.1.3", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.6.2", + "axobject-query": "^3.1.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.3.3", + "language-tags": "=1.0.5", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz", + "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "eslint": ">=5.0.0", + "prettier": ">=1.13.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.32.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", + "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.8" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/eslint/node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/execa/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/execa/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/execa/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-tilde": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", + "integrity": "sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/expect-puppeteer": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/expect-puppeteer/-/expect-puppeteer-4.4.0.tgz", + "integrity": "sha512-6Ey4Xy2xvmuQu7z7YQtMsaMV0EHJRpVxIDOd5GRrm04/I3nkTKIutELfECsLp6le+b3SSa3cXhPiw6PgqzxYWA==", + "dev": true + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "dev": true, + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-file-up": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-0.1.3.tgz", + "integrity": "sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==", + "dev": true, + "dependencies": { + "fs-exists-sync": "^0.1.0", + "resolve-dir": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-parent-dir": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.1.tgz", + "integrity": "sha512-o4UcykWV/XN9wm+jMEtWLPlV8RXCZnMhQI6F6OdHeSez7iiJWePw8ijOlskJZMsaQoGR/b7dH6lO02HhaTN7+A==", + "dev": true + }, + "node_modules/find-pkg": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-0.1.2.tgz", + "integrity": "sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==", + "dev": true, + "dependencies": { + "find-file-up": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-process": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.7.tgz", + "integrity": "sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "commander": "^5.1.0", + "debug": "^4.1.1" + }, + "bin": { + "find-process": "bin/find-process.js" + } + }, + "node_modules/find-process/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", + "dev": true, + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "node_modules/fs-exists-sync": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", + "integrity": "sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-extra": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", + "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs-extra/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/global-modules": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", + "integrity": "sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==", + "dev": true, + "dependencies": { + "global-prefix": "^0.1.4", + "is-windows": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", + "integrity": "sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.0", + "ini": "^1.3.4", + "is-windows": "^0.2.0", + "which": "^1.2.12" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "dev": true + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "dev": true, + "dependencies": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", + "dev": true + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/html-tags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", + "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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" + } + ] + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz", + "integrity": "sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/immutable": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.4.tgz", + "integrity": "sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/irregular-plurals": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.4.0.tgz", + "integrity": "sha512-YXxECO/W6N9aMBVKMKKZ8TXESgq7EFrp3emCGGUcrYY1cgJIeZjoB75MTu8qi+NAKntS9NwPU8VdcQ3r6E6aWQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", + "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "dev": true, + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-dev-server": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-6.2.0.tgz", + "integrity": "sha512-ZWh8CuvxwjhYfvw4tGeftziqIvw/26R6AG3OTgNTQeXul8aZz48RQjDpnlDwnWX53jxJJl9fcigqIdSU5lYZuw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "cwd": "^0.10.0", + "find-process": "^1.4.7", + "prompts": "^2.4.2", + "spawnd": "^6.2.0", + "tree-kill": "^1.2.2", + "wait-on": "^6.0.1" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dev": true, + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dev": true, + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jest/node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dev": true, + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/joi": { + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.7.0.tgz", + "integrity": "sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/js-sdsl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz", + "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==", + "dev": true, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json2php": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.5.tgz", + "integrity": "sha512-jWpsGAYlQDKOjJcyq3rYaxcZ+5YMhZIKHKTjdIKJPI9zLSX+yRWHSSwtV8hvIg7YMhbKkgPO669Ve2ZgFK5C7w==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonfile/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.5", + "object.assign": "^4.1.3" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/known-css-properties": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz", + "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==", + "dev": true + }, + "node_modules/language-subtag-registry": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", + "dev": true + }, + "node_modules/language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", + "dev": true, + "dependencies": { + "language-subtag-registry": "~0.3.2" + } + }, + "node_modules/lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dev": true, + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/map-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-values/-/map-values-1.0.1.tgz", + "integrity": "sha512-BbShUnr5OartXJe1GeccAWtfro11hhgNJg6G9/UtWKjVGvV5U4C09cg5nk8JUevhXODaXY+hQ3xxMUKSs62ONQ==", + "dev": true + }, + "node_modules/markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/markdownlint": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.25.1.tgz", + "integrity": "sha512-AG7UkLzNa1fxiOv5B+owPsPhtM4D6DoODhsJgiaNg1xowXovrYgOnLqAgOOFQpWOlHFVQUzjMY5ypNNTeov92g==", + "dev": true, + "dependencies": { + "markdown-it": "12.3.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/markdownlint-cli": { + "version": "0.31.1", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.31.1.tgz", + "integrity": "sha512-keIOMwQn+Ch7MoBwA+TdkyVMuxAeZFEGmIIlvwgV0Z1TGS5MxPnRr29XCLhkNzCHU+uNKGjU+VEjLX+Z9kli6g==", + "dev": true, + "dependencies": { + "commander": "~9.0.0", + "get-stdin": "~9.0.0", + "glob": "~7.2.0", + "ignore": "~5.2.0", + "js-yaml": "^4.1.0", + "jsonc-parser": "~3.0.0", + "markdownlint": "~0.25.1", + "markdownlint-rule-helpers": "~0.16.0", + "minimatch": "~3.0.5", + "run-con": "~1.2.10" + }, + "bin": { + "markdownlint": "markdownlint.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/markdownlint-cli/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/markdownlint-cli/node_modules/commander": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", + "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/markdownlint-cli/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/markdownlint-cli/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/markdownlint-rule-helpers": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.16.0.tgz", + "integrity": "sha512-oEacRUVeTJ5D5hW1UYd2qExYI0oELdYK72k1TKGvIeYJIbqQWAz476NAc7LNixSySUhcNl++d02DvX0ccDk9/w==", + "dev": true + }, + "node_modules/mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.13.tgz", + "integrity": "sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/meow": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz", + "integrity": "sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "^4.0.2", + "normalize-package-data": "^2.5.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.13.1", + "yargs-parser": "^18.1.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/merge-deep": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.3.tgz", + "integrity": "sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "clone-deep": "^0.2.4", + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz", + "integrity": "sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minimist-options/node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/minimist-options/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==", + "dev": true, + "dependencies": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-object/node_modules/for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "node_modules/npm-package-json-lint": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/npm-package-json-lint/-/npm-package-json-lint-5.4.2.tgz", + "integrity": "sha512-DH1MSvYvm+cuQFXcPehIIu/WiYzMYs7BOxlhOOFHaH2SNrA+P2uDtTEe5LOG90Ci7PTwgF/dCmSKM2HWTgWXNA==", + "dev": true, + "dependencies": { + "ajv": "^6.12.6", + "ajv-errors": "^1.0.1", + "chalk": "^4.1.2", + "cosmiconfig": "^7.0.1", + "debug": "^4.3.2", + "globby": "^11.0.4", + "ignore": "^5.1.9", + "is-plain-obj": "^3.0.0", + "jsonc-parser": "^3.0.0", + "log-symbols": "^4.1.0", + "meow": "^6.1.1", + "plur": "^4.0.0", + "semver": "^7.3.5", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "npmPkgJsonLint": "src/cli.js" + }, + "engines": { + "node": ">=10.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/npm-package-json-lint/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-package-json-lint/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-package-json-lint/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/npm-packlist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz", + "integrity": "sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==", + "dev": true, + "dependencies": { + "glob": "^7.1.6", + "ignore-walk": "^4.0.1", + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "npm-packlist": "bin/index.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", + "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-filter": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/object-filter/-/object-filter-1.0.2.tgz", + "integrity": "sha512-NahvP2vZcy1ZiiYah30CEPw0FpDcSkSePJBMpzl5EQgCmISijiGuJm3SPYp7U+Lf2TljyaIw3E5EgkEx/TNEVA==", + "dev": true + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", + "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/plur": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz", + "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==", + "dev": true, + "dependencies": { + "irregular-plurals": "^3.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss": { + "version": "8.4.29", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", + "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", + "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" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-cli": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-10.1.0.tgz", + "integrity": "sha512-Zu7PLORkE9YwNdvOeOVKPmWghprOtjFQU3srMUGbdz3pHJiFh7yZ4geiZFMkjMfB0mtTFR3h8RemR62rPkbOPA==", + "dev": true, + "dependencies": { + "chokidar": "^3.3.0", + "dependency-graph": "^0.11.0", + "fs-extra": "^11.0.0", + "get-stdin": "^9.0.0", + "globby": "^13.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^4.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^5.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-cli/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/postcss-cli/node_modules/globby": { + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz", + "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss-cli/node_modules/globby/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss-cli/node_modules/slash": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.0.0.tgz", + "integrity": "sha512-n6KkmvKS0623igEVj3FF0OZs1gYYJ0o0Hj939yc1fyxl2xt+xYpLnzJB6xBSqOfV9ZFLEWodBBN/heZJahuIJQ==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss-cli/node_modules/yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/postcss-cli/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz", + "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dev": true, + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-loader/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", + "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dev": true, + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dev": true, + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dev": true, + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz", + "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reporter": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", + "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", + "dev": true + }, + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-scss": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.6.tgz", + "integrity": "sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + } + ], + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.19" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/puppeteer-core": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.7.0.tgz", + "integrity": "sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q==", + "dev": true, + "dependencies": { + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.981744", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "pkg-dir": "4.2.0", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.5.0" + }, + "engines": { + "node": ">=10.18.1" + } + }, + "node_modules/puppeteer-core/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/puppeteer-core/node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "node_modules/react-refresh": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.10.0.tgz", + "integrity": "sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "dependencies": { + "resolve": "^1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", + "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", + "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requireindex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", + "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", + "dev": true, + "engines": { + "node": ">=0.10.5" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-bin": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/resolve-bin/-/resolve-bin-0.4.3.tgz", + "integrity": "sha512-9u8TMpc+SEHXxQXblXHz5yRvRZERkCZimFN9oz85QI3uhkh7nqfjm6OGTLg+8vucpXGcY4jLK6WkylPmt7GSvw==", + "dev": true, + "dependencies": { + "find-parent-dir": "~0.3.0" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", + "integrity": "sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA==", + "dev": true, + "dependencies": { + "expand-tilde": "^1.2.2", + "global-modules": "^0.2.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rtlcss": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.1.0.tgz", + "integrity": "sha512-W+N4hh0nVqVrrn3mRkHakxpB+c9cQ4CRT67O39kgA+1DjyhrdsqyCqIuHXyvWaXn4/835n+oX3fYJCi4+G/06A==", + "dev": true, + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0", + "postcss": "^8.4.21", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "rtlcss": "bin/rtlcss.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/run-con": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.11.tgz", + "integrity": "sha512-NEMGsUT+cglWkzEr4IFK21P4Jca45HqiAbIIZIBdX5+UZTB24Mb/21iNGgz9xZa8tL6vbW7CXmq7MFN42+VjNQ==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~3.0.0", + "minimist": "^1.2.6", + "strip-json-comments": "~3.1.1" + }, + "bin": { + "run-con": "cli.js" + } + }, + "node_modules/run-con/node_modules/ini": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", + "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sass": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.58.0.tgz", + "integrity": "sha512-PiMJcP33DdKtZ/1jSjjqVIKihoDc6yWmYr9K/4r3fVVIEDAluD0q7XZiRKrNJcPK3qkLRF/79DND1H5q1LBjgg==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "dev": true, + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "dev": true, + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shallow-clone": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", + "integrity": "sha512-J1zdXCky5GmNnuauESROVu31MQSnLoYvlyEn6j2Ztk6Q5EHFIhxkMhYcv6vuDzl2XEzoRr856QwzMgWM/TmZgw==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.1", + "kind-of": "^2.0.1", + "lazy-cache": "^0.2.3", + "mixin-object": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shallow-clone/node_modules/kind-of": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", + "integrity": "sha512-0u8i1NZ/mg0b+W3MGGw5I7+6Eib2nx72S/QvXa0hYjEkjTknYmEYQJwGu3mLC0BrhtJjtQafTkyRUQ75Kx0LVg==", + "dev": true, + "dependencies": { + "is-buffer": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shallow-clone/node_modules/lazy-cache": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", + "integrity": "sha512-gkX52wvU/R8DVMMt78ATVPFMJqfW8FPz1GZ1sVHBVQHmu/WvhIWE4cE1GBzhJNFicDeYhnwp6Rl35BcAIM3YOQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sirv": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", + "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-loader/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spawn-command": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", + "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", + "dev": true + }, + "node_modules/spawnd": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-6.2.0.tgz", + "integrity": "sha512-qX/I4lQy4KgVEcNle0kuc4FxFWHISzBhZW1YemPfwmrmQjyZmfTK/OhBKkhrD2ooAaFZEm1maEBLE6/6enwt+g==", + "dev": true, + "dependencies": { + "exit": "^0.1.2", + "signal-exit": "^3.0.7", + "tree-kill": "^1.2.2" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "dev": true + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dev": true, + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", + "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", + "dev": true + }, + "node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/stylelint": { + "version": "14.16.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.16.1.tgz", + "integrity": "sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==", + "dev": true, + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "balanced-match": "^2.0.0", + "colord": "^2.9.3", + "cosmiconfig": "^7.1.0", + "css-functions-list": "^3.1.0", + "debug": "^4.3.4", + "fast-glob": "^3.2.12", + "fastest-levenshtein": "^1.0.16", + "file-entry-cache": "^6.0.1", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.2.0", + "ignore": "^5.2.1", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.26.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.19", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^2.3.0", + "svg-tags": "^1.0.0", + "table": "^6.8.1", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^4.0.2" + }, + "bin": { + "stylelint": "bin/stylelint.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + } + }, + "node_modules/stylelint-a11y": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stylelint-a11y/-/stylelint-a11y-1.2.3.tgz", + "integrity": "sha512-S/iiKFUsYBfa4suxP0pYQqoPB9R1+SnvxVuzHHlz9al0IWxLZzXlnZEqEez0zNOhVh5iO3rATUmDnbZE5wm/pQ==", + "dev": true, + "engines": { + "node": ">=8.7.0" + }, + "peerDependencies": { + "stylelint": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-6.0.0.tgz", + "integrity": "sha512-ZorSSdyMcxWpROYUvLEMm0vSZud2uB7tX1hzBZwvVY9SV/uly4AvvJPPhCcymZL3fcQhEQG5AELmrxWqtmzacw==", + "dev": true, + "peerDependencies": { + "stylelint": "^14.0.0" + } + }, + "node_modules/stylelint-config-recommended-scss": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-5.0.2.tgz", + "integrity": "sha512-b14BSZjcwW0hqbzm9b0S/ScN2+3CO3O4vcMNOw2KGf8lfVSwJ4p5TbNEXKwKl1+0FMtgRXZj6DqVUe/7nGnuBg==", + "dev": true, + "dependencies": { + "postcss-scss": "^4.0.2", + "stylelint-config-recommended": "^6.0.0", + "stylelint-scss": "^4.0.0" + }, + "peerDependencies": { + "stylelint": "^14.0.0" + } + }, + "node_modules/stylelint-scss": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.3.0.tgz", + "integrity": "sha512-GvSaKCA3tipzZHoz+nNO7S02ZqOsdBzMiCx9poSmLlb3tdJlGddEX/8QzCOD8O7GQan9bjsvLMsO5xiw6IhhIQ==", + "dev": true, + "dependencies": { + "lodash": "^4.17.21", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-selector-parser": "^6.0.6", + "postcss-value-parser": "^4.1.0" + }, + "peerDependencies": { + "stylelint": "^14.5.1" + } + }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "node_modules/stylelint/node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/stylelint/node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stylelint/node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stylelint/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stylelint/node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/stylelint/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stylelint/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stylelint/node_modules/meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stylelint/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stylelint/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/stylelint/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "dev": true + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.19.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.4.tgz", + "integrity": "sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "dev": true + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "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" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true + } + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dev": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/wait-on": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.1.tgz", + "integrity": "sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==", + "dev": true, + "dependencies": { + "axios": "^0.25.0", + "joi": "^17.6.0", + "lodash": "^4.17.21", + "minimist": "^1.2.5", + "rxjs": "^7.5.4" + }, + "bin": { + "wait-on": "bin/wait-on" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.88.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.2.tgz", + "integrity": "sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.7.0.tgz", + "integrity": "sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==", + "dev": true, + "dependencies": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack-cli": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", + "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.2.0", + "@webpack-cli/info": "^1.5.0", + "@webpack-cli/serve": "^1.7.0", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "cross-spawn": "^7.0.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "@webpack-cli/migrate": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/webpack-cli/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", + "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/webpack-dev-server/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", + "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-merge/node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-merge/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-merge/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-merge/node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, "dependencies": { "@ampproject/remapping": { "version": "2.2.0", @@ -1228,12 +17877,12 @@ } }, "@babel/runtime": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", - "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.15.tgz", + "integrity": "sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==", "dev": true, "requires": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" } }, "@babel/template": { @@ -1705,9 +18354,9 @@ "dev": true }, "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.3.0", @@ -1715,9 +18364,9 @@ }, "dependencies": { "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, "requires": { "@jridgewell/set-array": "^1.0.1", @@ -2084,9 +18733,9 @@ } }, "@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", "dev": true }, "@types/express": { @@ -2432,9 +19081,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -2513,9 +19162,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -2555,9 +19204,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -2590,148 +19239,148 @@ } }, "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", "dev": true, "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", "dev": true }, "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", "dev": true }, "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", "@xtuc/long": "4.2.2" } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" } }, "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "dev": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" } }, "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" } }, "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/ast": "1.11.6", "@xtuc/long": "4.2.2" } }, @@ -2789,9 +19438,9 @@ "dev": true }, "@wordpress/browserslist-config": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-5.9.0.tgz", - "integrity": "sha512-VC1QK741SRfrfsq2SdWHlkuDo7ZSXD7LFbK0dU6lOnuUt3f01HTU05NfcrC6uWCaoMP87MPDCQVaWTygNSFirQ==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-5.24.0.tgz", + "integrity": "sha512-6QYbEVeIZxak8Bt0XCQ7msF9QcVjWqdREgDXVcWPD907WdKC5Hmi8ZtY63mY5OouKn5Cnxg7VJRv1AWb9eT0/g==", "dev": true }, "@wordpress/dependency-extraction-webpack-plugin": { @@ -3046,9 +19695,9 @@ } }, "acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", "dev": true }, "acorn-jsx": { @@ -3296,25 +19945,17 @@ "dev": true }, "autoprefixer": { - "version": "10.4.13", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", - "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "version": "10.4.15", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.15.tgz", + "integrity": "sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==", "dev": true, "requires": { - "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001426", + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001520", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" - }, - "dependencies": { - "caniuse-lite": { - "version": "1.0.30001450", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001450.tgz", - "integrity": "sha512-qMBmvmQmFXaSxexkjjfMvD5rnDL0+m+dUMZKoDYsGG8iZN29RuYh9eRoMvKsT6uMAWlyUUGDEQGJJYjzCIO9ew==", - "dev": true - } } }, "available-typed-arrays": { @@ -3601,15 +20242,15 @@ "dev": true }, "browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.21.10", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", + "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001517", + "electron-to-chromium": "^1.4.477", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.11" } }, "bser": { @@ -3713,9 +20354,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001410", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001410.tgz", - "integrity": "sha512-QoblBnuE+rG0lc3Ur9ltP5q47lbguipa/ncNMyyGuqPk44FxbScWAeEO+k5fSQ8WekdAK4mWqNs1rADDAiN5xQ==", + "version": "1.0.30001527", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001527.tgz", + "integrity": "sha512-YkJi7RwPgWtXVSgK4lG9AHH57nSzvvOp9MesgXmw4Q7n0C3H04L0foHqfxcmSAm5AcWb8dW9AYj2tR7/5GnddQ==", "dev": true }, "capital-case": { @@ -4082,20 +20723,20 @@ "dev": true }, "concurrently": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.6.0.tgz", - "integrity": "sha512-BKtRgvcJGeZ4XttiDiNcFiRlxoAeZOseqUvyYRUp/Vtd+9p1ULmeoSqGsDA+2ivdeDFpqrJvGvmI+StKfKl5hw==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.1.tgz", + "integrity": "sha512-nVraf3aXOpIcNud5pB9M82p1tynmZkrSGQ1p6X/VY8cJ+2LMVqAgXsJxYYefACSHbTYlm92O1xuhdGTjwoEvbQ==", "dev": true, "requires": { - "chalk": "^4.1.0", - "date-fns": "^2.29.1", + "chalk": "^4.1.2", + "date-fns": "^2.30.0", "lodash": "^4.17.21", - "rxjs": "^7.0.0", - "shell-quote": "^1.7.3", - "spawn-command": "^0.0.2-1", - "supports-color": "^8.1.0", + "rxjs": "^7.8.1", + "shell-quote": "^1.8.1", + "spawn-command": "0.0.2", + "supports-color": "^8.1.1", "tree-kill": "^1.2.2", - "yargs": "^17.3.1" + "yargs": "^17.7.2" }, "dependencies": { "cliui": { @@ -4125,9 +20766,9 @@ } }, "yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "requires": { "cliui": "^8.0.1", @@ -4403,9 +21044,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -4582,10 +21223,13 @@ } }, "date-fns": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", - "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==", - "dev": true + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.21.0" + } }, "debug": { "version": "4.3.4", @@ -4913,9 +21557,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.258", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.258.tgz", - "integrity": "sha512-vutF4q0dTUXoAFI7Vbtdwen/BJVwPgj8GRg/SElOodfH7VTX+svUe62A5BG41QRQGk5HsZPB0M++KH1lAlOt0A==", + "version": "1.4.509", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.509.tgz", + "integrity": "sha512-G5KlSWY0zzhANtX15tkikHl4WB7zil2Y65oT52EZUL194abjUXBZym12Ht7Bhuwm/G3LJFEqMADyv2Cks56dmg==", "dev": true }, "emittery": { @@ -4952,9 +21596,9 @@ } }, "enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", "dev": true, "requires": { "graceful-fs": "^4.2.4", @@ -5050,9 +21694,9 @@ } }, "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", + "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", "dev": true }, "es-set-tostringtag": { @@ -5453,9 +22097,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -7587,9 +24231,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -8423,9 +25067,9 @@ } }, "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "dev": true }, "natural-compare": { @@ -8508,9 +25152,9 @@ "dev": true }, "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", "dev": true }, "normalize-package-data": { @@ -8526,9 +25170,9 @@ }, "dependencies": { "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true } } @@ -8599,9 +25243,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -9070,12 +25714,12 @@ } }, "postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "version": "8.4.29", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", + "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", "dev": true, "requires": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } @@ -9228,9 +25872,9 @@ }, "dependencies": { "yaml": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", - "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz", + "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==", "dev": true } } @@ -9256,9 +25900,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -9956,9 +26600,9 @@ } }, "regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", "dev": true }, "regenerator-transform": { @@ -10129,14 +26773,14 @@ } }, "rtlcss": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.0.0.tgz", - "integrity": "sha512-j6oypPP+mgFwDXL1JkLCtm6U/DQntMUqlv5SOhpgHhdIE+PmBcjrtAHIpXfbIup47kD5Sgja9JDsDF1NNOsBwQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.1.0.tgz", + "integrity": "sha512-W+N4hh0nVqVrrn3mRkHakxpB+c9cQ4CRT67O39kgA+1DjyhrdsqyCqIuHXyvWaXn4/835n+oX3fYJCi4+G/06A==", "dev": true, "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0", - "postcss": "^8.4.6", + "postcss": "^8.4.21", "strip-json-comments": "^3.1.1" } }, @@ -10170,20 +26814,12 @@ } }, "rxjs": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz", - "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, "requires": { "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "dev": true - } } }, "safe-buffer": { @@ -10249,9 +26885,9 @@ } }, "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -10275,9 +26911,9 @@ } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true }, "send": { @@ -10477,9 +27113,9 @@ "dev": true }, "shell-quote": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.0.tgz", - "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true }, "side-channel": { @@ -10633,9 +27269,9 @@ } }, "spawn-command": { - "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==", + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", + "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", "dev": true }, "spawnd": { @@ -10758,6 +27394,15 @@ "internal-slot": "^1.0.4" } }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, "string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -10825,15 +27470,6 @@ "es-abstract": "^1.20.4" } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -11049,9 +27685,9 @@ "dev": true }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -11267,13 +27903,13 @@ } }, "terser": { - "version": "5.16.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.3.tgz", - "integrity": "sha512-v8wWLaS/xt3nE9dgKEWhNUFP6q4kngO5B8eYFUuebsu7Dw/UNAnpUod6UHo04jSSkv8TzKHjZDSd7EXdDQAl8Q==", + "version": "5.19.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.4.tgz", + "integrity": "sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g==", "dev": true, "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -11287,16 +27923,16 @@ } }, "terser-webpack-plugin": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", - "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.14", + "@jridgewell/trace-mapping": "^0.3.17", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" } }, "test-exclude": { @@ -11374,9 +28010,9 @@ "dev": true }, "tough-cookie": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dev": true, "requires": { "psl": "^1.1.33", @@ -11581,9 +28217,9 @@ "dev": true }, "update-browserslist-db": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", - "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, "requires": { "escalade": "^3.1.1", @@ -11755,22 +28391,22 @@ "dev": true }, "webpack": { - "version": "5.75.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", - "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "version": "5.88.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.2.tgz", + "integrity": "sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", + "acorn-import-assertions": "^1.9.0", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -11779,9 +28415,9 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", + "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", + "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" } @@ -12166,9 +28802,9 @@ "dev": true }, "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true }, "wrap-ansi": { diff --git a/src/wp-content/themes/twentytwenty/package.json b/src/wp-content/themes/twentytwenty/package.json index 67a578136a158..cea35e62b6e6f 100644 --- a/src/wp-content/themes/twentytwenty/package.json +++ b/src/wp-content/themes/twentytwenty/package.json @@ -14,13 +14,13 @@ "url": "https://core.trac.wordpress.org/" }, "devDependencies": { - "@wordpress/browserslist-config": "^5.9.0", + "@wordpress/browserslist-config": "^5.24.0", "@wordpress/scripts": "^24.6.0", - "autoprefixer": "^10.4.13", - "concurrently": "^7.6.0", - "postcss": "^8.4.21", + "autoprefixer": "^10.4.15", + "concurrently": "^8.2.1", + "postcss": "^8.4.29", "postcss-cli": "^10.1.0", - "rtlcss": "^4.0.0", + "rtlcss": "^4.1.0", "stylelint-a11y": "^1.2.3" }, "browserslist": [ diff --git a/src/wp-content/themes/twentytwentyone/.npmrc b/src/wp-content/themes/twentytwentyone/.npmrc new file mode 100644 index 0000000000000..80bcbed90c4f2 --- /dev/null +++ b/src/wp-content/themes/twentytwentyone/.npmrc @@ -0,0 +1 @@ +legacy-peer-deps = true diff --git a/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css b/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css index b956827cad405..bd2b26dc976af 100644 --- a/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css +++ b/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css @@ -1507,6 +1507,11 @@ pre.wp-block-preformatted { color: currentColor; border-color: currentColor; position: relative; + font-weight: 700; + font-style: normal; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + letter-spacing: normal; + line-height: 1.3; } .wp-block-pullquote blockquote::before { @@ -1521,20 +1526,14 @@ pre.wp-block-preformatted { } .wp-block-pullquote p { - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 2rem; - font-style: normal; - font-weight: 700; - letter-spacing: normal; - line-height: 1.3; + font-family: inherit; + font-size: inherit; + font-style: inherit; + font-weight: inherit; + letter-spacing: inherit; + line-height: inherit; margin: 0; } -@media only screen and (min-width: 652px) { - - .wp-block-pullquote p { - font-size: 2rem; - } -} .wp-block-pullquote a { color: currentColor; @@ -1625,6 +1624,7 @@ pre.wp-block-preformatted { position: relative; border-left: none; margin: 30px auto 30px 25px; + padding-left: 1em; } .wp-block-quote p { @@ -1643,7 +1643,7 @@ pre.wp-block-preformatted { content: "“"; font-size: 1.25rem; line-height: 1.7; - left: -12px; + left: 8px; } .wp-block-quote .wp-block-quote__citation { diff --git a/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css.map b/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css.map index 9b1e78a55fb14..6d110c5fab406 100644 --- a/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css.map +++ b/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css.map @@ -1 +1 @@ -{"version":3,"sources":["style-editor.css","../sass/style-editor.scss","../sass/01-settings/global.scss","../sass/03-generic/breakpoints.scss","../sass/04-elements/blockquote.scss","../sass/04-elements/media.scss","../sass/04-elements/forms-editor.scss","../sass/04-elements/links.scss","../sass/05-blocks/button/_editor.scss","../sass/02-tools/mixins.scss","../sass/05-blocks/code/_editor.scss","../sass/05-blocks/cover/_editor.scss","../sass/05-blocks/columns/_editor.scss","../sass/05-blocks/file/_editor.scss","../sass/05-blocks/gallery/_editor.scss","../sass/05-blocks/group/_editor.scss","../sass/05-blocks/heading/_editor.scss","../sass/05-blocks/html/_editor.scss","../sass/05-blocks/image/_editor.scss","../sass/05-blocks/latest-posts/_editor.scss","../sass/05-blocks/legacy/_editor.scss","../sass/05-blocks/list/_editor.scss","../sass/05-blocks/media-text/_editor.scss","../sass/05-blocks/navigation/_editor.scss","../sass/05-blocks/paragraph/_editor.scss","../sass/05-blocks/preformatted/_editor.scss","../sass/05-blocks/pullquote/_editor.scss","../sass/05-blocks/query-loop/_editor.scss","../sass/05-blocks/quote/_editor.scss","../sass/05-blocks/rss/_editor.scss","../sass/05-blocks/search/_editor.scss","../sass/05-blocks/separator/_editor.scss","../sass/05-blocks/social-icons/_editor.scss","../sass/05-blocks/table/_editor.scss","../sass/05-blocks/tag-clould/_editor.scss","../sass/05-blocks/verse/_editor.scss","../sass/05-blocks/utilities/_font-sizes.scss","../sass/05-blocks/utilities/_editor.scss","../sass/06-components/editor.scss","../sass/07-utilities/color-palette.scss"],"names":[],"mappings":"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C25DD;AuC/5DC;EAEC,yBAAA;AvCi6DF;;AuC55DA;EAMC,yBAAA;AvC05DD;AuC95DC;EAEC,yBAAA;AvCg6DF;;AuC35DA;EAMC,yBAAA;AvCy5DD;AuC75DC;EAEC,yBAAA;AvC+5DF;;AuC15DA;EAMC,yBAAA;AvCw5DD;AuC55DC;EAEC,yBAAA;AvC85DF;;AuCz5DA;EAMC,yBAAA;AvCu5DD;AuC35DC;EAEC,yBAAA;AvC65DF;;AuCx5DA;EAMC,yBAAA;AvCs5DD;AuC15DC;EAEC,yBAAA;AvC45DF;;AuCv5DA;EAMC,yBAAA;AvCq5DD;AuCz5DC;EAEC,yBAAA;AvC25DF;;AuCt5DA;EAMC,yBAAA;AvCo5DD;AuCx5DC;EAEC,yBAAA;AvC05DF;;AuCr5DA;EAMC,yBAAA;AvCm5DD;AuCv5DC;EAEC,yBAAA;AvCy5DF;;AuCp5DA;EAMC,sBAAA;AvCk5DD;AuCt5DC;EAEC,sBAAA;AvCw5DF;;AuCj5DC;EAGG,WAAA;AvCk5DJ;;AuCr5DC;EAGG,WAAA;AvCk5DJ;;AuCr5DC;EAGG,WAAA;AvCk5DJ;AuC/4DE;EAMC;AvC64DH;AuCn5DE;EAMC;AvC64DH;AuCn5DE;EAMC;AvC64DH;AuCz4DC;EAOG,cAAA;AvCw4DJ;AuC/4DC;EAOG,cAAA;AvCw4DJ;AuC/4DC;EAOG,cAAA;AvCw4DJ;AuC/4DC;EAOG,cAAA;AvCw4DJ;AuC/4DC;EAOG,cAAA;AvCw4DJ;AuC/4DC;EAOG,cAAA;AvCw4DJ;AuC/4DC;EAOG,cAAA;AvCw4DJ;AuCr4DE;EAMC;AvCm4DH;AuCz4DE;EAMC;AvCm4DH;AuCz4DE;EAMC;AvCm4DH;AuCz4DE;EAMC;AvCm4DH;AuCz4DE;EAMC;AvCm4DH;AuCz4DE;EAMC;AvCm4DH;AuCz4DE;EAMC;AvCm4DH;;AuC73DA;EACC,qDAAA;AvCm4DD;;AuCh4DA;EACC,qDAAA;AvCm4DD;;AuCh4DA;EACC,qDAAA;AvCm4DD;;AuCh4DA;EACC,qDAAA;AvCm4DD;;AuCh4DA;EACC,qDAAA;AvCm4DD;;AuCh4DA;EACC,qDAAA;AvCm4DD;;AuCh4DA;EACC,qDAAA;AvCm4DD;;AuCh4DA;EACC,qDAAA;AvCm4DD","file":"ie-editor.css"} \ No newline at end of file +{"version":3,"sources":["style-editor.css","../sass/style-editor.scss","../sass/01-settings/global.scss","../sass/03-generic/breakpoints.scss","../sass/04-elements/blockquote.scss","../sass/04-elements/media.scss","../sass/04-elements/forms-editor.scss","../sass/04-elements/links.scss","../sass/05-blocks/button/_editor.scss","../sass/02-tools/mixins.scss","../sass/05-blocks/code/_editor.scss","../sass/05-blocks/cover/_editor.scss","../sass/05-blocks/columns/_editor.scss","../sass/05-blocks/file/_editor.scss","../sass/05-blocks/gallery/_editor.scss","../sass/05-blocks/group/_editor.scss","../sass/05-blocks/heading/_editor.scss","../sass/05-blocks/html/_editor.scss","../sass/05-blocks/image/_editor.scss","../sass/05-blocks/latest-posts/_editor.scss","../sass/05-blocks/legacy/_editor.scss","../sass/05-blocks/list/_editor.scss","../sass/05-blocks/media-text/_editor.scss","../sass/05-blocks/navigation/_editor.scss","../sass/05-blocks/paragraph/_editor.scss","../sass/05-blocks/preformatted/_editor.scss","../sass/05-blocks/pullquote/_editor.scss","../sass/05-blocks/query-loop/_editor.scss","../sass/05-blocks/quote/_editor.scss","../sass/05-blocks/rss/_editor.scss","../sass/05-blocks/search/_editor.scss","../sass/05-blocks/separator/_editor.scss","../sass/05-blocks/social-icons/_editor.scss","../sass/05-blocks/table/_editor.scss","../sass/05-blocks/tag-clould/_editor.scss","../sass/05-blocks/verse/_editor.scss","../sass/05-blocks/utilities/_font-sizes.scss","../sass/05-blocks/utilities/_editor.scss","../sass/06-components/editor.scss","../sass/07-utilities/color-palette.scss"],"names":[],"mappings":"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AAA;AvCw6DF;;AuCn6DA;EAMC,yBAAA;AvCi6DD;AuCr6DC;EAEC,yBAAA;AvCu6DF;;AuCl6DA;EAMC,yBAAA;AvCg6DD;AuCp6DC;EAEC,yBAAA;AvCs6DF;;AuCj6DA;EAMC,yBAAA;AvC+5DD;AuCn6DC;EAEC,yBAAA;AvCq6DF;;AuCh6DA;EAMC,yBAAA;AvC85DD;AuCl6DC;EAEC,yBAAA;AvCo6DF;;AuC/5DA;EAMC,yBAAA;AvC65DD;AuCj6DC;EAEC,yBAAA;AvCm6DF;;AuC95DA;EAMC,yBAAA;AvC45DD;AuCh6DC;EAEC,yBAAA;AvCk6DF;;AuC75DA;EAMC,yBAAA;AvC25DD;AuC/5DC;EAEC,yBAAA;AvCi6DF;;AuC55DA;EAMC,yBAAA;AvC05DD;AuC95DC;EAEC,yBAAA;AvCg6DF;;AuC35DA;EAMC,yBAAA;AvCy5DD;AuC75DC;EAEC,yBAAA;AvC+5DF;;AuC15DA;EAMC,sBAAA;AvCw5DD;AuC55DC;EAEC,sBAAA;AvC85DF;;AuCv5DC;EAGG,WAAA;AvCw5DJ;;AuC35DC;EAGG,WAAA;AvCw5DJ;;AuC35DC;EAGG,WAAA;AvCw5DJ;AuCr5DE;EAMC;AvCm5DH;AuCz5DE;EAMC;AvCm5DH;AuCz5DE;EAMC;AvCm5DH;AuC/4DC;EAOG,cAAA;AvC84DJ;AuCr5DC;EAOG,cAAA;AvC84DJ;AuCr5DC;EAOG,cAAA;AvC84DJ;AuCr5DC;EAOG,cAAA;AvC84DJ;AuCr5DC;EAOG,cAAA;AvC84DJ;AuCr5DC;EAOG,cAAA;AvC84DJ;AuCr5DC;EAOG,cAAA;AvC84DJ;AuC34DE;EAMC;AvCy4DH;AuC/4DE;EAMC;AvCy4DH;AuC/4DE;EAMC;AvCy4DH;AuC/4DE;EAMC;AvCy4DH;AuC/4DE;EAMC;AvCy4DH;AuC/4DE;EAMC;AvCy4DH;AuC/4DE;EAMC;AvCy4DH;;AuCn4DA;EACC,qDAAA;AvCy4DD;;AuCt4DA;EACC,qDAAA;AvCy4DD;;AuCt4DA;EACC,qDAAA;AvCy4DD;;AuCt4DA;EACC,qDAAA;AvCy4DD;;AuCt4DA;EACC,qDAAA;AvCy4DD;;AuCt4DA;EACC,qDAAA;AvCy4DD;;AuCt4DA;EACC,qDAAA;AvCy4DD;;AuCt4DA;EACC,qDAAA;AvCy4DD","file":"ie-editor.css"} \ No newline at end of file diff --git a/src/wp-content/themes/twentytwentyone/assets/css/ie.css b/src/wp-content/themes/twentytwentyone/assets/css/ie.css index 39fa0b909523a..3d8d605610616 100644 --- a/src/wp-content/themes/twentytwentyone/assets/css/ie.css +++ b/src/wp-content/themes/twentytwentyone/assets/css/ie.css @@ -3655,6 +3655,11 @@ pre.wp-block-preformatted { color: currentColor; border-color: currentColor; position: relative; + font-weight: 700; + font-style: normal; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + letter-spacing: normal; + line-height: 1.3; /** * Block Options @@ -3673,20 +3678,14 @@ pre.wp-block-preformatted { } .wp-block-pullquote p { - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - font-size: 2rem; - font-style: normal; - font-weight: 700; - letter-spacing: normal; - line-height: 1.3; + font-family: inherit; + font-size: inherit; + font-style: inherit; + font-weight: inherit; + letter-spacing: inherit; + line-height: inherit; margin: 0; } -@media only screen and (min-width: 652px) { - - .wp-block-pullquote p { - font-size: 2rem; - } -} .wp-block-pullquote a { color: currentColor; diff --git a/src/wp-content/themes/twentytwentyone/assets/css/ie.css.map b/src/wp-content/themes/twentytwentyone/assets/css/ie.css.map index de2fb534245e6..7d75030ec1e58 100644 --- a/src/wp-content/themes/twentytwentyone/assets/css/ie.css.map +++ b/src/wp-content/themes/twentytwentyone/assets/css/ie.css.map @@ -1 +1 @@ -{"version":3,"sources":["../../style.css","../../assets/sass/01-settings/file-header.scss","../../assets/sass/style.scss","../../assets/sass/01-settings/global.scss","../../assets/sass/03-generic/normalize.scss","../../assets/sass/03-generic/breakpoints.scss","../../assets/sass/03-generic/vertical-margins.scss","../../assets/sass/03-generic/reset.scss","../../assets/sass/03-generic/clearings.scss","../../assets/sass/04-elements/blockquote.scss","../../assets/sass/04-elements/forms.scss","../../assets/sass/04-elements/media.scss","../../assets/sass/04-elements/misc.scss","../../assets/sass/04-elements/links.scss","../../assets/sass/05-blocks/audio/_style.scss","../../assets/sass/05-blocks/button/_style.scss","../../assets/sass/02-tools/mixins.scss","../../assets/sass/05-blocks/code/_style.scss","../../assets/sass/05-blocks/columns/_style.scss","../../assets/sass/05-blocks/cover/_style.scss","../../assets/sass/05-blocks/file/_style.scss","../../assets/sass/05-blocks/gallery/_style.scss","../../assets/sass/05-blocks/group/_style.scss","../../assets/sass/05-blocks/heading/_style.scss","../../assets/sass/05-blocks/image/_style.scss","../../assets/sass/05-blocks/latest-comments/_style.scss","../../assets/sass/05-blocks/latest-posts/_style.scss","../../assets/sass/05-blocks/legacy/_style.scss","../../assets/sass/05-blocks/list/_style.scss","../../assets/sass/05-blocks/media-text/_style.scss","../../assets/sass/05-blocks/navigation/_style.scss","../../assets/sass/05-blocks/paragraph/_style.scss","../../assets/sass/05-blocks/preformatted/_style.scss","../../assets/sass/05-blocks/pullquote/_style.scss","../../assets/sass/05-blocks/query-loop/_style.scss","../../assets/sass/05-blocks/quote/_style.scss","../../assets/sass/05-blocks/rss/_style.scss","../../assets/sass/05-blocks/search/_style.scss","../../assets/sass/05-blocks/separator/_style.scss","../../assets/sass/05-blocks/social-icons/_style.scss","../../assets/sass/05-blocks/table/_style.scss","../../assets/sass/05-blocks/tag-clould/_style.scss","../../assets/sass/05-blocks/verse/_style.scss","../../assets/sass/05-blocks/video/_style.scss","../../assets/sass/05-blocks/utilities/_font-sizes.scss","../../assets/sass/05-blocks/utilities/_style.scss","../../assets/sass/06-components/header.scss","../../assets/sass/06-components/footer.scss","../../assets/sass/06-components/single.scss","../../assets/sass/06-components/posts-and-pages.scss","../../assets/sass/06-components/entry.scss","../../assets/sass/06-components/archives.scss","../../assets/sass/06-components/404.scss","../../assets/sass/06-components/search.scss","../../assets/sass/06-components/comments.scss","../../assets/sass/06-components/navigation.scss","../../assets/sass/06-components/footer-navigation.scss","../../assets/sass/06-components/pagination.scss","../../assets/sass/06-components/widgets.scss","../../assets/sass/07-utilities/a11y.scss","../../assets/sass/07-utilities/color-palette.scss","../../assets/sass/07-utilities/measure.scss","../../assets/sass/07-utilities/ie.scss"],"names":[],"mappings":"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EAEC,cAAA;A5DipJF;;A4D5oJA;EAMC,cAAA;A5D0oJD;A4D9oJC;EAEC,cAAA;A5DgpJF;;A4D3oJA;EAMC,cAAA;A5DyoJD;A4D7oJC;EAEC,cAAA;A5D+oJF;;A4D1oJA;EAMC,cAAA;A5DwoJD;A4D5oJC;EAEC,cAAA;A5D8oJF;;A4DzoJA;EAMC,cAAA;A5DuoJD;A4D3oJC;EAEC,cAAA;A5D6oJF;;A4DxoJA;EAMC,WAAA;A5DsoJD;A4D1oJC;EAEC,WAAA;A5D4oJF;;A4DpoJC;;;;;;;;EAQC,mBAAA;A5DuoJF;;A4DnoJA;EAMC,sBAAA;A5DioJD;A4DroJC;EAEC,sBAAA;A5DuoJF;;A4DloJA;EAMC,yBAAA;A5DgoJD;A4DpoJC;EAEC,yBAAA;A5DsoJF;;A4DjoJA;EAMC,yBAAA;A5D+nJD;A4DnoJC;EAEC,yBAAA;A5DqoJF;;A4DhoJA;EAMC,yBAAA;A5D8nJD;A4DloJC;EAEC,yBAAA;A5DooJF;;A4D/nJA;EAMC,yBAAA;A5D6nJD;A4DjoJC;EAEC,yBAAA;A5DmoJF;;A4D9nJA;EAMC,yBAAA;A5D4nJD;A4DhoJC;EAEC,yBAAA;A5DkoJF;;A4D7nJA;EAMC,yBAAA;A5D2nJD;A4D/nJC;EAEC,yBAAA;A5DioJF;;A4D5nJA;EAMC,yBAAA;A5D0nJD;A4D9nJC;EAEC,yBAAA;A5DgoJF;;A4D3nJA;EAMC,yBAAA;A5DynJD;A4D7nJC;EAEC,yBAAA;A5D+nJF;;A4D1nJA;EAMC,yBAAA;A5DwnJD;A4D5nJC;EAEC,yBAAA;A5D8nJF;;A4DznJA;EAMC,sBAAA;A5DunJD;A4D3nJC;EAEC,sBAAA;A5D6nJF;;A4DtnJC;EAGG,WAAA;A5DunJJ;;A4D1nJC;EAGG,WAAA;A5DunJJ;;A4D1nJC;EAGG,WAAA;A5DunJJ;A4DpnJE;EAMC;A5DknJH;A4DxnJE;EAMC;A5DknJH;A4DxnJE;EAMC;A5DknJH;A4D9mJC;EAOG,cAAA;A5D6mJJ;A4DpnJC;EAOG,cAAA;A5D6mJJ;A4DpnJC;EAOG,cAAA;A5D6mJJ;A4DpnJC;EAOG,cAAA;A5D6mJJ;A4DpnJC;EAOG,cAAA;A5D6mJJ;A4DpnJC;EAOG,cAAA;A5D6mJJ;A4DpnJC;EAOG,cAAA;A5D6mJJ;A4D1mJE;EAMC;A5DwmJH;A4D9mJE;EAMC;A5DwmJH;A4D9mJE;EAMC;A5DwmJH;A4D9mJE;EAMC;A5DwmJH;A4D9mJE;EAMC;A5DwmJH;A4D9mJE;EAMC;A5DwmJH;A4D9mJE;EAMC;A5DwmJH;;A4DlmJA;EACC,qDAAA;A5DwmJD;;A4DrmJA;EACC,qDAAA;A5DwmJD;;A4DrmJA;EACC,qDAAA;A5DwmJD;;A4DrmJA;EACC,qDAAA;A5DwmJD;;A4DrmJA;EACC,qDAAA;A5DwmJD;;A4DrmJA;EACC,qDAAA;A5DwmJD;;A4DrmJA;EACC,qDAAA;A5DwmJD;;A4DrmJA;EACC,qDAAA;A5DwmJD;;A6Dx3JA;EAGC,gBAAA;A7D23JD;;A6Dx3JA;;;;;;;;;;;EAWC,eAAA;A7D23JD;;A8D74JC;EACC,WAAA;A9Dg5JF;A8D94JE;;;;;;;;;;;EAWC,WAAA;A9Dg5JH;A8D74JE;;;;EAIC,UAAA;A9D+4JH;A8D54JE;EACC,gBAAA;A9D84JH;AKr5JE;EyDaE;;IAEC,sBAAA;E9D24JH;AACF;A8Dv4JE;EACC,cAAA;A9Dy4JH;A8Dr4JC;EACC,cAAA;A9Du4JF;A8Dp4JC;EACC,eAAA;A9Ds4JF","file":"ie.css"} \ No newline at end of file +{"version":3,"sources":["../../style.css","../../assets/sass/01-settings/file-header.scss","../../assets/sass/style.scss","../../assets/sass/01-settings/global.scss","../../assets/sass/03-generic/normalize.scss","../../assets/sass/03-generic/breakpoints.scss","../../assets/sass/03-generic/vertical-margins.scss","../../assets/sass/03-generic/reset.scss","../../assets/sass/03-generic/clearings.scss","../../assets/sass/04-elements/blockquote.scss","../../assets/sass/04-elements/forms.scss","../../assets/sass/04-elements/media.scss","../../assets/sass/04-elements/misc.scss","../../assets/sass/04-elements/links.scss","../../assets/sass/05-blocks/audio/_style.scss","../../assets/sass/05-blocks/button/_style.scss","../../assets/sass/02-tools/mixins.scss","../../assets/sass/05-blocks/code/_style.scss","../../assets/sass/05-blocks/columns/_style.scss","../../assets/sass/05-blocks/cover/_style.scss","../../assets/sass/05-blocks/file/_style.scss","../../assets/sass/05-blocks/gallery/_style.scss","../../assets/sass/05-blocks/group/_style.scss","../../assets/sass/05-blocks/heading/_style.scss","../../assets/sass/05-blocks/image/_style.scss","../../assets/sass/05-blocks/latest-comments/_style.scss","../../assets/sass/05-blocks/latest-posts/_style.scss","../../assets/sass/05-blocks/legacy/_style.scss","../../assets/sass/05-blocks/list/_style.scss","../../assets/sass/05-blocks/media-text/_style.scss","../../assets/sass/05-blocks/navigation/_style.scss","../../assets/sass/05-blocks/paragraph/_style.scss","../../assets/sass/05-blocks/preformatted/_style.scss","../../assets/sass/05-blocks/pullquote/_style.scss","../../assets/sass/05-blocks/query-loop/_style.scss","../../assets/sass/05-blocks/quote/_style.scss","../../assets/sass/05-blocks/rss/_style.scss","../../assets/sass/05-blocks/search/_style.scss","../../assets/sass/05-blocks/separator/_style.scss","../../assets/sass/05-blocks/social-icons/_style.scss","../../assets/sass/05-blocks/table/_style.scss","../../assets/sass/05-blocks/tag-clould/_style.scss","../../assets/sass/05-blocks/verse/_style.scss","../../assets/sass/05-blocks/video/_style.scss","../../assets/sass/05-blocks/utilities/_font-sizes.scss","../../assets/sass/05-blocks/utilities/_style.scss","../../assets/sass/06-components/header.scss","../../assets/sass/06-components/footer.scss","../../assets/sass/06-components/single.scss","../../assets/sass/06-components/posts-and-pages.scss","../../assets/sass/06-components/entry.scss","../../assets/sass/06-components/archives.scss","../../assets/sass/06-components/404.scss","../../assets/sass/06-components/search.scss","../../assets/sass/06-components/comments.scss","../../assets/sass/06-components/navigation.scss","../../assets/sass/06-components/footer-navigation.scss","../../assets/sass/06-components/pagination.scss","../../assets/sass/06-components/widgets.scss","../../assets/sass/07-utilities/a11y.scss","../../assets/sass/07-utilities/color-palette.scss","../../assets/sass/07-utilities/measure.scss","../../assets/sass/07-utilities/ie.scss"],"names":[],"mappings":"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C,cAAA;A5DgpJD;A4DppJC;EAEC,cAAA;A5DspJF;;A4DjpJA;EAMC,cAAA;A5D+oJD;A4DnpJC;EAEC,cAAA;A5DqpJF;;A4DhpJA;EAMC,cAAA;A5D8oJD;A4DlpJC;EAEC,cAAA;A5DopJF;;A4D/oJA;EAMC,cAAA;A5D6oJD;A4DjpJC;EAEC,cAAA;A5DmpJF;;A4D9oJA;EAMC,cAAA;A5D4oJD;A4DhpJC;EAEC,cAAA;A5DkpJF;;A4D7oJA;EAMC,WAAA;A5D2oJD;A4D/oJC;EAEC,WAAA;A5DipJF;;A4DzoJC;;;;;;;;EAQC,mBAAA;A5D4oJF;;A4DxoJA;EAMC,sBAAA;A5DsoJD;A4D1oJC;EAEC,sBAAA;A5D4oJF;;A4DvoJA;EAMC,yBAAA;A5DqoJD;A4DzoJC;EAEC,yBAAA;A5D2oJF;;A4DtoJA;EAMC,yBAAA;A5DooJD;A4DxoJC;EAEC,yBAAA;A5D0oJF;;A4DroJA;EAMC,yBAAA;A5DmoJD;A4DvoJC;EAEC,yBAAA;A5DyoJF;;A4DpoJA;EAMC,yBAAA;A5DkoJD;A4DtoJC;EAEC,yBAAA;A5DwoJF;;A4DnoJA;EAMC,yBAAA;A5DioJD;A4DroJC;EAEC,yBAAA;A5DuoJF;;A4DloJA;EAMC,yBAAA;A5DgoJD;A4DpoJC;EAEC,yBAAA;A5DsoJF;;A4DjoJA;EAMC,yBAAA;A5D+nJD;A4DnoJC;EAEC,yBAAA;A5DqoJF;;A4DhoJA;EAMC,yBAAA;A5D8nJD;A4DloJC;EAEC,yBAAA;A5DooJF;;A4D/nJA;EAMC,yBAAA;A5D6nJD;A4DjoJC;EAEC,yBAAA;A5DmoJF;;A4D9nJA;EAMC,sBAAA;A5D4nJD;A4DhoJC;EAEC,sBAAA;A5DkoJF;;A4D3nJC;EAGG,WAAA;A5D4nJJ;;A4D/nJC;EAGG,WAAA;A5D4nJJ;;A4D/nJC;EAGG,WAAA;A5D4nJJ;A4DznJE;EAMC;A5DunJH;A4D7nJE;EAMC;A5DunJH;A4D7nJE;EAMC;A5DunJH;A4DnnJC;EAOG,cAAA;A5DknJJ;A4DznJC;EAOG,cAAA;A5DknJJ;A4DznJC;EAOG,cAAA;A5DknJJ;A4DznJC;EAOG,cAAA;A5DknJJ;A4DznJC;EAOG,cAAA;A5DknJJ;A4DznJC;EAOG,cAAA;A5DknJJ;A4DznJC;EAOG,cAAA;A5DknJJ;A4D/mJE;EAMC;A5D6mJH;A4DnnJE;EAMC;A5D6mJH;A4DnnJE;EAMC;A5D6mJH;A4DnnJE;EAMC;A5D6mJH;A4DnnJE;EAMC;A5D6mJH;A4DnnJE;EAMC;A5D6mJH;A4DnnJE;EAMC;A5D6mJH;;A4DvmJA;EACC,qDAAA;A5D6mJD;;A4D1mJA;EACC,qDAAA;A5D6mJD;;A4D1mJA;EACC,qDAAA;A5D6mJD;;A4D1mJA;EACC,qDAAA;A5D6mJD;;A4D1mJA;EACC,qDAAA;A5D6mJD;;A4D1mJA;EACC,qDAAA;A5D6mJD;;A4D1mJA;EACC,qDAAA;A5D6mJD;;A4D1mJA;EACC,qDAAA;A5D6mJD;;A6D73JA;EAGC,gBAAA;A7Dg4JD;;A6D73JA;;;;;;;;;;;EAWC,eAAA;A7Dg4JD;;A8Dl5JC;EACC,WAAA;A9Dq5JF;A8Dn5JE;;;;;;;;;;;EAWC,WAAA;A9Dq5JH;A8Dl5JE;;;;EAIC,UAAA;A9Do5JH;A8Dj5JE;EACC,gBAAA;A9Dm5JH;AK15JE;EyDaE;;IAEC,sBAAA;E9Dg5JH;AACF;A8D54JE;EACC,cAAA;A9D84JH;A8D14JC;EACC,cAAA;A9D44JF;A8Dz4JC;EACC,eAAA;A9D24JF","file":"ie.css"} \ No newline at end of file diff --git a/src/wp-content/themes/twentytwentyone/assets/css/style-editor.css b/src/wp-content/themes/twentytwentyone/assets/css/style-editor.css index 8f940eaa75416..8d37165af1072 100644 --- a/src/wp-content/themes/twentytwentyone/assets/css/style-editor.css +++ b/src/wp-content/themes/twentytwentyone/assets/css/style-editor.css @@ -1419,6 +1419,11 @@ pre.wp-block-preformatted { color: currentColor; border-color: currentColor; position: relative; + font-weight: 700; + font-style: var(--pullquote--font-style); + font-family: var(--pullquote--font-family); + letter-spacing: var(--pullquote--letter-spacing); + line-height: var(--pullquote--line-height); } .wp-block-pullquote blockquote::before { @@ -1433,12 +1438,12 @@ pre.wp-block-preformatted { } .wp-block-pullquote p { - font-family: var(--pullquote--font-family); - font-size: var(--pullquote--font-size); - font-style: var(--pullquote--font-style); - font-weight: 700; - letter-spacing: var(--pullquote--letter-spacing); - line-height: var(--pullquote--line-height); + font-family: inherit; + font-size: inherit; + font-style: inherit; + font-weight: inherit; + letter-spacing: inherit; + line-height: inherit; margin: 0; } @@ -1522,6 +1527,7 @@ pre.wp-block-preformatted { position: relative; border-left: none; margin: var(--global--spacing-vertical) auto var(--global--spacing-vertical) var(--global--spacing-horizontal); + padding-left: 1em; } .wp-block-quote p { @@ -1540,7 +1546,7 @@ pre.wp-block-preformatted { content: "“"; font-size: var(--quote--font-size); line-height: var(--quote--line-height); - left: calc(-0.5 * var(--global--spacing-horizontal)); + left: 8px; } .wp-block-quote .wp-block-quote__citation { diff --git a/src/wp-content/themes/twentytwentyone/assets/css/style-editor.css.map b/src/wp-content/themes/twentytwentyone/assets/css/style-editor.css.map index 630930f3ecd55..945d25868c638 100644 --- a/src/wp-content/themes/twentytwentyone/assets/css/style-editor.css.map +++ b/src/wp-content/themes/twentytwentyone/assets/css/style-editor.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../sass/style-editor.scss","../sass/01-settings/global.scss","../sass/03-generic/breakpoints.scss","../sass/04-elements/blockquote.scss","../sass/04-elements/media.scss","../sass/04-elements/forms-editor.scss","../sass/04-elements/links.scss","../sass/05-blocks/button/_editor.scss","../sass/02-tools/mixins.scss","../sass/05-blocks/code/_editor.scss","../sass/05-blocks/cover/_editor.scss","../sass/05-blocks/columns/_editor.scss","../sass/05-blocks/file/_editor.scss","../sass/05-blocks/gallery/_editor.scss","../sass/05-blocks/group/_editor.scss","../sass/05-blocks/heading/_editor.scss","../sass/05-blocks/html/_editor.scss","../sass/05-blocks/image/_editor.scss","../sass/05-blocks/latest-comments/_editor.scss","../sass/05-blocks/latest-posts/_editor.scss","../sass/05-blocks/legacy/_editor.scss","../sass/05-blocks/list/_editor.scss","../sass/05-blocks/media-text/_editor.scss","../sass/05-blocks/navigation/_editor.scss","../sass/05-blocks/paragraph/_editor.scss","../sass/05-blocks/preformatted/_editor.scss","../sass/05-blocks/pullquote/_editor.scss","../sass/05-blocks/query-loop/_editor.scss","../sass/05-blocks/quote/_editor.scss","../sass/05-blocks/rss/_editor.scss","../sass/05-blocks/search/_editor.scss","../sass/05-blocks/separator/_editor.scss","../sass/05-blocks/social-icons/_editor.scss","../sass/05-blocks/table/_editor.scss","../sass/05-blocks/tag-clould/_editor.scss","../sass/05-blocks/verse/_editor.scss","../sass/05-blocks/utilities/_font-sizes.scss","../sass/05-blocks/utilities/_editor.scss","../sass/06-components/editor.scss","../sass/07-utilities/color-palette.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;ACAA;AAKA;AAEC;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;AAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;AAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;AAEA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;AAEA;EACA;;;AAGD;EACC;;AAEA;EAHD;IAIE;;;;AAIF;EACC;IACC;IACA;IACA;IACA;IACA;;;ACtPF;AAAA;AAAA;AAIA;AAAA;AAAA;AA4EA;AAAA;AAAA;AAGA;EACC;EACA;EACA;EACA;EACA;EACA;;;AA/DC;EAoED;IACC;IACA;IACA;IACA;;;AApCA;EA0CD;IACC;IACA;;;AAIF;AAAA;AAAA;AAGA;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAhGC;EA2GD;IACC;IACA;IACA;IACA;;;AF7HF;AAAA;EAEI;;;AGdJ;EACC;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;;AAGD;AAAA;EAEC;EACA;EACA;EACA;;AAGD;EAGC;;AAEA;EACC;EACA;EACA;;AAGD;AAAA;AAAA;EAEC;EACA;;AAIF;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;;ADlDA;ECpBF;IA0EE;;EAEA;IACC;;;;AC7EH;EACC;EACA;EACA;;;AAGD;AACA;EACC;;;AAGD;AACA;AAAA;AAAA;AAAA;EAIC;;;AAGD;AACA;AAAA;AAAA;AAAA;EAIC;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEC;;;AAIF;AACA;AAAA;AAAA;EAGC;EACA;EACA;EACA;;;AC5CD;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACXD;AAAA;AAAA;AAAA;AAAA;AAKA;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;AAEC;EACA;EAEA;EACA;EACA;;AAGA;EACC;EACA;EACA;;AAEA;EACC;;AAKF;EACC;EACA;;AAEA;EACC;;AAIF;AAEC;EACA;EACA;;AAEA;EACC;EACA;;AAIF;EACC;;AAGD;EACC;;;AAQD;EAEC;;;AC1EF;ECsBC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAMC;EACC;;AAGA;EACC;;AAEA;EACC;;AAMH;EACC;;AAGA;EACC;;AAMH;EAEC;EACA;EACA;;AAID;EACC;EACA;;AAID;EACC;EACA;EACA;;;ADzEF;AAAA;AAAA;AAYG;EACC;;AAGA;EACC;;AAEA;EACC;;AAMH;EACC;;AAGA;EACC;;AAMH;AAAA;EAEC;EACA;EACA;;AAID;EACC;EACA;;AAUA;EAGC;;AAID;EACC;;AAGA;EACC;;AAMD;EACC;;AAKF;EACC;;AAKF;AAAA;EAGC;EACA;EACA;;AAEA;AAAA;EACC;EACA;;AAGD;AAAA;EACC;;AAKF;EACC;EACA;;AAKF;EACC;;;AAIF;AAAA;EAEC;;;AE5HD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;ACXD;AAAA;EAOC;EACA;EACA;EACA;;AAPA;AAAA;EACC;;AAQD;AAAA;EACC;EACA;;AFuED;AAAA;EACC;;AAID;AAAA;EACC;;AAID;AAAA;AAAA;EAEC;;AE9ED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAIC;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAOD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAIC;;AAKF;AAAA;EACC;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACC;;AAGD;AAAA;EACC;;AAGD;AAAA;EACC;;AAKF;AAAA;EACC;;AAID;AAAA;EACC;;;ACvED;EACC;;AAGD;AAAA;EAGC;;AH4ED;EACC;;AAID;EACC;;AAID;EAEC;;AN/CA;EShCC;IACC;IACA;IACA;;EAcC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;IACC;IACA;;EAKF;AAAA;IAEC;;EAGD;IACC;;;AAQH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOC;EACA;;;AC9DF;EACC;EACA;EACA;;AAEA;EACC;EACA;;AAIF;EJSA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EIdC;;AJoBA;EACC;;AAGA;EACC;;AAEA;EACC;;AAMH;EACC;;AAGA;EACC;;AAMH;EAEC;EACA;EACA;;AAID;EACC;EACA;;AAID;EACC;EACA;EACA;;AI3DA;EACC;EACA;;;ACnBF;EACC;;AAEA;EACC;;;ACJF;EACC;;AAEA;EACC;EACA;;AAKF;EACC;EACA;;AAEA;EACC;EACA;EACA;;ANkEF;EACC;;AAID;EACC;;AAID;EAEC;;;AMvEF;EACC;EACA;;;AC5BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAkBC;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;;AAIF;AAAA;AAAA;EAGC;EACA;EACA;;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;EACA;;;AC/ED;EAEC;EACA;EACA;;;ACJD;AAEA;AAAA;EAEC;;;AAGD;EACC;;;AAGD;AAEA;AAAA;EAEC;;;AAGD;EACC;;;ACnBD;EACC;;;ACDD;EACC;;AAGA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAIF;EACC;EACA;;AAEA;EACC;;AAEA;EACC;;AAKH;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAKF;EACC;EACA;EACA;EACA;EACA;EACA;;AAID;EACC;EACA;EACA;;AAID;EACC;EACA;EACA;;AAEA;EAEC;;AAKF;AAAA;EAEC;EACA;EACA;EACA;;AAID;EACC;EACA;;AAEA;AAAA;EAEC;EACA;EACA;EACA;;AAEA;AAAA;EACC;EACA;;AAIF;EAEC;EACA;;AAEA;EACC;EACA;EACA;;AAEA;EACC;;AAMF;EAEE;IACC;;EADD;IACC;;EADD;IACC;;EADD;IACC;;EADD;IACC;;;AASJ;EACC;EACA;;AAEA;EACC;EACA;;AAIF;EACC;EACA;;;AC5IH;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;;AAIF;EACC;;;ACxCD;AAAA;EAEC;EACA;EACA;;AAGA;AAAA;EACC;EACA;EACA;;AAGD;AAAA;EACC;EACA;EACA;;;AAMD;AAAA;EAEC;;;AAIF;EACC;EACA;;;AC5BA;EACC;EACA;;AdiFD;EACC;;AAID;EACC;;AAID;EAEC;;AcxFD;EACC;;AAID;EACC;;;ACbD;EACC;EACA;;AAGD;EACC;;AAKA;EACC;EACA;EACA;;AAMD;EACC;;AAUC;EAEC;;AAKH;EACC;;;ACzCH;EACC;;AAEA;EACC;;;ACJF;EACC;EACA;EACA;;;ACHD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;;AAID;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EARD;IASE;;;AAGD;EACC;;AAGD;EAEC;EACA;EACA;;AAGD;EACC;EACA;;AAEA;EACC;;AAIF;AAAA;AAAA;EAGC;;;AAUD;EACC;;;AAQF;AAAA;EACC;;;ACrGD;EACC;;AzBuBA;EyBxBD;IAIE;;;;ACNH;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;EACC;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAEA;EAIC;;AAIF;EACC;EACA;EACA;;AAGA;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;;AAIF;EACC;;AAEA;EACC;;AAIF;EAEC;AAEA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAMA;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;;A1B9EF;E0B6CD;IAsCE;;EAEA;IACC;;EAGD;IACC;IACA;;EAEA;IACC;;;A1B9FH;E0BpBF;IAyHE;;EAEA;IACC;;EAGD;IACC;IACA;;EAEA;IACC;;EAIF;IACC;IACA;;;A1BhHD;E0B1BF;IA+IE;;EAEA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","file":"style-editor.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../sass/style-editor.scss","../sass/01-settings/global.scss","../sass/03-generic/breakpoints.scss","../sass/04-elements/blockquote.scss","../sass/04-elements/media.scss","../sass/04-elements/forms-editor.scss","../sass/04-elements/links.scss","../sass/05-blocks/button/_editor.scss","../sass/02-tools/mixins.scss","../sass/05-blocks/code/_editor.scss","../sass/05-blocks/cover/_editor.scss","../sass/05-blocks/columns/_editor.scss","../sass/05-blocks/file/_editor.scss","../sass/05-blocks/gallery/_editor.scss","../sass/05-blocks/group/_editor.scss","../sass/05-blocks/heading/_editor.scss","../sass/05-blocks/html/_editor.scss","../sass/05-blocks/image/_editor.scss","../sass/05-blocks/latest-comments/_editor.scss","../sass/05-blocks/latest-posts/_editor.scss","../sass/05-blocks/legacy/_editor.scss","../sass/05-blocks/list/_editor.scss","../sass/05-blocks/media-text/_editor.scss","../sass/05-blocks/navigation/_editor.scss","../sass/05-blocks/paragraph/_editor.scss","../sass/05-blocks/preformatted/_editor.scss","../sass/05-blocks/pullquote/_editor.scss","../sass/05-blocks/query-loop/_editor.scss","../sass/05-blocks/quote/_editor.scss","../sass/05-blocks/rss/_editor.scss","../sass/05-blocks/search/_editor.scss","../sass/05-blocks/separator/_editor.scss","../sass/05-blocks/social-icons/_editor.scss","../sass/05-blocks/table/_editor.scss","../sass/05-blocks/tag-clould/_editor.scss","../sass/05-blocks/verse/_editor.scss","../sass/05-blocks/utilities/_font-sizes.scss","../sass/05-blocks/utilities/_editor.scss","../sass/06-components/editor.scss","../sass/07-utilities/color-palette.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;ACAA;AAKA;AAEC;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;AAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;AAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;AAEA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;AAEA;EACA;;;AAGD;EACC;;AAEA;EAHD;IAIE;;;;AAIF;EACC;IACC;IACA;IACA;IACA;IACA;;;ACtPF;AAAA;AAAA;AAIA;AAAA;AAAA;AA4EA;AAAA;AAAA;AAGA;EACC;EACA;EACA;EACA;EACA;EACA;;;AA/DC;EAoED;IACC;IACA;IACA;IACA;;;AApCA;EA0CD;IACC;IACA;;;AAIF;AAAA;AAAA;AAGA;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAhGC;EA2GD;IACC;IACA;IACA;IACA;;;AF7HF;AAAA;EAEI;;;AGdJ;EACC;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;;AAGD;AAAA;EAEC;EACA;EACA;EACA;;AAGD;EAGC;;AAEA;EACC;EACA;EACA;;AAGD;AAAA;AAAA;EAEC;EACA;;AAIF;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;;ADlDA;ECpBF;IA0EE;;EAEA;IACC;;;;AC7EH;EACC;EACA;EACA;;;AAGD;AACA;EACC;;;AAGD;AACA;AAAA;AAAA;AAAA;EAIC;;;AAGD;AACA;AAAA;AAAA;AAAA;EAIC;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEC;;;AAIF;AACA;AAAA;AAAA;EAGC;EACA;EACA;EACA;;;AC5CD;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACXD;AAAA;AAAA;AAAA;AAAA;AAKA;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;AAEC;EACA;EAEA;EACA;EACA;;AAGA;EACC;EACA;EACA;;AAEA;EACC;;AAKF;EACC;EACA;;AAEA;EACC;;AAIF;AAEC;EACA;EACA;;AAEA;EACC;EACA;;AAIF;EACC;;AAGD;EACC;;;AAQD;EAEC;;;AC1EF;ECsBC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAMC;EACC;;AAGA;EACC;;AAEA;EACC;;AAMH;EACC;;AAGA;EACC;;AAMH;EAEC;EACA;EACA;;AAID;EACC;EACA;;AAID;EACC;EACA;EACA;;;ADzEF;AAAA;AAAA;AAYG;EACC;;AAGA;EACC;;AAEA;EACC;;AAMH;EACC;;AAGA;EACC;;AAMH;AAAA;EAEC;EACA;EACA;;AAID;EACC;EACA;;AAUA;EAGC;;AAID;EACC;;A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AGD;EACC;;;AAIF;EACC;;;ACxCD;AAAA;EAEC;EACA;EACA;;AAGA;AAAA;EACC;EACA;EACA;;AAGD;AAAA;EACC;EACA;EACA;;;AAMD;AAAA;EAEC;;;AAIF;EACC;EACA;;;AC5BA;EACC;EACA;;AdiFD;EACC;;AAID;EACC;;AAID;EAEC;;AcxFD;EACC;;AAID;EACC;;;ACbD;EACC;EACA;;AAGD;EACC;;AAKA;EACC;EACA;EACA;;AAMD;EACC;;AAUC;EAEC;;AAKH;EACC;;;ACzCH;EACC;;AAEA;EACC;;;ACJF;EACC;EACA;EACA;;;ACHD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;;AAID;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EARD;IASE;;;AAGD;EACC;;AAGD;EAEC;EACA;EACA;;AAGD;EACC;EACA;;AAEA;EACC;;AAIF;AAAA;AAAA;EAGC;;;AAUD;EACC;;;AAQF;AAAA;EACC;;;AC1GD;EACC;;AzBuBA;EyBxBD;IAIE;;;;ACNH;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;EACC;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAEA;EAIC;;AAIF;EACC;EACA;EACA;;AAGA;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;;AAIF;EACC;;AAEA;EACC;;AAIF;EAEC;AAEA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAMA;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;;A1B/EF;E0B8CD;IAsCE;;EAEA;IACC;;EAGD;IACC;IACA;;EAEA;IACC;;;A1B/FH;E0BpBF;IA0HE;;EAEA;IACC;;EAGD;IACC;IACA;;EAEA;IACC;;EAIF;IACC;IA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","file":"style-editor.css"} \ No newline at end of file diff --git a/src/wp-content/themes/twentytwentyone/assets/sass/05-blocks/pullquote/_editor.scss b/src/wp-content/themes/twentytwentyone/assets/sass/05-blocks/pullquote/_editor.scss index 5b223b19e2ef0..3eb13cbccdacc 100644 --- a/src/wp-content/themes/twentytwentyone/assets/sass/05-blocks/pullquote/_editor.scss +++ b/src/wp-content/themes/twentytwentyone/assets/sass/05-blocks/pullquote/_editor.scss @@ -7,6 +7,11 @@ color: currentColor; border-color: currentColor; position: relative; + font-weight: 700; + font-style: var(--pullquote--font-style); + font-family: var(--pullquote--font-family); + letter-spacing: var(--pullquote--letter-spacing); + line-height: var(--pullquote--line-height); blockquote::before { color: currentColor; @@ -20,12 +25,12 @@ } p { - font-family: var(--pullquote--font-family); - font-size: var(--pullquote--font-size); - font-style: var(--pullquote--font-style); - font-weight: 700; - letter-spacing: var(--pullquote--letter-spacing); - line-height: var(--pullquote--line-height); + font-family: inherit; + font-size: inherit; + font-style: inherit; + font-weight: inherit; + letter-spacing: inherit; + line-height: inherit; margin: 0; } diff --git a/src/wp-content/themes/twentytwentyone/assets/sass/05-blocks/pullquote/_style.scss b/src/wp-content/themes/twentytwentyone/assets/sass/05-blocks/pullquote/_style.scss index ad0bc2cb9d22d..686691199f4ab 100644 --- a/src/wp-content/themes/twentytwentyone/assets/sass/05-blocks/pullquote/_style.scss +++ b/src/wp-content/themes/twentytwentyone/assets/sass/05-blocks/pullquote/_style.scss @@ -7,6 +7,11 @@ color: currentColor; border-color: currentColor; position: relative; + font-weight: 700; + font-style: var(--pullquote--font-style); + font-family: var(--pullquote--font-family); + letter-spacing: var(--pullquote--letter-spacing); + line-height: var(--pullquote--line-height); blockquote::before { color: currentColor; @@ -20,12 +25,12 @@ } p { - font-family: var(--pullquote--font-family); - font-size: var(--pullquote--font-size); - font-style: var(--pullquote--font-style); - font-weight: 700; - letter-spacing: var(--pullquote--letter-spacing); - line-height: var(--pullquote--line-height); + font-family: inherit; + font-size: inherit; + font-style: inherit; + font-weight: inherit; + letter-spacing: inherit; + line-height: inherit; margin: 0; } diff --git a/src/wp-content/themes/twentytwentyone/assets/sass/05-blocks/quote/_editor.scss b/src/wp-content/themes/twentytwentyone/assets/sass/05-blocks/quote/_editor.scss index 0d36ff1fcd239..91eabc6400203 100644 --- a/src/wp-content/themes/twentytwentyone/assets/sass/05-blocks/quote/_editor.scss +++ b/src/wp-content/themes/twentytwentyone/assets/sass/05-blocks/quote/_editor.scss @@ -2,6 +2,7 @@ position: relative; border-left: none; margin: var(--global--spacing-vertical) auto var(--global--spacing-vertical) var(--global--spacing-horizontal); + padding-left: 1em; p { font-family: var(--quote--font-family); @@ -19,7 +20,7 @@ content: "\201C"; font-size: var(--quote--font-size); line-height: var(--quote--line-height); - left: calc(-0.5 * var(--global--spacing-horizontal)); + left: 8px; } .wp-block-quote__citation { diff --git a/src/wp-content/themes/twentytwentyone/classes/class-twenty-twenty-one-customize.php b/src/wp-content/themes/twentytwentyone/classes/class-twenty-twenty-one-customize.php index d3af05ec42a79..903334089db4d 100644 --- a/src/wp-content/themes/twentytwentyone/classes/class-twenty-twenty-one-customize.php +++ b/src/wp-content/themes/twentytwentyone/classes/class-twenty-twenty-one-customize.php @@ -92,7 +92,7 @@ public function register( $wp_customize ) { array( 'capability' => 'edit_theme_options', 'default' => 'excerpt', - 'sanitize_callback' => static function( $value ) { + 'sanitize_callback' => static function ( $value ) { return 'excerpt' === $value || 'full' === $value ? $value : 'excerpt'; }, ) diff --git a/src/wp-content/themes/twentytwentyone/classes/class-twenty-twenty-one-dark-mode.php b/src/wp-content/themes/twentytwentyone/classes/class-twenty-twenty-one-dark-mode.php index ec599cfd0bb3a..39b3fb726fc88 100644 --- a/src/wp-content/themes/twentytwentyone/classes/class-twenty-twenty-one-dark-mode.php +++ b/src/wp-content/themes/twentytwentyone/classes/class-twenty-twenty-one-dark-mode.php @@ -69,7 +69,7 @@ public function editor_custom_color_variables() { get_template_directory_uri() . '/assets/js/dark-mode-toggler.js', array(), '1.0.0', - true + array( 'in_footer' => true ) ); wp_enqueue_script( @@ -77,7 +77,7 @@ public function editor_custom_color_variables() { get_template_directory_uri() . '/assets/js/editor-dark-mode-support.js', array( 'twentytwentyone-dark-mode-support-toggle' ), '1.0.0', - true + array( 'in_footer' => true ) ); } @@ -115,7 +115,7 @@ public function customize_controls_enqueue_scripts() { get_template_directory_uri() . '/assets/js/customize.js', array( 'customize-base', 'customize-controls', 'underscore', 'jquery', 'twentytwentyone-customize-helpers' ), '1.0.0', - true + array( 'in_footer' => true ) ); } @@ -153,7 +153,7 @@ public function customizer_controls( $wp_customize ) { array( 'section' => 'colors', 'priority' => 100, - 'active_callback' => static function() { + 'active_callback' => static function () { return 127 >= Twenty_Twenty_One_Custom_Colors::get_relative_luminance_from_hex( get_theme_mod( 'background_color', 'D1E4DD' ) ); }, ) @@ -165,7 +165,7 @@ public function customizer_controls( $wp_customize ) { array( 'capability' => 'edit_theme_options', 'default' => false, - 'sanitize_callback' => static function( $value ) { + 'sanitize_callback' => static function ( $value ) { return (bool) $value; }, ) @@ -188,7 +188,7 @@ public function customizer_controls( $wp_customize ) { 'label' => esc_html__( 'Dark Mode support', 'twentytwentyone' ), 'priority' => 110, 'description' => $description, - 'active_callback' => static function( $value ) { + 'active_callback' => static function ( $value ) { return 127 < Twenty_Twenty_One_Custom_Colors::get_relative_luminance_from_hex( get_theme_mod( 'background_color', 'D1E4DD' ) ); }, ) @@ -200,7 +200,7 @@ public function customizer_controls( $wp_customize ) { array( 'selector' => '#dark-mode-toggler', 'container_inclusive' => true, - 'render_callback' => function() { + 'render_callback' => function () { $attrs = ( $this->switch_should_render() ) ? array() : array( 'style' => 'display:none;' ); $this->the_html( $attrs ); }, @@ -384,5 +384,4 @@ public function add_privacy_policy_content() { . __( 'This website uses LocalStorage to save the setting when Dark Mode support is turned on or off.
LocalStorage is necessary for the setting to work and is only used when a user clicks on the Dark Mode button.
No data is saved in the database or transferred.', 'twentytwentyone' ); wp_add_privacy_policy_content( __( 'Twenty Twenty-One', 'twentytwentyone' ), wp_kses_post( wpautop( $content, false ) ) ); } - } diff --git a/src/wp-content/themes/twentytwentyone/classes/class-twenty-twenty-one-svg-icons.php b/src/wp-content/themes/twentytwentyone/classes/class-twenty-twenty-one-svg-icons.php index d88aabc0944ac..398ef82bbd7c8 100644 --- a/src/wp-content/themes/twentytwentyone/classes/class-twenty-twenty-one-svg-icons.php +++ b/src/wp-content/themes/twentytwentyone/classes/class-twenty-twenty-one-svg-icons.php @@ -249,5 +249,4 @@ public static function get_social_link_svg( $uri, $size ) { } return null; } - } diff --git a/src/wp-content/themes/twentytwentyone/functions.php b/src/wp-content/themes/twentytwentyone/functions.php index eb80b67daa3f2..f163e394df734 100644 --- a/src/wp-content/themes/twentytwentyone/functions.php +++ b/src/wp-content/themes/twentytwentyone/functions.php @@ -421,7 +421,7 @@ function twenty_twenty_one_scripts() { get_template_directory_uri() . '/assets/js/polyfills.js', array(), wp_get_theme()->get( 'Version' ), - true + array( 'in_footer' => true ) ); // Register the IE11 polyfill loader. @@ -430,7 +430,7 @@ function twenty_twenty_one_scripts() { null, array(), wp_get_theme()->get( 'Version' ), - true + array( 'in_footer' => true ) ); wp_add_inline_script( 'twenty-twenty-one-ie11-polyfills', @@ -449,7 +449,10 @@ function twenty_twenty_one_scripts() { get_template_directory_uri() . '/assets/js/primary-navigation.js', array( 'twenty-twenty-one-ie11-polyfills' ), wp_get_theme()->get( 'Version' ), - true + array( + 'in_footer' => false, // Because involves header. + 'strategy' => 'defer', + ) ); } @@ -459,7 +462,7 @@ function twenty_twenty_one_scripts() { get_template_directory_uri() . '/assets/js/responsive-embeds.js', array( 'twenty-twenty-one-ie11-polyfills' ), wp_get_theme()->get( 'Version' ), - true + array( 'in_footer' => true ) ); } add_action( 'wp_enqueue_scripts', 'twenty_twenty_one_scripts' ); @@ -473,7 +476,7 @@ function twenty_twenty_one_scripts() { */ function twentytwentyone_block_editor_script() { - wp_enqueue_script( 'twentytwentyone-editor', get_theme_file_uri( '/assets/js/editor.js' ), array( 'wp-blocks', 'wp-dom' ), wp_get_theme()->get( 'Version' ), true ); + wp_enqueue_script( 'twentytwentyone-editor', get_theme_file_uri( '/assets/js/editor.js' ), array( 'wp-blocks', 'wp-dom' ), wp_get_theme()->get( 'Version' ), array( 'in_footer' => true ) ); } add_action( 'enqueue_block_editor_assets', 'twentytwentyone_block_editor_script' ); @@ -565,7 +568,7 @@ function twentytwentyone_customize_preview_init() { get_theme_file_uri( '/assets/js/customize-helpers.js' ), array(), wp_get_theme()->get( 'Version' ), - true + array( 'in_footer' => true ) ); wp_enqueue_script( @@ -573,7 +576,7 @@ function twentytwentyone_customize_preview_init() { get_theme_file_uri( '/assets/js/customize-preview.js' ), array( 'customize-preview', 'customize-selective-refresh', 'jquery', 'twentytwentyone-customize-helpers' ), wp_get_theme()->get( 'Version' ), - true + array( 'in_footer' => true ) ); } add_action( 'customize_preview_init', 'twentytwentyone_customize_preview_init' ); @@ -592,7 +595,7 @@ function twentytwentyone_customize_controls_enqueue_scripts() { get_theme_file_uri( '/assets/js/customize-helpers.js' ), array(), wp_get_theme()->get( 'Version' ), - true + array( 'in_footer' => true ) ); } add_action( 'customize_controls_enqueue_scripts', 'twentytwentyone_customize_controls_enqueue_scripts' ); diff --git a/src/wp-content/themes/twentytwentyone/inc/block-patterns.php b/src/wp-content/themes/twentytwentyone/inc/block-patterns.php index b66dddf59463c..b6b17c64b60df 100644 --- a/src/wp-content/themes/twentytwentyone/inc/block-patterns.php +++ b/src/wp-content/themes/twentytwentyone/inc/block-patterns.php @@ -136,7 +136,6 @@ function twenty_twenty_one_register_block_pattern() { 'content' => '

' . esc_html_x( 'example@example.com', 'Block pattern sample content', 'twentytwentyone' ) . '
' . esc_html_x( '123-456-7890', 'Block pattern sample content', 'twentytwentyone' ) . '

' . esc_html_x( '123 Main Street', 'Block pattern sample content', 'twentytwentyone' ) . '
' . esc_html_x( 'Cambridge, MA, 02139', 'Block pattern sample content', 'twentytwentyone' ) . '

', ) ); - } add_action( 'init', 'twenty_twenty_one_register_block_pattern' ); } diff --git a/src/wp-content/themes/twentytwentyone/inc/template-functions.php b/src/wp-content/themes/twentytwentyone/inc/template-functions.php index a862dfac14a38..5c1ca0f1e116d 100644 --- a/src/wp-content/themes/twentytwentyone/inc/template-functions.php +++ b/src/wp-content/themes/twentytwentyone/inc/template-functions.php @@ -384,7 +384,7 @@ function twenty_twenty_one_print_first_instance_of_block( $block_name, $content if ( $is_matching_block ) { // Increment count. - $instances_count++; + ++$instances_count; // Add the block HTML. $blocks_content .= render_block( $block ); diff --git a/src/wp-content/themes/twentytwentyone/package-lock.json b/src/wp-content/themes/twentytwentyone/package-lock.json index 6205e3e2de5a0..cbba366af3063 100644 --- a/src/wp-content/themes/twentytwentyone/package-lock.json +++ b/src/wp-content/themes/twentytwentyone/package-lock.json @@ -1,8 +1,9177 @@ { "name": "twentytwentyone", "version": "1.9.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "twentytwentyone", + "version": "1.9.0", + "license": "GPL-2.0-or-later", + "devDependencies": { + "@wordpress/browserslist-config": "^5.9.0", + "@wordpress/eslint-plugin": "^9.3.0", + "@wordpress/stylelint-config": "^19.1.0", + "autoprefixer": "^10.4.13", + "chokidar-cli": "^3.0.0", + "eslint": "^8.33.0", + "minimist": "^1.2.7", + "npm-run-all": "^4.1.5", + "postcss": "^8.4.21", + "postcss-calc": "^8.2.4", + "postcss-cli": "^10.1.0", + "postcss-css-variables": "^0.18.0", + "postcss-custom-media": "^9.1.1", + "postcss-discard-duplicates": "^5.1.0", + "postcss-focus-within": "^7.0.1", + "postcss-merge-rules": "^5.1.3", + "postcss-nested": "^6.0.0", + "rtlcss": "^4.0.0", + "sass": "^1.58.0", + "stylelint": "^13.13.1", + "stylelint-config-recommended-scss": "^5.0.2" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.12.13" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.1.tgz", + "integrity": "sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.1.tgz", + "integrity": "sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.0", + "@babel/helper-compilation-targets": "^7.19.1", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helpers": "^7.19.0", + "@babel/parser": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", + "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", + "dev": true, + "dependencies": { + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", + "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.19.0", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz", + "integrity": "sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.19.1", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/caniuse-lite": { + "version": "1.0.30001410", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001410.tgz", + "integrity": "sha512-QoblBnuE+rG0lc3Ur9ltP5q47lbguipa/ncNMyyGuqPk44FxbScWAeEO+k5fSQ8WekdAK4mWqNs1rADDAiN5xQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/@babel/helper-compilation-targets/node_modules/electron-to-chromium": { + "version": "1.4.258", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.258.tgz", + "integrity": "sha512-vutF4q0dTUXoAFI7Vbtdwen/BJVwPgj8GRg/SElOodfH7VTX+svUe62A5BG41QRQGk5HsZPB0M++KH1lAlOt0A==", + "dev": true + }, + "node_modules/@babel/helper-compilation-targets/node_modules/node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", + "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", + "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", + "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", + "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.1.tgz", + "integrity": "sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", + "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.9.tgz", + "integrity": "sha512-WxYHHUWF2uZ7Hp1K+D1xQgbgkGUfA+5UPOegEXGt2Y5SMog/rYCVaifLZDbw8UkNXozEqqrZTy6bglL7xTaCOw==", + "dev": true, + "dependencies": { + "core-js-pure": "^3.20.2", + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.1.tgz", + "integrity": "sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.0", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.19.1", + "@babel/types": "^7.19.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", + "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types/node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@csstools/cascade-layer-name-parser": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.1.tgz", + "integrity": "sha512-SAAi5DpgJJWkfTvWSaqkgyIsTawa83hMwKrktkj6ra2h+q6ZN57vOGZ6ySHq6RSo+CbP64fA3aPChPBRDDUgtw==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^2.0.0", + "@csstools/css-tokenizer": "^2.0.0" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.0.1.tgz", + "integrity": "sha512-B9/8PmOtU6nBiibJg0glnNktQDZ3rZnGn/7UmDfrm2vMtrdlXO3p7ErE95N0up80IRk9YEtB5jyj/TmQ1WH3dw==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^2.0.0" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.0.1.tgz", + "integrity": "sha512-sYD3H7ReR88S/4+V5VbKiBEUJF4FqvG+8aNJkxqoPAnbhFziDG22IDZc4+h+xA63SfgM+h15lq5OnLeCxQ9nPA==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.0.1.tgz", + "integrity": "sha512-X2/OuzEbjaxhzm97UJ+95GrMeT29d1Ib+Pu+paGLuRWZnWRK9sI9r3ikmKXPWGA1C4y4JEdBEFpp9jEqCvLeRA==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^2.0.0", + "@csstools/css-tokenizer": "^2.0.0" + } + }, + "node_modules/@es-joy/jsdoccomment": { + "version": "0.10.8", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.10.8.tgz", + "integrity": "sha512-3P1JiGL4xaR9PoTKUHa2N/LKwa2/eUdRqGwijMWWgBqbFEqJUVpmaOi2TcjcemrsRMgFLBzQCK4ToPhrSVDiFQ==", + "dev": true, + "dependencies": { + "comment-parser": "1.2.4", + "esquery": "^1.4.0", + "jsdoc-type-pratt-parser": "1.1.1" + }, + "engines": { + "node": "^12 || ^14 || ^16" + } + }, + "node_modules/@es-joy/jsdoccomment/node_modules/jsdoc-type-pratt-parser": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-1.1.1.tgz", + "integrity": "sha512-uelRmpghNwPBuZScwgBG/OzodaFk5RbO5xaivBdsAY70icWfShwZ7PCMO0x1zSkOa8T1FzHThmrdoyg/0AwV5g==", + "dev": true, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", + "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@stylelint/postcss-css-in-js": { + "version": "0.37.3", + "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.3.tgz", + "integrity": "sha512-scLk3cSH1H9KggSniseb2KNAU5D9FWc3H7BxCSAIdtU9OWIyw0zkEZ9qEKHryRM+SExYXRKNb7tOOVNAsQ3iwg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "dependencies": { + "@babel/core": "^7.17.9" + }, + "peerDependencies": { + "postcss": ">=7.0.0", + "postcss-syntax": ">=0.36.2" + } + }, + "node_modules/@stylelint/postcss-markdown": { + "version": "0.36.2", + "resolved": "https://registry.npmjs.org/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz", + "integrity": "sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==", + "deprecated": "Use the original unforked package instead: postcss-markdown", + "dev": true, + "dependencies": { + "remark": "^13.0.0", + "unist-util-find-all-after": "^3.0.2" + }, + "peerDependencies": { + "postcss": ">=7.0.0", + "postcss-syntax": ">=0.36.2" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "node_modules/@types/mdast": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", + "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", + "dev": true, + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/unist": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", + "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", + "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", + "dev": true, + "dependencies": { + "@typescript-eslint/experimental-utils": "4.33.0", + "@typescript-eslint/scope-manager": "4.33.0", + "debug": "^4.3.1", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^4.0.0", + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", + "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", + "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "4.33.0", + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/typescript-estree": "4.33.0", + "debug": "^4.3.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", + "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "dev": true, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@wordpress/browserslist-config": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-5.9.0.tgz", + "integrity": "sha512-VC1QK741SRfrfsq2SdWHlkuDo7ZSXD7LFbK0dU6lOnuUt3f01HTU05NfcrC6uWCaoMP87MPDCQVaWTygNSFirQ==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@wordpress/eslint-plugin": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-9.3.0.tgz", + "integrity": "sha512-9F7B60gHAjiTIi9vBw5ZoH0MZW3UnmbuKols4kWpJVdgsvG4X1Wj6XXTLmQKrzh/Em7mD1CCIbCSyWknEzIOLw==", + "dev": true, + "dependencies": { + "@babel/eslint-parser": "^7.16.0", + "@typescript-eslint/eslint-plugin": "^4.31.0", + "@typescript-eslint/parser": "^4.31.0", + "@wordpress/prettier-config": "^1.1.1", + "cosmiconfig": "^7.0.0", + "eslint-config-prettier": "^7.1.0", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-jest": "^24.1.3", + "eslint-plugin-jsdoc": "^36.0.8", + "eslint-plugin-jsx-a11y": "^6.4.1", + "eslint-plugin-prettier": "^3.3.0", + "eslint-plugin-react": "^7.22.0", + "eslint-plugin-react-hooks": "^4.2.0", + "globals": "^12.0.0", + "prettier": "npm:wp-prettier@2.2.1-beta-1", + "requireindex": "^1.2.0" + }, + "engines": { + "node": ">=12", + "npm": ">=6.9" + }, + "peerDependencies": { + "eslint": "^6 || ^7", + "typescript": "^4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@wordpress/eslint-plugin/node_modules/prettier": { + "name": "wp-prettier", + "version": "2.2.1-beta-1", + "resolved": "https://registry.npmjs.org/wp-prettier/-/wp-prettier-2.2.1-beta-1.tgz", + "integrity": "sha512-+JHkqs9LC/JPp51yy1hzs3lQ7qeuWCwOcSzpQNeeY/G7oSpnF61vxt7hRh87zNRTr6ob2ndy0W8rVzhgrcA+Gw==", + "dev": true + }, + "node_modules/@wordpress/prettier-config": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-1.2.0.tgz", + "integrity": "sha512-/hRr/p5rlSptjg82Mdy5rQ+mvW4GWCoKpe0FHC3oGy+E6SRcYfVGpnGCtmZa4TY69STD+eu59pCTl1J/EgUIUA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "prettier": ">=2" + } + }, + "node_modules/@wordpress/stylelint-config": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-19.1.0.tgz", + "integrity": "sha512-K/wB9rhB+pH5WvDh3fV3DN5C3Bud+jPGXmnPY8fOXKMYI3twCFozK/j6sVuaJHqGp/0kKEF0hkkGh+HhD30KGQ==", + "dev": true, + "dependencies": { + "stylelint-config-recommended": "^3.0.0", + "stylelint-config-recommended-scss": "^4.2.0", + "stylelint-scss": "^3.17.2" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "stylelint": "^13.7.0" + } + }, + "node_modules/@wordpress/stylelint-config/node_modules/stylelint-config-recommended-scss": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-4.3.0.tgz", + "integrity": "sha512-/noGjXlO8pJTr/Z3qGMoaRFK8n1BFfOqmAbX1RjTIcl4Yalr+LUb1zb9iQ7pRx1GsEBXOAm4g2z5/jou/pfMPg==", + "dev": true, + "dependencies": { + "stylelint-config-recommended": "^5.0.0" + }, + "peerDependencies": { + "stylelint": "^10.1.0 || ^11.0.0 || ^12.0.0 || ^13.0.0", + "stylelint-scss": "^3.0.0" + } + }, + "node_modules/@wordpress/stylelint-config/node_modules/stylelint-config-recommended-scss/node_modules/stylelint-config-recommended": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-5.0.0.tgz", + "integrity": "sha512-c8aubuARSu5A3vEHLBeOSJt1udOdS+1iue7BmJDTSXoCBmfEQmmWX+59vYIj3NQdJBY6a/QRv1ozVFpaB9jaqA==", + "dev": true, + "peerDependencies": { + "stylelint": "^13.13.0" + } + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes/node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes/node_modules/es-abstract": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", + "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes/node_modules/es-abstract/node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes/node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes/node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes/node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes/node_modules/object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes/node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes/node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat/node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat/node_modules/es-abstract": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", + "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat/node_modules/es-abstract/node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat/node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat/node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat/node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat/node_modules/object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat/node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat/node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap/node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap/node_modules/es-abstract": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", + "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap/node_modules/es-abstract/node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap/node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap/node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap/node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap/node_modules/object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap/node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap/node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001426", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/autoprefixer/node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/autoprefixer/node_modules/caniuse-lite": { + "version": "1.0.30001450", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001450.tgz", + "integrity": "sha512-qMBmvmQmFXaSxexkjjfMvD5rnDL0+m+dUMZKoDYsGG8iZN29RuYh9eRoMvKsT6uMAWlyUUGDEQGJJYjzCIO9ew==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/autoprefixer/node_modules/electron-to-chromium": { + "version": "1.4.286", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.286.tgz", + "integrity": "sha512-Vp3CVhmYpgf4iXNKAucoQUDcCrBQX3XLBtwgFqP9BUXuucgvAV9zWp1kYU7LL9j4++s9O+12cb3wMtN4SJy6UQ==", + "dev": true + }, + "node_modules/autoprefixer/node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "node_modules/autoprefixer/node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/autoprefixer/node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/axe-core": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", + "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", + "dev": true + }, + "node_modules/bail": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/browserslist/node_modules/caniuse-lite": { + "version": "1.0.30001235", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001235.tgz", + "integrity": "sha512-zWEwIVqnzPkSAXOUlQnPW2oKoYb2aLQ4Q5ejdjBcnH63rfypaW34CxaeBn1VMya2XaEU3P/R2qHpWyj+l0BT1A==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/browserslist/node_modules/colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true + }, + "node_modules/call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001164", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001164.tgz", + "integrity": "sha512-G+A/tkf4bu0dSp9+duNiXc7bGds35DioCyC6vgK2m/rjA4Krpy5WeZgZyfH2f0wj2kI6yAWWucyap6oOwmY1mg==", + "dev": true + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar-cli": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chokidar-cli/-/chokidar-cli-3.0.0.tgz", + "integrity": "sha512-xVW+Qeh7z15uZRxHOkP93Ux8A0xbPzwK4GaqD8dQOYc34TlkqUhVSS59fK36DOp5WdJlrRzlYSy02Ht99FjZqQ==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.2", + "lodash.debounce": "^4.0.8", + "lodash.throttle": "^4.1.1", + "yargs": "^13.3.0" + }, + "bin": { + "chokidar": "index.js" + }, + "engines": { + "node": ">= 8.10.0" + } + }, + "node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/clone-regexp": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", + "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", + "dev": true, + "dependencies": { + "is-regexp": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/comment-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.2.4.tgz", + "integrity": "sha512-pm0b+qv+CkWNriSTMsfnjChF9kH0kxz55y44Wo5le9qLxMj5xDQAaEd9ZN1ovSuk9CsrncWaFwgpOMg7ClJwkw==", + "dev": true, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/core-js-pure": { + "version": "3.22.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.2.tgz", + "integrity": "sha512-Lb+/XT4WC4PaCWWtZpNPaXmjiNDUe5CJuUtbkMrIM1kb1T/jJoAIp+bkVP/r5lHzMr+ZAAF8XHp7+my6Ol0ysQ==", + "deprecated": "core-js-pure@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js-pure.", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.3.749", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.749.tgz", + "integrity": "sha512-F+v2zxZgw/fMwPz/VUGIggG4ZndDsYy0vlpthi3tjmDZlcfbhN5mYW0evXUsBr2sUtuDANFtle410A9u/sd/4A==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.33.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz", + "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.4.1", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz", + "integrity": "sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-import/node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/eslint-plugin-import/node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "24.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.7.0.tgz", + "integrity": "sha512-wUxdF2bAZiYSKBclsUMrYHH6WxiBreNjyDxbRv345TIvPeoCEgPNEn3Sa+ZrSqsf1Dl9SqqSREXMHExlMMu1DA==", + "dev": true, + "dependencies": { + "@typescript-eslint/experimental-utils": "^4.0.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": ">= 4", + "eslint": ">=5" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "36.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-36.1.1.tgz", + "integrity": "sha512-nuLDvH1EJaKx0PCa9oeQIxH6pACIhZd1gkalTUxZbaxxwokjs7TplqY0Q8Ew3CoZaf5aowm0g/Z3JGHCatt+gQ==", + "dev": true, + "dependencies": { + "@es-joy/jsdoccomment": "0.10.8", + "comment-parser": "1.2.4", + "debug": "^4.3.2", + "esquery": "^1.4.0", + "jsdoc-type-pratt-parser": "^1.1.1", + "lodash": "^4.17.21", + "regextras": "^0.8.0", + "semver": "^7.3.5", + "spdx-expression-parse": "^3.0.1" + }, + "engines": { + "node": "^12 || ^14 || ^16" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", + "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.16.3", + "aria-query": "^4.2.2", + "array-includes": "^3.1.4", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.3.5", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.7", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.2.1", + "language-tags": "^1.0.5", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz", + "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "eslint": ">=5.0.0", + "prettier": ">=1.13.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.29.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", + "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flatmap": "^1.2.5", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.0", + "object.values": "^1.1.5", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.5.0.tgz", + "integrity": "sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/eslint/node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/eslint/node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/eslint/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/eslint/node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/glob-parent/node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execall": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", + "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", + "dev": true, + "dependencies": { + "clone-regexp": "^2.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", + "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "dev": true + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fs-extra": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", + "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", + "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description/node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description/node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "dependencies": { + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", + "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "dev": true + }, + "node_modules/gonzales-pe": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", + "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "gonzales": "bin/gonzales.js" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag/node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/html-tags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", + "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dev": true, + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "node_modules/ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.4.tgz", + "integrity": "sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/internal-slot/node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dev": true, + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object/node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object/node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "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" + } + ], + "engines": { + "node": ">=4" + } + }, + "node_modules/is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", + "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer/node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer/node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref/node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref/node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/js-sdsl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-1.2.0.tgz", + "integrity": "sha512-4STjeF14jp4bqha44nKMY1OUI6d2/g6uclHWUCZ7B4DoLzaB5bmpTkQrpqU+vSVzMD0LsKAOskcnI3I3VfIpmg==", + "dev": true, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz", + "integrity": "sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "object.assign": "^4.1.2" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/known-css-properties": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.21.0.tgz", + "integrity": "sha512-sZLUnTqimCkvkgRS+kbPlYW5o8q5w1cu+uIisKpEWkj31I8mx8kNG162DwRav8Zirkva6N5uoFsm9kzK4mUXjw==", + "dev": true + }, + "node_modules/language-subtag-registry": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", + "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==", + "dev": true + }, + "node_modules/language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "dev": true, + "dependencies": { + "language-subtag-registry": "~0.3.2" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/longest-streak": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", + "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", + "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", + "dev": true, + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^2.0.0", + "micromark": "~2.11.0", + "parse-entities": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", + "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "longest-streak": "^2.0.0", + "mdast-util-to-string": "^2.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.0.0", + "zwitch": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", + "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/meow/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromark": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", + "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "debug": "^4.0.0", + "parse-entities": "^2.0.0" + } + }, + "node_modules/micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minimist-options/node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/node-releases": { + "version": "1.1.73", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", + "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-selector": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", + "integrity": "sha512-dxvWdI8gw6eAvk9BlPffgEoGfM7AdijoCwOEJge3e3ulT2XLgmU7KvvxprOaCu05Q1uGRHmOhHe1r6emZoKyFw==", + "dev": true + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.entries/node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries/node_modules/es-abstract": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", + "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries/node_modules/es-abstract/node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries/node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries/node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries/node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries/node_modules/object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries/node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries/node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries/node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries/node_modules/es-abstract": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", + "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries/node_modules/es-abstract/node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries/node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries/node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries/node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries/node_modules/object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries/node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries/node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown/node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown/node_modules/es-abstract": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", + "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown/node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown/node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown/node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown/node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown/node_modules/object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown/node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown/node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values/node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values/node_modules/es-abstract": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", + "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values/node_modules/es-abstract/node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values/node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values/node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values/node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values/node_modules/object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values/node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values/node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "dev": true, + "dependencies": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-calc/node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-calc/node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/postcss-cli": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-10.1.0.tgz", + "integrity": "sha512-Zu7PLORkE9YwNdvOeOVKPmWghprOtjFQU3srMUGbdz3pHJiFh7yZ4geiZFMkjMfB0mtTFR3h8RemR62rPkbOPA==", + "dev": true, + "dependencies": { + "chokidar": "^3.3.0", + "dependency-graph": "^0.11.0", + "fs-extra": "^11.0.0", + "get-stdin": "^9.0.0", + "globby": "^13.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^4.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^5.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-cli/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/postcss-cli/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/postcss-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/postcss-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/postcss-cli/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/postcss-cli/node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/postcss-cli/node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss-cli/node_modules/globby": { + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz", + "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss-cli/node_modules/globby/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss-cli/node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/postcss-cli/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-cli/node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/postcss-cli/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss-cli/node_modules/slash": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.0.0.tgz", + "integrity": "sha512-n6KkmvKS0623igEVj3FF0OZs1gYYJ0o0Hj939yc1fyxl2xt+xYpLnzJB6xBSqOfV9ZFLEWodBBN/heZJahuIJQ==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss-cli/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-cli/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-cli/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/postcss-cli/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-cli/node_modules/yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/postcss-cli/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/postcss-css-variables": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/postcss-css-variables/-/postcss-css-variables-0.18.0.tgz", + "integrity": "sha512-lYS802gHbzn1GI+lXvy9MYIYDuGnl1WB4FTKoqMQqJ3Mab09A7a/1wZvGTkCEZJTM8mSbIyb1mJYn8f0aPye0Q==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "escape-string-regexp": "^1.0.3", + "extend": "^3.0.1" + }, + "peerDependencies": { + "postcss": "^8.2.6" + } + }, + "node_modules/postcss-custom-media": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-9.1.1.tgz", + "integrity": "sha512-veQwzQkHgBkizxYCV/EBsiK8sFIJA0oQMQL9mpQ3gqFGc2dWlNWURHk4J44i9Q0dFeFCK81vV/Xpj7fyfNQKSA==", + "dev": true, + "dependencies": { + "@csstools/cascade-layer-name-parser": "^1.0.0", + "@csstools/css-parser-algorithms": "^2.0.0", + "@csstools/css-tokenizer": "^2.0.0", + "@csstools/media-query-list-parser": "^2.0.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-focus-within": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-7.0.1.tgz", + "integrity": "sha512-iSpk018Yqn0xwltFR7NHjagyt+e/6u8w50uEnGOcFOddLay5zQFjpJBg6euEZu7wY5WDq83DPpdO99eL+8Er8g==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within/node_modules/postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-html": { + "version": "0.36.0", + "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz", + "integrity": "sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==", + "dev": true, + "dependencies": { + "htmlparser2": "^3.10.0" + }, + "peerDependencies": { + "postcss": ">=5.0.0", + "postcss-syntax": ">=0.36.0" + } + }, + "node_modules/postcss-less": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-3.1.4.tgz", + "integrity": "sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.14" + }, + "engines": { + "node": ">=6.14.4" + } + }, + "node_modules/postcss-less/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-less/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", + "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", + "dev": true + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", + "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules/node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/postcss-merge-rules/node_modules/caniuse-lite": { + "version": "1.0.30001450", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001450.tgz", + "integrity": "sha512-qMBmvmQmFXaSxexkjjfMvD5rnDL0+m+dUMZKoDYsGG8iZN29RuYh9eRoMvKsT6uMAWlyUUGDEQGJJYjzCIO9ew==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/postcss-merge-rules/node_modules/electron-to-chromium": { + "version": "1.4.286", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.286.tgz", + "integrity": "sha512-Vp3CVhmYpgf4iXNKAucoQUDcCrBQX3XLBtwgFqP9BUXuucgvAV9zWp1kYU7LL9j4++s9O+12cb3wMtN4SJy6UQ==", + "dev": true + }, + "node_modules/postcss-merge-rules/node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-merge-rules/node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", + "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nested/node_modules/postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-reporter": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", + "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", + "dev": true + }, + "node_modules/postcss-safe-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz", + "integrity": "sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==", + "dev": true, + "dependencies": { + "postcss": "^7.0.26" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-safe-parser/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-safe-parser/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-sass": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.4.4.tgz", + "integrity": "sha512-BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg==", + "dev": true, + "dependencies": { + "gonzales-pe": "^4.3.0", + "postcss": "^7.0.21" + } + }, + "node_modules/postcss-sass/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss-sass/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-scss": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.5.tgz", + "integrity": "sha512-F7xpB6TrXyqUh3GKdyB4Gkp3QL3DDW1+uI+gxx/oJnUt/qXI4trj5OGlp9rOKdoABGULuqtqeG+3HEVQk4DjmA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + } + ], + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-syntax": { + "version": "0.36.2", + "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", + "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", + "dev": true, + "peerDependencies": { + "postcss": ">=5.0.0" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags/node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags/node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regextras": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regextras/-/regextras-0.8.0.tgz", + "integrity": "sha512-k519uI04Z3SaY0fLX843MRXnDeG2+vHOFsyhiPZvNLe7r8rD2YNRjq4BQLZZ0oAr2NrtvZlICsXysGNFPGa3CQ==", + "dev": true, + "engines": { + "node": ">=0.1.14" + } + }, + "node_modules/remark": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", + "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", + "dev": true, + "dependencies": { + "remark-parse": "^9.0.0", + "remark-stringify": "^9.0.0", + "unified": "^9.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", + "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", + "dev": true, + "dependencies": { + "mdast-util-from-markdown": "^0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", + "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", + "dev": true, + "dependencies": { + "mdast-util-to-markdown": "^0.6.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/requireindex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", + "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", + "dev": true, + "engines": { + "node": ">=0.10.5" + } + }, + "node_modules/resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "dependencies": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rtlcss": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.0.0.tgz", + "integrity": "sha512-j6oypPP+mgFwDXL1JkLCtm6U/DQntMUqlv5SOhpgHhdIE+PmBcjrtAHIpXfbIup47kD5Sgja9JDsDF1NNOsBwQ==", + "dev": true, + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0", + "postcss": "^8.4.6", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "rtlcss": "bin/rtlcss.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/sass": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.58.0.tgz", + "integrity": "sha512-PiMJcP33DdKtZ/1jSjjqVIKihoDc6yWmYr9K/4r3fVVIEDAluD0q7XZiRKrNJcPK3qkLRF/79DND1H5q1LBjgg==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", + "dev": true + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel/node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "dev": true + }, + "node_modules/specificity": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", + "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", + "dev": true, + "bin": { + "specificity": "bin/specificity" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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" + } + ] + }, + "node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.1", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.matchall/node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.matchall/node_modules/es-abstract": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", + "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.matchall/node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.matchall/node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.matchall/node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.matchall/node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.matchall/node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.matchall/node_modules/object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.matchall/node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.matchall/node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.padend": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.1.tgz", + "integrity": "sha512-eCzTASPnoCr5Ht+Vn1YXgm8SB015hHKgEIMu9Nr9bQmLhRBxKRfmzSj/IQsxDFc8JInJDDFA0qXwK+xxI7wDkg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", + "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", + "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", + "dev": true + }, + "node_modules/stylelint": { + "version": "13.13.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-13.13.1.tgz", + "integrity": "sha512-Mv+BQr5XTUrKqAXmpqm6Ddli6Ief+AiPZkRsIrAoUKFuq/ElkUh9ZMYxXD0iQNZ5ADghZKLOWz1h7hTClB7zgQ==", + "dev": true, + "dependencies": { + "@stylelint/postcss-css-in-js": "^0.37.2", + "@stylelint/postcss-markdown": "^0.36.2", + "autoprefixer": "^9.8.6", + "balanced-match": "^2.0.0", + "chalk": "^4.1.1", + "cosmiconfig": "^7.0.0", + "debug": "^4.3.1", + "execall": "^2.0.0", + "fast-glob": "^3.2.5", + "fastest-levenshtein": "^1.0.12", + "file-entry-cache": "^6.0.1", + "get-stdin": "^8.0.0", + "global-modules": "^2.0.0", + "globby": "^11.0.3", + "globjoin": "^0.1.4", + "html-tags": "^3.1.0", + "ignore": "^5.1.8", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "known-css-properties": "^0.21.0", + "lodash": "^4.17.21", + "log-symbols": "^4.1.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.4", + "normalize-selector": "^0.2.0", + "postcss": "^7.0.35", + "postcss-html": "^0.36.0", + "postcss-less": "^3.1.4", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^4.0.2", + "postcss-sass": "^0.4.4", + "postcss-scss": "^2.1.1", + "postcss-selector-parser": "^6.0.5", + "postcss-syntax": "^0.36.2", + "postcss-value-parser": "^4.1.0", + "resolve-from": "^5.0.0", + "slash": "^3.0.0", + "specificity": "^0.4.1", + "string-width": "^4.2.2", + "strip-ansi": "^6.0.0", + "style-search": "^0.1.0", + "sugarss": "^2.0.0", + "svg-tags": "^1.0.0", + "table": "^6.6.0", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^3.0.3" + }, + "bin": { + "stylelint": "bin/stylelint.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-3.0.0.tgz", + "integrity": "sha512-F6yTRuc06xr1h5Qw/ykb2LuFynJ2IxkKfCMf+1xqPffkxh0S09Zc902XCffcsw/XMFq/OzQ1w54fLIDtmRNHnQ==", + "dev": true, + "peerDependencies": { + "stylelint": ">=10.1.0" + } + }, + "node_modules/stylelint-config-recommended-scss": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-5.0.2.tgz", + "integrity": "sha512-b14BSZjcwW0hqbzm9b0S/ScN2+3CO3O4vcMNOw2KGf8lfVSwJ4p5TbNEXKwKl1+0FMtgRXZj6DqVUe/7nGnuBg==", + "dev": true, + "dependencies": { + "postcss-scss": "^4.0.2", + "stylelint-config-recommended": "^6.0.0", + "stylelint-scss": "^4.0.0" + }, + "peerDependencies": { + "stylelint": "^14.0.0" + } + }, + "node_modules/stylelint-config-recommended-scss/node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/stylelint-config-recommended-scss/node_modules/stylelint-config-recommended": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-6.0.0.tgz", + "integrity": "sha512-ZorSSdyMcxWpROYUvLEMm0vSZud2uB7tX1hzBZwvVY9SV/uly4AvvJPPhCcymZL3fcQhEQG5AELmrxWqtmzacw==", + "dev": true, + "peerDependencies": { + "stylelint": "^14.0.0" + } + }, + "node_modules/stylelint-config-recommended-scss/node_modules/stylelint-scss": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.3.0.tgz", + "integrity": "sha512-GvSaKCA3tipzZHoz+nNO7S02ZqOsdBzMiCx9poSmLlb3tdJlGddEX/8QzCOD8O7GQan9bjsvLMsO5xiw6IhhIQ==", + "dev": true, + "dependencies": { + "lodash": "^4.17.21", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-selector-parser": "^6.0.6", + "postcss-value-parser": "^4.1.0" + }, + "peerDependencies": { + "stylelint": "^14.5.1" + } + }, + "node_modules/stylelint-scss": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-3.21.0.tgz", + "integrity": "sha512-CMI2wSHL+XVlNExpauy/+DbUcB/oUZLARDtMIXkpV/5yd8nthzylYd1cdHeDMJVBXeYHldsnebUX6MoV5zPW4A==", + "dev": true, + "dependencies": { + "lodash": "^4.17.15", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "stylelint": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0" + } + }, + "node_modules/stylelint/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/stylelint/node_modules/autoprefixer": { + "version": "9.8.8", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", + "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", + "dev": true, + "dependencies": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "picocolors": "^0.2.1", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "node_modules/stylelint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/stylelint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/stylelint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/stylelint/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/stylelint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/stylelint/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/stylelint/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/stylelint/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/stylelint/node_modules/postcss-scss": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.1.1.tgz", + "integrity": "sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.6" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/stylelint/node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/stylelint/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sugarss": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", + "integrity": "sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.2" + } + }, + "node_modules/sugarss/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/sugarss/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/table": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/table/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/table/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive/node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive/node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive/node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unified": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", + "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", + "dev": true, + "dependencies": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "node_modules/unist-util-find-all-after": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz", + "integrity": "sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ==", + "dev": true, + "dependencies": { + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", + "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vfile": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", + "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zwitch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", + "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + }, "dependencies": { "@ampproject/remapping": { "version": "2.2.0", @@ -5610,6 +14779,23 @@ "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", "dev": true }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -5781,23 +14967,6 @@ "define-properties": "^1.1.3" } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", diff --git a/src/wp-content/themes/twentytwentyone/style-rtl.css b/src/wp-content/themes/twentytwentyone/style-rtl.css index b134d9ca2883f..2b863b1588cee 100644 --- a/src/wp-content/themes/twentytwentyone/style-rtl.css +++ b/src/wp-content/themes/twentytwentyone/style-rtl.css @@ -2814,6 +2814,11 @@ pre.wp-block-preformatted { color: currentColor; border-color: currentColor; position: relative; + font-weight: 700; + font-style: var(--pullquote--font-style); + font-family: var(--pullquote--font-family); + letter-spacing: var(--pullquote--letter-spacing); + line-height: var(--pullquote--line-height); /** * Block Options @@ -2832,12 +2837,12 @@ pre.wp-block-preformatted { } .wp-block-pullquote p { - font-family: var(--pullquote--font-family); - font-size: var(--pullquote--font-size); - font-style: var(--pullquote--font-style); - font-weight: 700; - letter-spacing: var(--pullquote--letter-spacing); - line-height: var(--pullquote--line-height); + font-family: inherit; + font-size: inherit; + font-style: inherit; + font-weight: inherit; + letter-spacing: inherit; + line-height: inherit; margin: 0; } diff --git a/src/wp-content/themes/twentytwentyone/style.css b/src/wp-content/themes/twentytwentyone/style.css index 894a69074e402..88302eb38cfe8 100644 --- a/src/wp-content/themes/twentytwentyone/style.css +++ b/src/wp-content/themes/twentytwentyone/style.css @@ -2824,6 +2824,11 @@ pre.wp-block-preformatted { color: currentColor; border-color: currentColor; position: relative; + font-weight: 700; + font-style: var(--pullquote--font-style); + font-family: var(--pullquote--font-family); + letter-spacing: var(--pullquote--letter-spacing); + line-height: var(--pullquote--line-height); /** * Block Options @@ -2842,12 +2847,12 @@ pre.wp-block-preformatted { } .wp-block-pullquote p { - font-family: var(--pullquote--font-family); - font-size: var(--pullquote--font-size); - font-style: var(--pullquote--font-style); - font-weight: 700; - letter-spacing: var(--pullquote--letter-spacing); - line-height: var(--pullquote--line-height); + font-family: inherit; + font-size: inherit; + font-style: inherit; + font-weight: inherit; + letter-spacing: inherit; + line-height: inherit; margin: 0; } diff --git a/src/wp-content/themes/twentytwentyone/style.css.map b/src/wp-content/themes/twentytwentyone/style.css.map index 8e6f06680af03..4cf0fa9012507 100644 --- a/src/wp-content/themes/twentytwentyone/style.css.map +++ b/src/wp-content/themes/twentytwentyone/style.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["assets/sass/01-settings/file-header.scss","assets/sass/style.scss","assets/sass/01-settings/global.scss","assets/sass/03-generic/normalize.scss","assets/sass/03-generic/breakpoints.scss","assets/sass/03-generic/vertical-margins.scss","assets/sass/03-generic/reset.scss","assets/sass/03-generic/clearings.scss","assets/sass/04-elements/blockquote.scss","assets/sass/04-elements/forms.scss","assets/sass/04-elements/media.scss","assets/sass/04-elements/misc.scss","assets/sass/04-elements/links.scss","assets/sass/05-blocks/audio/_style.scss","assets/sass/05-blocks/button/_style.scss","assets/sass/02-tools/mixins.scss","assets/sass/05-blocks/code/_style.scss","assets/sass/05-blocks/columns/_style.scss","assets/sass/05-blocks/cover/_style.scss","assets/sass/05-blocks/file/_style.scss","assets/sass/05-blocks/gallery/_style.scss","assets/sass/05-blocks/group/_style.scss","assets/sass/05-blocks/heading/_style.scss","assets/sass/05-blocks/image/_style.scss","assets/sass/05-blocks/latest-comments/_style.scss","assets/sass/05-blocks/latest-posts/_style.scss","assets/sass/05-blocks/legacy/_style.scss","assets/sass/05-blocks/list/_style.scss","assets/sass/05-blocks/media-text/_style.scss","assets/sass/05-blocks/navigation/_style.scss","assets/sass/05-blocks/paragraph/_style.scss","assets/sass/05-blocks/preformatted/_style.scss","assets/sass/05-blocks/pullquote/_style.scss","assets/sass/05-blocks/query-loop/_style.scss","assets/sass/05-blocks/quote/_style.scss","assets/sass/05-blocks/rss/_style.scss","assets/sass/05-blocks/search/_style.scss","assets/sass/05-blocks/separator/_style.scss","assets/sass/05-blocks/social-icons/_style.scss","assets/sass/05-blocks/table/_style.scss","assets/sass/05-blocks/tag-clould/_style.scss","assets/sass/05-blocks/verse/_style.scss","assets/sass/05-blocks/video/_style.scss","assets/sass/05-blocks/utilities/_font-sizes.scss","assets/sass/05-blocks/utilities/_style.scss","assets/sass/06-components/header.scss","assets/sass/06-components/footer.scss","assets/sass/06-components/single.scss","assets/sass/06-components/posts-and-pages.scss","assets/sass/06-components/entry.scss","assets/sass/06-components/archives.scss","assets/sass/06-components/404.scss","assets/sass/06-components/search.scss","assets/sass/06-components/comments.scss","assets/sass/06-components/navigation.scss","assets/sass/06-components/footer-navigation.scss","assets/sass/06-components/pagination.scss","assets/sass/06-components/widgets.scss","assets/sass/07-utilities/a11y.scss","assets/sass/07-utilities/color-palette.scss","assets/sass/07-utilities/measure.scss","assets/sass/07-utilities/ie.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;ACEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA4EA;AC9EA;AAKA;AAEC;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;AAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;AAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;AAEA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;A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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;;AAOD;EACC;;AAEA;EACC;;;AAKH;EACC;EACA;;;AAGD;AAAA;AAGC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;;;AAIF;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;AAAA;AAAA;AAAA;AAAA;AAKA;EAEC;AAAA;IAEC;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;AAAA;IACC;;EAGD;AAAA;IACC;;EAMD;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;;EAEA;IACC;;EAKH;IACC;;EAEA;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;;EAEA;IACC;;EAID;IACC;IACA;;;AAMJ;AAAA;EAEC;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;AAGA;EAEC;IACC;IACA;IACA;IACA;IACA;IACA;;EAEA;IACC;;EAIF;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;AAEA;EACC;;AAKA;EACC;;AAGD;EACC;;AAGD;EAEC;;AAGD;EAEC;EACA;EACA;;;AAKH;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;;AL7RA;EK4RD;IAGE;;;;ACrUH;EACC;EACA;EACA;;;AAGD;AACA;EACC;;;AAGD;AACA;AAA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DD;IACC;;;AASJ;EACC;EACA;;AAEA;EACC;;AAIF;EACC;EACA;;;AC/KH;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;;AAIF;EACC;;;AAID;EACC;;;ACrDD;AAAA;EAEC;EACA;EACA;;AAGA;AAAA;EACC;EACA;;AAGD;AAAA;EACC;EACA;EACA;;;AAIF;EACC;;AAEA;EACC;;;AAIF;EACC;;AAEA;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;EACA;;;AC1CD;AAqCC;AAAA;AAAA;;AAnCA;EACC;EACA;;AAGD;EACC;;AAGD;EACC;;AxB0BA;EwB3BD;IAIE;;;AAGD;EACC;EACA;;AxBMD;EwBRA;IAKE;IACA;;;AAGD;EACC;;AAGD;EACC;;AxBNF;EwBeD;IAEE;IACA;;;AAKF;EACC;;;AC/CA;EACC;EACA;EACA;;AAIF;EACC;;AAQC;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAOF;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;;AAQH;EACC;;AAEA;EACC;;AAWA;EAEC;;AAGD;EACC;EACA;;AAKH;EACC;;;ACnGH;EAEC;;AAGA;EACC;;AAID;EACC;;;ACXF;EACC;EACA;;;ACFD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAqCA;AAAA;AAAA;;AAnCA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;EACA;EACA;;AAMD;EACC;;AAKA;AAAA;EAEC;;AAIF;EAEC;;AAGD;EAEC;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAEA;EAPD;IAQE;;;AAGD;EACC;;AAGD;EACC;EACA;;AAEA;EACC;;AAIF;AAAA;AAAA;EAGC;;AAGD;EAEC;;AAEA;EACC;;;ACvGH;EACC;;A7BuBA;E6BxBD;IAIE;;;;ACNH;EACC;AAqBA;AAAA;AAAA;;AAnBA;EACC;EACA;EACA;EACA;;AAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAIC;;AAOF;EACC;EACA;EACA;;AAGA;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;;AAIF;EACC;;AAEA;EACC;;AAIF;EAEC;EACA;AAEA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAMA;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;;AAIF;AAAA;AAAA;AAAA;AAAA;EAGC;EACA;;A9B3ED;E8BiCD;IA8CE;;EAEA;IACC;;EAGD;IACC;IACA;;EAEA;IACC;;EAIF;IACC;IACA;;;A9BhGF;E8BuGA;IACC;IACA;;EAEA;IACC;;EAIF;IACC;IACA;;;;ACtIH;EACC;;AAEA;EACC;;AAID;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAMD;EACC;;AAEA;EACC;;AAKF;EAUC;;AAIF;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAKF;EACC;EACA;EACA;EACA;EACA;EACA;;AAID;EACC;EACA;EACA;;AAID;EACC;EACA;EACA;;AAEA;EAEC;;AAKF;AAAA;EAEC;EACA;EACA;EACA;;AAID;EACC;EACA;;AAEA;EAEC;EACA;;;ACzGH;EACC;;AAIC;EACC;;AAIF;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;EACC;;AAIF;EACC;EACA;;AAEA;EACC;;AAEA;EACC;EACA;EACA;;AAOD;EACC;EACA;;AAGD;EACC;;AAOF;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;;AAGA;EACC;EACA;EACA;;AAIF;EACC;;AAGA;EACC;;AAGD;EACC;;AAEA;EACC;EACA;;AAIF;EACC;;;AAOL;EACC;;;AClHD;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;AAiBA;AAAA;AAAA;;AAfA;EACC;;AAKA;EACC;;AAGD;EACC;;AAOF;EACC;;AAKA;EAEC;;AAEA;EACC;;AAIF;EACC;EACA;EACA;EACA;;AAIF;EAIC;;;ACtDF;EACC;;AAKA;EACC;;AAGD;EAEC;;;ACdH;AAAA;EAEC;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;EAEC;;AAGD;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;EAEC;EACA;;AAGD;AAAA;EACC;EACA;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;EAKC;;AAGD;AAAA;EACC;;AAEA;AAAA;AAAA;AAAA;EAEC;;AAGD;AAAA;EACC;;AAGD;AAAA;EACC;;;AAOF;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;AAAA;EAEC;EACA;;AAGD;EACC;EACA;EACA;EACA;;;AAIF;EACC;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAIF;EACC;;;AC9FD;EACC;EACA;;;ACJF;EACC;;;ACCA;EACC;EACA;EACA;EACA;EACA;;;AAIF;EACC;EACA;EACA;;;ACXA;AAAA;EAEC;;AAGD;AAAA;EAEC;;AAGD;AAAA;AAAA;AAAA;AAAA;EAKC;;AAGD;AAAA;EAEC;EACA;;AAGD;AAAA;AAAA;AAAA;EAIC;EACA;;AAGD;AAAA;EAEC;EACA;EAGA;;AAGD;AAAA;EAEC;EACA;EAGA;;;AClDF;AAEA;AAAA;AAAA;AAQA;AAAA;AAAA;AAGA;AAEC;EACA;EAEA;;;AAKD;EACC;;;AxCEC;EwCID;AAEC;IACA;AAEA;IACA;IACA;;EAGD;IACC;;;AAIF;AAAA;AAAA;AAGA;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;AAGA;EAEC;EACA;;;AAKD;EACC;;;AxC3CC;EwCiDD;AAEC;IACA;AAEA;IACA;;EAGD;IACC;;;AAKF;AAAA;EAEC;;;AAGD;AAAA;AAAA;AAGA;EACC;;;AAQD;AAAA;AAAA;AAGA;EACC;;;AAUD;EACC;;;AAGD;EACC;;;AAID;EACC;;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;;AxChIC;EwC+HF;IAIE;;;;A3CxDF;A4CpGA;EAEC;EACA;EACA;EACA;;AAEA;EACC;;AzCiBA;EyCzBF;IAYE;;;AzCiDA;EyC7DF;IAgBE;;;;AAKF;EACC;EACA;;AAEA;EACC;EACA;EACA;;AzCHA;EyCJF;IAWE;IACA;;;;AAKF;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EAGC;;AAGD;EAEC;;AzCnCD;EyCaF;IA4BE;;;;AAKF;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAID;EAEC;;AAEA;EACC;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AzC5EA;EyCiFA;IACC;IACA;IACA;IACA;;;;AzC3FD;EyC0GG;IACC;IACA;IACA;IACA;;EAEA;IACC;;EAGD;IACC;;EAMJ;IACC;;EAEA;IACC;;EAEA;IACC;;EAIF;IACC;;EAKA;IACC;;EAGD;IACC;IACA;;EAGD;IACC;IACA;IACA;;EAEA;IAGC;IACA;IACA;;EAWH;IACC;IACA;;EAKH;IACC;;;ACrMH;EACC;EACA;;AAIA;EACC;;A1CYA;E0CPA;IACC;;;;AAMH;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;AAAA;EAEC;;A1C2BA;E0C1CF;IAmBE;IACA;;EAEA;IACC;;EAGD;AAAA;IAEC;IACA;;EAGD;IACC;;;AAIF;EACC;;AAEA;EAGC;;AAGD;EACC;;AAGD;EACC;;AAEA;EACC;;AAID;EACC;;;AC/EJ;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;ACXD;EACC;;;AAID;EACC;;AAEA;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;;ACpBH;EAEC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAKH;EACC;;;AAGD;EACC;EACA;;;AAGD;AAAA;AAAA;AAIA;AAAA;EAEC;;;AAKA;EACC;;AAID;EAEC;EACA;;AASF;EAEC;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAEA;EAEC;;AAGD;EACC;;;AAMH;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEC;EACA;;AAGD;EACC;;AAGD;AAAA;AAAA;AAAA;EAIC;;A7C1GA;E6CiFF;IA6BE;;EAEA;IACC;;EAGD;AAAA;IAEC;;;;AAKH;AAAA;AAAA;AAIA;EAEC;;AAOA;EACC;EACA;EACA;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAIA;EACC;EACA;EACA;;AAEA;EACC;;AAMA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAMD;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;;AC9MH;EACC;;;AAGD;AAAA;EAEC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAaE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAUF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAMD;AAAA;AAAA;AAAA;AAAA;AAAA;EAEC;;AAQA;AAAA;AAAA;EACC;;;AAMJ;EACC;EACA;EACA;;;AClED;EACC;EACA;;;ACFD;EACC;;;ACDD;AAAA;AAAA;AAKC;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAMD;EACC;EACA;EACA;;AAGD;EACC;EACA;;AAGD;EACC;;;AAMH;AAAA;AAAA;AAIA;AAAA;EAEC;EACA;;;AAGD;EACC;EACA;;AAIC;EACC;EACA;EACA;EACA;EACA;;;AAKH;AACA;EACC;;;AAGD;AAAA;AAAA;AAGA;EACC;EACA;;AAEA;EACC;EACA;;;AAKF;EACC;EACA;;AAEA;EACC;EACA;;;AjD/DA;EiDoEF;AAAA;IAGE;;;;AAIF;AAAA;AAAA;AAKC;EACC;EACA;;AjDlFA;EiDgFD;IAKE;IACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;AAKF;EACC;EACA;EACA;;AAEA;EACC;;AjD1GD;EiD8EF;IAkCE;;EAEA;IACC;;;;AAKH;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AAAA;EAEC;;;AAID;EACC;EACA;;AAEA;EACC;EACA;;AAGD;EACC;;;AAIF;EACC;;;AAID;AAAA;EAEC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAEA;EACC;;;AAKH;EACC;;AAEA;EACC;;;AAIF;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;AAAA;EAEC;;AAGD;AAAA;EAEC;EACA;;AjD3NA;EiDwND;AAAA;IAME;;;AAIF;AAAA;EAEC;EACA;;;AAIF;EACC;;AAEA;EACC;;AAGD;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;EAKC;EACA;EACA;EACA;EACA;;AAGD;EACC;;AjD3PA;EiDgQA;IACC;;EAGD;IAEC;;;;AC5RH;EACC;EACA;EACA;EACA;EACA;EACA;;AlDUC;EkDhBF;IASE;;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAID;EACC;EACA;;AAGD;EACC;;AAQA;EACC;;AAGD;EACC;;AAEA;EACC;EACA;;AAQL;EACC;EACA;EACA;;AAEA;EACC;;;AAKH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAhBD;IAiBE;;;AlDtFD;EkDqED;IAqBE;IACA;IACA;IACA;IACA;;EAEA;IACC;IACA;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;;AlD9GF;EkDoHD;IAGE;IACA;IACA;;;AAGD;EACC;EACA;EACA;EACA;;AlDhID;EkDuIC;IACC;;;AlDlIF;EkDoDF;IAoFE;IACA;;EAGA;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;EAID;IACC;;EAID;IACC;;EAID;IACC;;EAEA;IACC;;;AAMH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AlDzLA;EkDiLD;IAWE;;EAEA;IACC;;;AAIF;EACC;EACA;EACA;;AlDhMD;EkD6LA;IAME;IACA;;EAEA;IACC;;;AAMH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AlD/NF;EkDmNA;IAgBE;;;AAGD;AAAA;EAEC;EACA;EACA;;AAEA;AAAA;EACC;;AAIF;EACC;;AAMA;EACC;;AAGD;EACC;;AAMH;EAEC;;AAGC;EALF;IAMG;;;AlDnQH;EkD6PA;IAWE;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IAEC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA;;EAGD;IACC;;EAGD;AAEC;IACA;AAEA;IACA;;EAEA;AAGC;IACA;AAEA;IACA;;EAIF;AAEC;IACA;AAEA;IACA;;EAEA;AAGC;IACA;AAEA;IACA;;;AAQL;EACC;;AlDjVA;EkDoVD;IAGE;IACA;;EAGA;IACC;;EAEA;IACC;IACA;;EAEA;IACC;;;AAQL;EACC;EACA;EACA;EACA;EACA;EACA;;AlDjXA;EkD2WD;IASE;IACA;IACA;IACA;;;AAGD;EACC;;AAGD;EAGC;;AAGD;EACC;EACA;;AAGD;EACC;EACA;EACA;EACA;;AAIF;AAAA;EAEC;EACA;;AAEA;AAAA;EACC;EACA;;AAKF;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;AlDraD;EkD4aC;IACC;;;AlDnbF;EkD2bE;IACC;;;AAKF;EACC;EACA;EACA;EACA;;AlD/bF;EkD2bC;IAOE;IACA;;;AASH;EACC;;AlD7cD;EkDkdC;IACC;IACA;;EAGD;IACC;;;AAMH;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;;AlD5eD;EkDofD;IACC;IACA;IACA;;;AAKF;EAEC;IACC;;EAGD;IACC;;;ACthBF;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EAEA;;AAEA;EACC;EACA;;AAEA;EAGC;;AAGD;EACC;EACA;E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","file":"style.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["assets/sass/01-settings/file-header.scss","assets/sass/style.scss","assets/sass/01-settings/global.scss","assets/sass/03-generic/normalize.scss","assets/sass/03-generic/breakpoints.scss","assets/sass/03-generic/vertical-margins.scss","assets/sass/03-generic/reset.scss","assets/sass/03-generic/clearings.scss","assets/sass/04-elements/blockquote.scss","assets/sass/04-elements/forms.scss","assets/sass/04-elements/media.scss","assets/sass/04-elements/misc.scss","assets/sass/04-elements/links.scss","assets/sass/05-blocks/audio/_style.scss","assets/sass/05-blocks/button/_style.scss","assets/sass/02-tools/mixins.scss","assets/sass/05-blocks/code/_style.scss","assets/sass/05-blocks/columns/_style.scss","assets/sass/05-blocks/cover/_style.scss","assets/sass/05-blocks/file/_style.scss","assets/sass/05-blocks/gallery/_style.scss","assets/sass/05-blocks/group/_style.scss","assets/sass/05-blocks/heading/_style.scss","assets/sass/05-blocks/image/_style.scss","assets/sass/05-blocks/latest-comments/_style.scss","assets/sass/05-blocks/latest-posts/_style.scss","assets/sass/05-blocks/legacy/_style.scss","assets/sass/05-blocks/list/_style.scss","assets/sass/05-blocks/media-text/_style.scss","assets/sass/05-blocks/navigation/_style.scss","assets/sass/05-blocks/paragraph/_style.scss","assets/sass/05-blocks/preformatted/_style.scss","assets/sass/05-blocks/pullquote/_style.scss","assets/sass/05-blocks/query-loop/_style.scss","assets/sass/05-blocks/quote/_style.scss","assets/sass/05-blocks/rss/_style.scss","assets/sass/05-blocks/search/_style.scss","assets/sass/05-blocks/separator/_style.scss","assets/sass/05-blocks/social-icons/_style.scss","assets/sass/05-blocks/table/_style.scss","assets/sass/05-blocks/tag-clould/_style.scss","assets/sass/05-blocks/verse/_style.scss","assets/sass/05-blocks/video/_style.scss","assets/sass/05-blocks/utilities/_font-sizes.scss","assets/sass/05-blocks/utilities/_style.scss","assets/sass/06-components/header.scss","assets/sass/06-components/footer.scss","assets/sass/06-components/single.scss","assets/sass/06-components/posts-and-pages.scss","assets/sass/06-components/entry.scss","assets/sass/06-components/archives.scss","assets/sass/06-components/404.scss","assets/sass/06-components/search.scss","assets/sass/06-components/comments.scss","assets/sass/06-components/navigation.scss","assets/sass/06-components/footer-navigation.scss","assets/sass/06-components/pagination.scss","assets/sass/06-components/widgets.scss","assets/sass/07-utilities/a11y.scss","assets/sass/07-utilities/color-palette.scss","assets/sass/07-utilities/measure.scss","assets/sass/07-utilities/ie.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;ACEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA4EA;AC9EA;AAKA;AAEC;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;AAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;AAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;AAEA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;A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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;;AAOD;EACC;;AAEA;EACC;;;AAKH;EACC;EACA;;;AAGD;AAAA;AAGC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;;;AAIF;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;AAAA;AAAA;AAAA;AAAA;AAKA;EAEC;AAAA;IAEC;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;AAAA;IACC;;EAGD;AAAA;IACC;;EAMD;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;;EAEA;IACC;;EAKH;IACC;;EAEA;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;;EAEA;IACC;;EAID;IACC;IACA;;;AAMJ;AAAA;EAEC;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;AAGA;EAEC;IACC;IACA;IACA;IACA;IACA;IACA;;EAEA;IACC;;EAIF;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;AAEA;EACC;;AAKA;EACC;;AAGD;EACC;;AAGD;EAEC;;AAGD;EAEC;EACA;EACA;;;AAKH;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;;AL7RA;EK4RD;IAGE;;;;ACrUH;EACC;EACA;EACA;;;AAGD;AACA;EACC;;;AAGD;AACA;AAA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DD;IACC;;;AASJ;EACC;EACA;;AAEA;EACC;;AAIF;EACC;EACA;;;AC/KH;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;;AAIF;EACC;;;AAID;EACC;;;ACrDD;AAAA;EAEC;EACA;EACA;;AAGA;AAAA;EACC;EACA;;AAGD;AAAA;EACC;EACA;EACA;;;AAIF;EACC;;AAEA;EACC;;;AAIF;EACC;;AAEA;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;EACA;;;AC1CD;AAqCC;AAAA;AAAA;;AAnCA;EACC;EACA;;AAGD;EACC;;AAGD;EACC;;AxB0BA;EwB3BD;IAIE;;;AAGD;EACC;EACA;;AxBMD;EwBRA;IAKE;IACA;;;AAGD;EACC;;AAGD;EACC;;AxBNF;EwBeD;IAEE;IACA;;;AAKF;EACC;;;AC/CA;EACC;EACA;EACA;;AAIF;EACC;;AAQC;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAOF;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;;AAQH;EACC;;AAEA;EACC;;AAWA;EAEC;;AAGD;EACC;EACA;;AAKH;EACC;;;ACnGH;EAEC;;AAGA;EACC;;AAID;EACC;;;ACXF;EACC;EACA;;;ACFD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAqCA;AAAA;AAAA;;AAnCA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;EACA;EACA;;AAMD;EACC;;AAKA;AAAA;EAEC;;AAIF;EAEC;;AAGD;EAEC;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAEA;EAPD;IAQE;;;AAGD;EACC;;AAGD;EACC;EACA;;AAEA;EACC;;AAIF;AAAA;AAAA;EAGC;;AAGD;EAEC;;AAEA;EACC;;;AC5GH;EACC;;A7BuBA;E6BxBD;IAIE;;;;ACNH;EACC;AAqBA;AAAA;AAAA;;AAnBA;EACC;EACA;EACA;EACA;;AAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAIC;;AAOF;EACC;EACA;EACA;;AAGA;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;;AAIF;EACC;;AAEA;EACC;;AAIF;EAEC;EACA;AAEA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAMA;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;;AAIF;AAAA;AAAA;AAAA;AAAA;EAGC;EACA;;A9B3ED;E8BiCD;IA8CE;;EAEA;IACC;;EAGD;IACC;IACA;;EAEA;IACC;;EAIF;IACC;IACA;;;A9BhGF;E8BuGA;IACC;IACA;;EAEA;IACC;;EAIF;IACC;IACA;;;;ACtIH;EACC;;AAEA;EACC;;AAID;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAMD;EACC;;AAEA;EACC;;AAKF;EAUC;;AAIF;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAKF;EACC;EACA;EACA;EACA;EACA;EACA;;AAID;EACC;EACA;EACA;;AAID;EACC;EACA;EACA;;AAEA;EAEC;;AAKF;AAAA;EAEC;EACA;EACA;EACA;;AAID;EACC;EACA;;AAEA;EAEC;EACA;;;ACzGH;EACC;;AAIC;EACC;;AAIF;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;EACC;;AAIF;EACC;EACA;;AAEA;EACC;;AAEA;EACC;EACA;EACA;;AAOD;EACC;EACA;;AAGD;EACC;;AAOF;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;;AAGA;EACC;EACA;EACA;;AAIF;EACC;;AAGA;EACC;;AAGD;EACC;;AAEA;EACC;EACA;;AAIF;EACC;;;AAOL;EACC;;;AClHD;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;AAiBA;AAAA;AAAA;;AAfA;EACC;;AAKA;EACC;;AAGD;EACC;;AAOF;EACC;;AAKA;EAEC;;AAEA;EACC;;AAIF;EACC;EACA;EACA;EACA;;AAIF;EAIC;;;ACtDF;EACC;;AAKA;EACC;;AAGD;EAEC;;;ACdH;AAAA;EAEC;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;EAEC;;AAGD;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;EAEC;EACA;;AAGD;AAAA;EACC;EACA;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;EAKC;;AAGD;AAAA;EACC;;AAEA;AAAA;AAAA;AAAA;EAEC;;AAGD;AAAA;EACC;;AAGD;AAAA;EACC;;;AAOF;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;AAAA;EAEC;EACA;;AAGD;EACC;EACA;EACA;EACA;;;AAIF;EACC;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAIF;EACC;;;AC9FD;EACC;EACA;;;ACJF;EACC;;;ACCA;EACC;EACA;EACA;EACA;EACA;;;AAIF;EACC;EACA;EACA;;;ACXA;AAAA;EAEC;;AAGD;AAAA;EAEC;;AAGD;AAAA;AAAA;AAAA;AAAA;EAKC;;AAGD;AAAA;EAEC;EACA;;AAGD;AAAA;AAAA;AAAA;EAIC;EACA;;AAGD;AAAA;EAEC;EACA;EAGA;;AAGD;AAAA;EAEC;EACA;EAGA;;;AClDF;AAEA;AAAA;AAAA;AAQA;AAAA;AAAA;AAGA;AAEC;EACA;EAEA;;;AAKD;EACC;;;AxCEC;EwCID;AAEC;IACA;AAEA;IACA;IACA;;EAGD;IACC;;;AAIF;AAAA;AAAA;AAGA;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;AAGA;EAEC;EACA;;;AAKD;EACC;;;AxC3CC;EwCiDD;AAEC;IACA;AAEA;IACA;;EAGD;IACC;;;AAKF;AAAA;EAEC;;;AAGD;AAAA;AAAA;AAGA;EACC;;;AAQD;AAAA;AAAA;AAGA;EACC;;;AAUD;EACC;;;AAGD;EACC;;;AAID;EACC;;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;;AxChIC;EwC+HF;IAIE;;;;A3CxDF;A4CpGA;EAEC;EACA;EACA;EACA;;AAEA;EACC;;AzCiBA;EyCzBF;IAYE;;;AzCiDA;EyC7DF;IAgBE;;;;AAKF;EACC;EACA;;AAEA;EACC;EACA;EACA;;AzCHA;EyCJF;IAWE;IACA;;;;AAKF;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EAGC;;AAGD;EAEC;;AzCnCD;EyCaF;IA4BE;;;;AAKF;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAID;EAEC;;AAEA;EACC;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AzC5EA;EyCiFA;IACC;IACA;IACA;IACA;;;;AzC3FD;EyC0GG;IACC;IACA;IACA;IACA;;EAEA;IACC;;EAGD;IACC;;EAMJ;IACC;;EAEA;IACC;;EAEA;IACC;;EAIF;IACC;;EAKA;IACC;;EAGD;IACC;IACA;;EAGD;IACC;IACA;IACA;;EAEA;IAGC;IACA;IACA;;EAWH;IACC;IACA;;EAKH;IACC;;;ACrMH;EACC;EACA;;AAIA;EACC;;A1CYA;E0CPA;IACC;;;;AAMH;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;AAAA;EAEC;;A1C2BA;E0C1CF;IAmBE;IACA;;EAEA;IACC;;EAGD;AAAA;IAEC;IACA;;EAGD;IACC;;;AAIF;EACC;;AAEA;EAGC;;AAGD;EACC;;AAGD;EACC;;AAEA;EACC;;AAID;EACC;;;AC/EJ;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;ACXD;EACC;;;AAID;EACC;;AAEA;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;;ACpBH;EAEC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAKH;EACC;;;AAGD;EACC;EACA;;;AAGD;AAAA;AAAA;AAIA;AAAA;EAEC;;;AAKA;EACC;;AAID;EAEC;EACA;;AASF;EAEC;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAEA;EAEC;;AAGD;EACC;;;AAMH;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEC;EACA;;AAGD;EACC;;AAGD;AAAA;AAAA;AAAA;EAIC;;A7C1GA;E6CiFF;IA6BE;;EAEA;IACC;;EAGD;AAAA;IAEC;;;;AAKH;AAAA;AAAA;AAIA;EAEC;;AAOA;EACC;EACA;EACA;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAIA;EACC;EACA;EACA;;AAEA;EACC;;AAMA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAMD;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;;AC9MH;EACC;;;AAGD;AAAA;EAEC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAaE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAUF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAMD;AAAA;AAAA;AAAA;AAAA;AAAA;EAEC;;AAQA;AAAA;AAAA;EACC;;;AAMJ;EACC;EACA;EACA;;;AClED;EACC;EACA;;;ACFD;EACC;;;ACDD;AAAA;AAAA;AAKC;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAMD;EACC;EACA;EACA;;AAGD;EACC;EACA;;AAGD;EACC;;;AAMH;AAAA;AAAA;AAIA;AAAA;EAEC;EACA;;;AAGD;EACC;EACA;;AAIC;EACC;EACA;EACA;EACA;EACA;;;AAKH;AACA;EACC;;;AAGD;AAAA;AAAA;AAGA;EACC;EACA;;AAEA;EACC;EACA;;;AAKF;EACC;EACA;;AAEA;EACC;EACA;;;AjD/DA;EiDoEF;AAAA;IAGE;;;;AAIF;AAAA;AAAA;AAKC;EACC;EACA;;AjDlFA;EiDgFD;IAKE;IACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;AAKF;EACC;EACA;EACA;;AAEA;EACC;;AjD1GD;EiD8EF;IAkCE;;EAEA;IACC;;;;AAKH;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AAAA;EAEC;;;AAID;EACC;EACA;;AAEA;EACC;EACA;;AAGD;EACC;;;AAIF;EACC;;;AAID;AAAA;EAEC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAEA;EACC;;;AAKH;EACC;;AAEA;EACC;;;AAIF;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;AAAA;EAEC;;AAGD;AAAA;EAEC;EACA;;AjD3NA;EiDwND;AAAA;IAME;;;AAIF;AAAA;EAEC;EACA;;;AAIF;EACC;;AAEA;EACC;;AAGD;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;EAKC;EACA;EACA;EACA;EACA;;AAGD;EACC;;AjD3PA;EiDgQA;IACC;;EAGD;IAEC;;;;AC5RH;EACC;EACA;EACA;EACA;EACA;EACA;;AlDUC;EkDhBF;IASE;;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAID;EACC;EACA;;AAGD;EACC;;AAQA;EACC;;AAGD;EACC;;AAEA;EACC;EACA;;AAQL;EACC;EACA;EACA;;AAEA;EACC;;;AAKH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAhBD;IAiBE;;;AlDtFD;EkDqED;IAqBE;IACA;IACA;IACA;IACA;;EAEA;IACC;IACA;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;;AlD9GF;EkDoHD;IAGE;IACA;IACA;;;AAGD;EACC;EACA;EACA;EACA;;AlDhID;EkDuIC;IACC;;;AlDlIF;EkDoDF;IAoFE;IACA;;EAGA;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;EAID;IACC;;EAID;IACC;;EAID;IACC;;EAEA;IACC;;;AAMH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AlDzLA;EkDiLD;IAWE;;EAEA;IACC;;;AAIF;EACC;EACA;EACA;;AlDhMD;EkD6LA;IAME;IACA;;EAEA;IACC;;;AAMH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AlD/NF;EkDmNA;IAgBE;;;AAGD;AAAA;EAEC;EACA;EACA;;AAEA;AAAA;EACC;;AAIF;EACC;;AAMA;EACC;;AAGD;EACC;;AAMH;EAEC;;AAGC;EALF;IAMG;;;AlDnQH;EkD6PA;IAWE;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IAEC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA;;EAGD;IACC;;EAGD;AAEC;IACA;AAEA;IACA;;EAEA;AAGC;IACA;AAEA;IACA;;EAIF;AAEC;IACA;AAEA;IACA;;EAEA;AAGC;IACA;AAEA;IACA;;;AAQL;EACC;;AlDjVA;EkDoVD;IAGE;IACA;;EAGA;IACC;;EAEA;IACC;IACA;;EAEA;IACC;;;AAQL;EACC;EACA;EACA;EACA;EACA;EACA;;AlDjXA;EkD2WD;IASE;IACA;IACA;IACA;;;AAGD;EACC;;AAGD;EAGC;;AAGD;EACC;EACA;;AAGD;EACC;EACA;EACA;EACA;;AAIF;AAAA;EAEC;EACA;;AAEA;AAAA;EACC;EACA;;AAKF;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;AlDraD;EkD4aC;IACC;;;AlDnbF;EkD2bE;IACC;;;AAKF;EACC;EACA;EACA;EACA;;AlD/bF;EkD2bC;IAOE;IACA;;;AASH;EACC;;AlD7cD;EkDkdC;IACC;IACA;;EAGD;IACC;;;AAMH;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;;AlD5eD;EkDofD;IACC;IACA;IACA;;;AAKF;EAEC;IACC;;EAGD;IACC;;;ACthBF;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EAEA;;AAEA;EACC;EACA;;AA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","file":"style.css"} \ No newline at end of file diff --git a/src/wp-content/themes/twentytwentytwo/functions.php b/src/wp-content/themes/twentytwentytwo/functions.php index 3b1dde74c43cd..cd994beec743f 100644 --- a/src/wp-content/themes/twentytwentytwo/functions.php +++ b/src/wp-content/themes/twentytwentytwo/functions.php @@ -26,7 +26,6 @@ function twentytwentytwo_support() { // Enqueue editor styles. add_editor_style( 'style.css' ); - } endif; @@ -56,7 +55,6 @@ function twentytwentytwo_styles() { // Enqueue theme stylesheet. wp_enqueue_style( 'twentytwentytwo-style' ); - } endif; diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-divider-dark.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-divider-dark.php index e13422c865d04..3255e9d7067aa 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-divider-dark.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-divider-dark.php @@ -6,8 +6,8 @@ 'title' => __( 'Divider with image and color (dark)', 'twentytwentytwo' ), 'categories' => array( 'featured' ), 'content' => ' -
-
+
+
', ); diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-divider-light.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-divider-light.php index 5df910ea8e818..a29b8252d7be1 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-divider-light.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-divider-light.php @@ -6,8 +6,8 @@ 'title' => __( 'Divider with image and color (light)', 'twentytwentytwo' ), 'categories' => array( 'featured' ), 'content' => ' -
-
+
+
', ); diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-two-images-text.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-two-images-text.php index 593d2b93bba3e..5534b6ffba701 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-two-images-text.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-two-images-text.php @@ -7,14 +7,14 @@ 'categories' => array( 'featured', 'columns', 'gallery' ), 'content' => '
-
-
' . esc_attr__( 'Illustration of a bird sitting on a branch.', 'twentytwentytwo' ) . '
+
+
' . esc_attr__( 'Illustration of a bird sitting on a branch.', 'twentytwentytwo' ) . '
-
-
' . esc_attr__( 'Illustration of a bird flying.', 'twentytwentytwo' ) . '
+
+
' . esc_attr__( 'Illustration of a bird flying.', 'twentytwentytwo' ) . '
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-wide-image-intro-buttons.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-wide-image-intro-buttons.php index ea9ecf291176e..373b0f48bb1cc 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-wide-image-intro-buttons.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-wide-image-intro-buttons.php @@ -6,8 +6,8 @@ 'title' => __( 'Wide image with introduction and buttons', 'twentytwentytwo' ), 'categories' => array( 'featured', 'columns' ), 'content' => ' -
-
' . esc_attr__( 'Illustration of a bird flying.', 'twentytwentytwo' ) . '
+
+
' . esc_attr__( 'Illustration of a bird flying.', 'twentytwentytwo' ) . '
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/header-large-dark.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-large-dark.php index dfb8c6f3717ab..5e4fea69ed5d4 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/header-large-dark.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-large-dark.php @@ -25,8 +25,8 @@
- -
' . esc_attr__( 'Illustration of a bird flying.', 'twentytwentytwo' ) . '
+ +
' . esc_attr__( 'Illustration of a bird flying.', 'twentytwentytwo' ) . '
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/header-small-dark.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-small-dark.php index 7c26516fe6365..832f414220921 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/header-small-dark.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/header-small-dark.php @@ -21,8 +21,8 @@
- -
' . esc_attr__( 'Illustration of a bird flying.', 'twentytwentytwo' ) . '
+ +
' . esc_attr__( 'Illustration of a bird flying.', 'twentytwentytwo' ) . '
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/hidden-bird.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/hidden-bird.php index c29d3d440a8af..cfc9db579450a 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/hidden-bird.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/hidden-bird.php @@ -8,7 +8,7 @@ return array( 'title' => __( 'Heading and bird image', 'twentytwentytwo' ), 'inserter' => false, - 'content' => ' -
' . esc_attr__( 'Illustration of a bird flying.', 'twentytwentytwo' ) . '
+ 'content' => ' +
' . esc_attr__( 'Illustration of a bird flying.', 'twentytwentytwo' ) . '
', ); diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/hidden-heading-and-bird.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/hidden-heading-and-bird.php index 28f3d6c5deb5e..d3f1788ac56d4 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/hidden-heading-and-bird.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/hidden-heading-and-bird.php @@ -15,7 +15,7 @@
- -
' . esc_attr__( 'Illustration of a bird flying.', 'twentytwentytwo' ) . '
+ +
' . esc_attr__( 'Illustration of a bird flying.', 'twentytwentytwo' ) . '
', ); diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-large-image-and-buttons.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-large-image-and-buttons.php index 7e03ed41e280c..12d44e793b055 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-large-image-and-buttons.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-about-large-image-and-buttons.php @@ -6,8 +6,8 @@ 'title' => __( 'About page with large image and buttons', 'twentytwentytwo' ), 'categories' => array( 'pages', 'buttons' ), 'content' => ' -
-
+
+
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-and-text.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-and-text.php index 7b6fa3ad810e8..eec6e0d88ca18 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-and-text.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-and-text.php @@ -11,8 +11,8 @@
- -
' . esc_attr_x( 'TBD', 'Short for to be determined', 'twentytwentytwo' ) . '
+ +
' . esc_attr_x( 'TBD', 'Short for to be determined', 'twentytwentytwo' ) . '
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-text-and-video.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-text-and-video.php index 7a7a6b79d32f9..bfb4e6e988c8a 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-text-and-video.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-layout-image-text-and-video.php @@ -38,8 +38,8 @@
- -
' . esc_attr__( 'An illustration of a bird in flight', 'twentytwentytwo' ) . '
+ +
' . esc_attr__( 'An illustration of a bird in flight', 'twentytwentytwo' ) . '
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-blog-posts-right.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-blog-posts-right.php index 84e3b081c664d..1601925020bd1 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-blog-posts-right.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-blog-posts-right.php @@ -54,8 +54,8 @@ -
-
' . esc_attr__( 'Illustration of a flying bird.', 'twentytwentytwo' ) . '
+
+
' . esc_attr__( 'Illustration of a flying bird.', 'twentytwentytwo' ) . '
diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-poster.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-poster.php index 62df8059ecd7d..bc744b1b837e5 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-poster.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/page-sidebar-poster.php @@ -22,8 +22,8 @@
-
-
' . esc_attr__( 'Image of a bird on a branch', 'twentytwentytwo' ) . '
+
+
' . esc_attr__( 'Image of a bird on a branch', 'twentytwentytwo' ) . '
diff --git a/src/wp-content/themes/twentytwentytwo/index.php b/src/wp-content/themes/twentytwentytwo/index.php index 27dc7057dc511..877d8c3f1e21c 100644 --- a/src/wp-content/themes/twentytwentytwo/index.php +++ b/src/wp-content/themes/twentytwentytwo/index.php @@ -2,4 +2,3 @@ // There is nothing output here because block themes do not use php templates. // There is a core ticket discussing removing this requirement for block themes: // https://core.trac.wordpress.org/ticket/54272. - diff --git a/src/wp-includes/PHPMailer/PHPMailer.php b/src/wp-includes/PHPMailer/PHPMailer.php index 79cf323307987..011fa92068e95 100644 --- a/src/wp-includes/PHPMailer/PHPMailer.php +++ b/src/wp-includes/PHPMailer/PHPMailer.php @@ -750,7 +750,7 @@ class PHPMailer * * @var string */ - const VERSION = '6.8.0'; + const VERSION = '6.8.1'; /** * Error severity: message only, continue processing. @@ -795,7 +795,7 @@ class PHPMailer * The maximum line length supported by mail(). * * Background: mail() will sometimes corrupt messages - * with headers headers longer than 65 chars, see #818. + * with headers longer than 65 chars, see #818. * * @var int */ diff --git a/src/wp-includes/PHPMailer/SMTP.php b/src/wp-includes/PHPMailer/SMTP.php index fc4b781a5fdeb..2b63840304749 100644 --- a/src/wp-includes/PHPMailer/SMTP.php +++ b/src/wp-includes/PHPMailer/SMTP.php @@ -35,7 +35,7 @@ class SMTP * * @var string */ - const VERSION = '6.8.0'; + const VERSION = '6.8.1'; /** * SMTP line break constant. @@ -704,7 +704,7 @@ public function close() * Send an SMTP DATA command. * Issues a data command and sends the msg_data to the server, * finalizing the mail transaction. $msg_data is the message - * that is to be send with the headers. Each header needs to be + * that is to be sent with the headers. Each header needs to be * on a single line followed by a with the message headers * and the message body being separated by an additional . * Implements RFC 821: DATA . @@ -732,7 +732,7 @@ public function data($msg_data) $lines = explode("\n", str_replace(["\r\n", "\r"], "\n", $msg_data)); /* To distinguish between a complete RFC822 message and a plain message body, we check if the first field - * of the first line (':' separated) does not contain a space then it _should_ be a header and we will + * of the first line (':' separated) does not contain a space then it _should_ be a header, and we will * process all lines before a blank line as headers. */ diff --git a/src/wp-includes/Requests/src/Requests.php b/src/wp-includes/Requests/src/Requests.php index 287bacaaa575b..edf37f2214983 100644 --- a/src/wp-includes/Requests/src/Requests.php +++ b/src/wp-includes/Requests/src/Requests.php @@ -148,7 +148,7 @@ class Requests { * * @var string */ - const VERSION = '2.0.6'; + const VERSION = '2.0.8'; /** * Selected transport name diff --git a/src/wp-includes/Requests/src/Transport/Curl.php b/src/wp-includes/Requests/src/Transport/Curl.php index 7316987b5faed..29034b25d5358 100644 --- a/src/wp-includes/Requests/src/Transport/Curl.php +++ b/src/wp-includes/Requests/src/Transport/Curl.php @@ -25,6 +25,7 @@ final class Curl implements Transport { const CURL_7_10_5 = 0x070A05; const CURL_7_16_2 = 0x071002; + const CURL_7_22_0 = 0x071600; /** * Raw HTTP data @@ -363,7 +364,7 @@ private function setup_handle($url, $headers, $data, $options) { $options['hooks']->dispatch('curl.before_request', [&$this->handle]); // Force closing the connection for old versions of cURL (<7.22). - if (!isset($headers['Connection'])) { + if ($this->version < self::CURL_7_22_0 && !isset($headers['Connection'])) { $headers['Connection'] = 'close'; } diff --git a/src/wp-includes/admin-bar.php b/src/wp-includes/admin-bar.php index d1d438d9e5843..ca35a56ae86f4 100644 --- a/src/wp-includes/admin-bar.php +++ b/src/wp-includes/admin-bar.php @@ -1100,7 +1100,6 @@ function wp_admin_bar_appearance_menu( $wp_admin_bar ) { ) ); } - } /** diff --git a/src/wp-includes/assets/script-loader-packages.min.php b/src/wp-includes/assets/script-loader-packages.min.php index 5e2fc87fa6349..70f46ec2b74e0 100644 --- a/src/wp-includes/assets/script-loader-packages.min.php +++ b/src/wp-includes/assets/script-loader-packages.min.php @@ -1 +1 @@ - array('dependencies' => array('wp-dom-ready', 'wp-i18n', 'wp-polyfill'), 'version' => 'd90eebea464f6c09bfd5'), 'annotations.min.js' => array('dependencies' => array('wp-data', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-rich-text'), 'version' => '682c9579f554fb26b1de'), 'api-fetch.min.js' => array('dependencies' => array('wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => '7adefb5a2462c9794332'), 'autop.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '9fb50649848277dd318d'), 'blob.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '4839ed746deca49ab64b'), 'block-directory.min.js' => array('dependencies' => array('wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives', 'wp-url'), 'version' => '15746e52461d865c4773'), 'block-editor.min.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-a11y', 'wp-api-fetch', 'wp-blob', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-rich-text', 'wp-shortcode', 'wp-style-engine', 'wp-token-list', 'wp-url', 'wp-warning', 'wp-wordcount'), 'version' => '50289c74b4b091cfd1c4'), 'block-library.min.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-api-fetch', 'wp-autop', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-escape-html', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-private-apis', 'wp-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-viewport', 'wp-wordcount'), 'version' => '085d8b8e8d69ddfd24ca'), 'block-serialization-default-parser.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '14d44daebf663d05d330'), 'blocks.min.js' => array('dependencies' => array('wp-autop', 'wp-blob', 'wp-block-serialization-default-parser', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-private-apis', 'wp-shortcode'), 'version' => 'd77a87425593989916ed'), 'commands.min.js' => array('dependencies' => array('react', 'react-dom', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-polyfill', 'wp-private-apis'), 'version' => 'dd209c644927a527bbec'), 'components.min.js' => array('dependencies' => array('react', 'react-dom', 'wp-a11y', 'wp-compose', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-escape-html', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-polyfill', 'wp-primitives', 'wp-private-apis', 'wp-rich-text', 'wp-warning'), 'version' => '0d4df8a554f1e01081cd'), 'compose.min.js' => array('dependencies' => array('react', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-polyfill', 'wp-priority-queue'), 'version' => '972bf65932d961478d57'), 'core-commands.min.js' => array('dependencies' => array('wp-commands', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives', 'wp-private-apis', 'wp-router', 'wp-url'), 'version' => 'b4701b8c2c63bed53182'), 'core-data.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-private-apis', 'wp-url'), 'version' => 'f6f0d082816872e05b7f'), 'customize-widgets.min.js' => array('dependencies' => array('wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-widgets'), 'version' => 'ae6ac53966bc3989caf4'), 'data.min.js' => array('dependencies' => array('wp-compose', 'wp-deprecated', 'wp-element', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-priority-queue', 'wp-private-apis', 'wp-redux-routine'), 'version' => 'eae78311d25d2417dd78'), 'data-controls.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-data', 'wp-deprecated', 'wp-polyfill'), 'version' => '49f5587e8b90f9e7cc7e'), 'date.min.js' => array('dependencies' => array('moment', 'wp-deprecated', 'wp-polyfill'), 'version' => '797289f1929aa2fae953'), 'deprecated.min.js' => array('dependencies' => array('wp-hooks', 'wp-polyfill'), 'version' => 'e1f84915c5e8ae38964c'), 'dom.min.js' => array('dependencies' => array('wp-deprecated', 'wp-polyfill'), 'version' => '47f4b3d423b82287e35d'), 'dom-ready.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'f77871ff7694fffea381'), 'edit-post.min.js' => array('dependencies' => array('wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-commands', 'wp-components', 'wp-compose', 'wp-core-commands', 'wp-core-data', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-url', 'wp-viewport', 'wp-warning', 'wp-widgets'), 'version' => '27b0fcb497dc1eb97006'), 'edit-site.min.js' => array('dependencies' => array('lodash', 'react', 'wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-commands', 'wp-components', 'wp-compose', 'wp-core-commands', 'wp-core-data', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-editor', 'wp-element', 'wp-escape-html', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-reusable-blocks', 'wp-router', 'wp-url', 'wp-viewport', 'wp-widgets', 'wp-wordcount'), 'version' => 'af73bfa4190785230d09'), 'edit-widgets.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-reusable-blocks', 'wp-url', 'wp-viewport', 'wp-widgets'), 'version' => '65427b90fd0c6b1c1b60'), 'editor.min.js' => array('dependencies' => array('react', 'wp-a11y', 'wp-api-fetch', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-wordcount'), 'version' => '5bacab2f68a10d19f608'), 'element.min.js' => array('dependencies' => array('react', 'react-dom', 'wp-escape-html', 'wp-polyfill'), 'version' => '9c7e1c05c67e37a69170'), 'escape-html.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '6561a406d2d232a6fbd2'), 'format-library.min.js' => array('dependencies' => array('wp-a11y', 'wp-block-editor', 'wp-components', 'wp-data', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-url'), 'version' => 'ee67175866c471628198'), 'hooks.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '2810c76e705dd1a53b18'), 'html-entities.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '2cd3358363e0675638fb'), 'i18n.min.js' => array('dependencies' => array('wp-hooks', 'wp-polyfill'), 'version' => 'aee497d955fe7a29a7d6'), 'is-shallow-equal.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'e0f9f1d78d83f5196979'), 'keyboard-shortcuts.min.js' => array('dependencies' => array('wp-data', 'wp-element', 'wp-keycodes', 'wp-polyfill'), 'version' => 'd7a04a89146882813a1d'), 'keycodes.min.js' => array('dependencies' => array('wp-i18n', 'wp-polyfill'), 'version' => '7e17818b141ff8f0eb95'), 'list-reusable-blocks.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-components', 'wp-compose', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => '6f61c2dc8619bb065454'), 'media-utils.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-blob', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => '3725b3cbc9d67853fce2'), 'notices.min.js' => array('dependencies' => array('wp-data', 'wp-polyfill'), 'version' => '673a68a7ac2f556ed50b'), 'nux.min.js' => array('dependencies' => array('wp-components', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives'), 'version' => '891d09ac9ffb76e20107'), 'plugins.min.js' => array('dependencies' => array('wp-compose', 'wp-element', 'wp-hooks', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-primitives'), 'version' => '8d8028769b73d89786e2'), 'preferences.min.js' => array('dependencies' => array('wp-a11y', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives'), 'version' => '2cbf4a1104ebd69652a8'), 'preferences-persistence.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-polyfill'), 'version' => '5171fd253f5534917b6c'), 'primitives.min.js' => array('dependencies' => array('wp-element', 'wp-polyfill'), 'version' => '1d3aa967b00fb37887a9'), 'priority-queue.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '391948bb0355121a7f52'), 'private-apis.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '55dfab9f13a5554dce56'), 'redux-routine.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '72ec9ed71190c996fe2e'), 'reusable-blocks.min.js' => array('dependencies' => array('wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-private-apis', 'wp-url'), 'version' => 'b87c3ffc8741b3b1c546'), 'rich-text.min.js' => array('dependencies' => array('wp-a11y', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-escape-html', 'wp-i18n', 'wp-keycodes', 'wp-polyfill'), 'version' => 'a0562bca55261ca1df5d'), 'router.min.js' => array('dependencies' => array('wp-element', 'wp-polyfill', 'wp-private-apis', 'wp-url'), 'version' => 'cd28266aa30e2c9b5ace'), 'server-side-render.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => '11791fb851599a57f732'), 'shortcode.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'b7747eee0efafd2f0c3b'), 'style-engine.min.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '461efc828aecd54b2ded'), 'token-list.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '05f8a6df6258f0081718'), 'url.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '2f2f8174a8336b08dbd8'), 'viewport.min.js' => array('dependencies' => array('wp-compose', 'wp-data', 'wp-element', 'wp-polyfill'), 'version' => '8222fccb0a9b934986c5'), 'warning.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '417316bc721869f879e4'), 'widgets.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n', 'wp-notices', 'wp-polyfill', 'wp-primitives'), 'version' => 'c6d0bd07e3eebf0d82d6'), 'wordcount.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '55d8c2bf3dc99e7ea5ec')); + array('dependencies' => array('wp-dom-ready', 'wp-i18n', 'wp-polyfill'), 'version' => 'd90eebea464f6c09bfd5'), 'annotations.min.js' => array('dependencies' => array('wp-data', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-rich-text'), 'version' => '682c9579f554fb26b1de'), 'api-fetch.min.js' => array('dependencies' => array('wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => '7adefb5a2462c9794332'), 'autop.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '9fb50649848277dd318d'), 'blob.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '4839ed746deca49ab64b'), 'block-directory.min.js' => array('dependencies' => array('wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives', 'wp-url'), 'version' => '15746e52461d865c4773'), 'block-editor.min.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-a11y', 'wp-api-fetch', 'wp-blob', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-rich-text', 'wp-shortcode', 'wp-style-engine', 'wp-token-list', 'wp-url', 'wp-warning', 'wp-wordcount'), 'version' => '5da4193e2207fa943786'), 'block-library.min.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-api-fetch', 'wp-autop', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-escape-html', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-private-apis', 'wp-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-viewport', 'wp-wordcount'), 'version' => 'ac97c74bdc161ff37707'), 'block-serialization-default-parser.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '14d44daebf663d05d330'), 'blocks.min.js' => array('dependencies' => array('wp-autop', 'wp-blob', 'wp-block-serialization-default-parser', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-private-apis', 'wp-shortcode'), 'version' => 'd77a87425593989916ed'), 'commands.min.js' => array('dependencies' => array('react', 'react-dom', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-polyfill', 'wp-private-apis'), 'version' => 'dd209c644927a527bbec'), 'components.min.js' => array('dependencies' => array('react', 'react-dom', 'wp-a11y', 'wp-compose', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-escape-html', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-polyfill', 'wp-primitives', 'wp-private-apis', 'wp-rich-text', 'wp-warning'), 'version' => '0d4df8a554f1e01081cd'), 'compose.min.js' => array('dependencies' => array('react', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-polyfill', 'wp-priority-queue'), 'version' => '972bf65932d961478d57'), 'core-commands.min.js' => array('dependencies' => array('wp-commands', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives', 'wp-private-apis', 'wp-router', 'wp-url'), 'version' => 'b4701b8c2c63bed53182'), 'core-data.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-private-apis', 'wp-url'), 'version' => '26412928ed8c468b995f'), 'customize-widgets.min.js' => array('dependencies' => array('wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-widgets'), 'version' => 'ae6ac53966bc3989caf4'), 'data.min.js' => array('dependencies' => array('wp-compose', 'wp-deprecated', 'wp-element', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-priority-queue', 'wp-private-apis', 'wp-redux-routine'), 'version' => 'eae78311d25d2417dd78'), 'data-controls.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-data', 'wp-deprecated', 'wp-polyfill'), 'version' => '49f5587e8b90f9e7cc7e'), 'date.min.js' => array('dependencies' => array('moment', 'wp-deprecated', 'wp-polyfill'), 'version' => '797289f1929aa2fae953'), 'deprecated.min.js' => array('dependencies' => array('wp-hooks', 'wp-polyfill'), 'version' => 'e1f84915c5e8ae38964c'), 'dom.min.js' => array('dependencies' => array('wp-deprecated', 'wp-polyfill'), 'version' => '47f4b3d423b82287e35d'), 'dom-ready.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'f77871ff7694fffea381'), 'edit-post.min.js' => array('dependencies' => array('wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-commands', 'wp-components', 'wp-compose', 'wp-core-commands', 'wp-core-data', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-url', 'wp-viewport', 'wp-warning', 'wp-widgets'), 'version' => '5dee0ee6a151686d8e19'), 'edit-site.min.js' => array('dependencies' => array('lodash', 'react', 'wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-commands', 'wp-components', 'wp-compose', 'wp-core-commands', 'wp-core-data', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-editor', 'wp-element', 'wp-escape-html', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-reusable-blocks', 'wp-router', 'wp-url', 'wp-viewport', 'wp-widgets', 'wp-wordcount'), 'version' => '9a985c2b07b51f4466ac'), 'edit-widgets.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-reusable-blocks', 'wp-url', 'wp-viewport', 'wp-widgets'), 'version' => '65427b90fd0c6b1c1b60'), 'editor.min.js' => array('dependencies' => array('react', 'wp-a11y', 'wp-api-fetch', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-wordcount'), 'version' => '5bacab2f68a10d19f608'), 'element.min.js' => array('dependencies' => array('react', 'react-dom', 'wp-escape-html', 'wp-polyfill'), 'version' => '9c7e1c05c67e37a69170'), 'escape-html.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '6561a406d2d232a6fbd2'), 'format-library.min.js' => array('dependencies' => array('wp-a11y', 'wp-block-editor', 'wp-components', 'wp-data', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-url'), 'version' => 'ee67175866c471628198'), 'hooks.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '2810c76e705dd1a53b18'), 'html-entities.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '2cd3358363e0675638fb'), 'i18n.min.js' => array('dependencies' => array('wp-hooks', 'wp-polyfill'), 'version' => 'aee497d955fe7a29a7d6'), 'is-shallow-equal.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'e0f9f1d78d83f5196979'), 'keyboard-shortcuts.min.js' => array('dependencies' => array('wp-data', 'wp-element', 'wp-keycodes', 'wp-polyfill'), 'version' => 'd7a04a89146882813a1d'), 'keycodes.min.js' => array('dependencies' => array('wp-i18n', 'wp-polyfill'), 'version' => '7e17818b141ff8f0eb95'), 'list-reusable-blocks.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-components', 'wp-compose', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => '6f61c2dc8619bb065454'), 'media-utils.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-blob', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => '3725b3cbc9d67853fce2'), 'notices.min.js' => array('dependencies' => array('wp-data', 'wp-polyfill'), 'version' => '673a68a7ac2f556ed50b'), 'nux.min.js' => array('dependencies' => array('wp-components', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives'), 'version' => '891d09ac9ffb76e20107'), 'plugins.min.js' => array('dependencies' => array('wp-compose', 'wp-element', 'wp-hooks', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-primitives'), 'version' => '8d8028769b73d89786e2'), 'preferences.min.js' => array('dependencies' => array('wp-a11y', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives'), 'version' => '2cbf4a1104ebd69652a8'), 'preferences-persistence.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-polyfill'), 'version' => '5171fd253f5534917b6c'), 'primitives.min.js' => array('dependencies' => array('wp-element', 'wp-polyfill'), 'version' => '1d3aa967b00fb37887a9'), 'priority-queue.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '391948bb0355121a7f52'), 'private-apis.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '55dfab9f13a5554dce56'), 'redux-routine.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '72ec9ed71190c996fe2e'), 'reusable-blocks.min.js' => array('dependencies' => array('wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-private-apis', 'wp-url'), 'version' => 'b87c3ffc8741b3b1c546'), 'rich-text.min.js' => array('dependencies' => array('wp-a11y', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-escape-html', 'wp-i18n', 'wp-keycodes', 'wp-polyfill'), 'version' => 'a0562bca55261ca1df5d'), 'router.min.js' => array('dependencies' => array('wp-element', 'wp-polyfill', 'wp-private-apis', 'wp-url'), 'version' => 'cd28266aa30e2c9b5ace'), 'server-side-render.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => '11791fb851599a57f732'), 'shortcode.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'b7747eee0efafd2f0c3b'), 'style-engine.min.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '461efc828aecd54b2ded'), 'token-list.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '05f8a6df6258f0081718'), 'url.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '2f2f8174a8336b08dbd8'), 'viewport.min.js' => array('dependencies' => array('wp-compose', 'wp-data', 'wp-element', 'wp-polyfill'), 'version' => '8222fccb0a9b934986c5'), 'warning.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '417316bc721869f879e4'), 'widgets.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n', 'wp-notices', 'wp-polyfill', 'wp-primitives'), 'version' => 'c6d0bd07e3eebf0d82d6'), 'wordcount.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '55d8c2bf3dc99e7ea5ec')); diff --git a/src/wp-includes/block-editor.php b/src/wp-includes/block-editor.php index 015a553f57b90..ba92c0ec3f2b7 100644 --- a/src/wp-includes/block-editor.php +++ b/src/wp-includes/block-editor.php @@ -361,6 +361,7 @@ function _wp_get_iframed_editor_assets() { ob_start(); wp_print_styles(); + wp_print_font_faces(); $styles = ob_get_clean(); ob_start(); @@ -408,11 +409,12 @@ function wp_get_first_block( $blocks, $block_name ) { * Retrieves Post Content block attributes from the current post template. * * @since 6.3.0 + * @since 6.4.0 Return null if there is no post content block. * @access private * * @global int $post_ID * - * @return array Post Content block attributes or empty array if they don't exist. + * @return array|null Post Content block attributes array or null if Post Content block doesn't exist. */ function wp_get_post_content_block_attributes() { global $post_ID; @@ -420,7 +422,7 @@ function wp_get_post_content_block_attributes() { $is_block_theme = wp_is_block_theme(); if ( ! $is_block_theme || ! $post_ID ) { - return array(); + return null; } $template_slug = get_page_template_slug( $post_ID ); @@ -456,12 +458,12 @@ function wp_get_post_content_block_attributes() { $template_blocks = parse_blocks( $current_template[0]->content ); $post_content_block = wp_get_first_block( $template_blocks, 'core/post-content' ); - if ( ! empty( $post_content_block['attrs'] ) ) { + if ( isset( $post_content_block['attrs'] ) ) { return $post_content_block['attrs']; } } - return array(); + return null; } /** @@ -634,7 +636,7 @@ function get_block_editor_settings( array $custom_settings, $block_editor_contex $post_content_block_attributes = wp_get_post_content_block_attributes(); - if ( ! empty( $post_content_block_attributes ) ) { + if ( isset( $post_content_block_attributes ) ) { $editor_settings['postContentAttributes'] = $post_content_block_attributes; } diff --git a/src/wp-includes/block-patterns.php b/src/wp-includes/block-patterns.php index a2d90a261e43b..5c7fc59f89c00 100644 --- a/src/wp-includes/block-patterns.php +++ b/src/wp-includes/block-patterns.php @@ -468,10 +468,10 @@ function _register_theme_block_patterns() { // Translate the pattern metadata. $text_domain = $theme->get( 'TextDomain' ); - //phpcs:ignore WordPress.WP.I18n.NonSingularStringLiteralText, WordPress.WP.I18n.NonSingularStringLiteralContext, WordPress.WP.I18n.NonSingularStringLiteralDomain, WordPress.WP.I18n.LowLevelTranslationFunction + // phpcs:ignore WordPress.WP.I18n.NonSingularStringLiteralText, WordPress.WP.I18n.NonSingularStringLiteralContext, WordPress.WP.I18n.NonSingularStringLiteralDomain, WordPress.WP.I18n.LowLevelTranslationFunction $pattern_data['title'] = translate_with_gettext_context( $pattern_data['title'], 'Pattern title', $text_domain ); if ( ! empty( $pattern_data['description'] ) ) { - //phpcs:ignore WordPress.WP.I18n.NonSingularStringLiteralText, WordPress.WP.I18n.NonSingularStringLiteralContext, WordPress.WP.I18n.NonSingularStringLiteralDomain, WordPress.WP.I18n.LowLevelTranslationFunction + // phpcs:ignore WordPress.WP.I18n.NonSingularStringLiteralText, WordPress.WP.I18n.NonSingularStringLiteralContext, WordPress.WP.I18n.NonSingularStringLiteralDomain, WordPress.WP.I18n.LowLevelTranslationFunction $pattern_data['description'] = translate_with_gettext_context( $pattern_data['description'], 'Pattern description', $text_domain ); } diff --git a/src/wp-includes/block-supports/background.php b/src/wp-includes/block-supports/background.php new file mode 100644 index 0000000000000..6db1e22587cc8 --- /dev/null +++ b/src/wp-includes/block-supports/background.php @@ -0,0 +1,112 @@ +attributes ) { + $block_type->attributes = array(); + } + + // Check for existing style attribute definition e.g. from block.json. + if ( array_key_exists( 'style', $block_type->attributes ) ) { + return; + } + + $has_background_support = block_has_support( $block_type, array( 'background' ), false ); + + if ( $has_background_support ) { + $block_type->attributes['style'] = array( + 'type' => 'object', + ); + } +} + +/** + * Renders the background styles to the block wrapper. + * This block support uses the `render_block` hook to ensure that + * it is also applied to non-server-rendered blocks. + * + * @since 6.4.0 + * @access private + * + * @param string $block_content Rendered block content. + * @param array $block Block object. + * @return string Filtered block content. + */ +function wp_render_background_support( $block_content, $block ) { + $block_type = WP_Block_Type_Registry::get_instance()->get_registered( $block['blockName'] ); + $block_attributes = $block['attrs']; + $has_background_image_support = block_has_support( $block_type, array( 'background', 'backgroundImage' ), false ); + + if ( + ! $has_background_image_support || + wp_should_skip_block_supports_serialization( $block_type, 'background', 'backgroundImage' ) + ) { + return $block_content; + } + + $background_image_source = _wp_array_get( $block_attributes, array( 'style', 'background', 'backgroundImage', 'source' ), null ); + $background_image_url = _wp_array_get( $block_attributes, array( 'style', 'background', 'backgroundImage', 'url' ), null ); + $background_size = _wp_array_get( $block_attributes, array( 'style', 'background', 'backgroundSize' ), 'cover' ); + + $background_block_styles = array(); + + if ( + 'file' === $background_image_source && + $background_image_url + ) { + // Set file based background URL. + $background_block_styles['backgroundImage']['url'] = $background_image_url; + // Only output the background size when an image url is set. + $background_block_styles['backgroundSize'] = $background_size; + } + + $styles = wp_style_engine_get_styles( array( 'background' => $background_block_styles ) ); + + if ( ! empty( $styles['css'] ) ) { + // Inject background styles to the first element, presuming it's the wrapper, if it exists. + $tags = new WP_HTML_Tag_Processor( $block_content ); + + if ( $tags->next_tag() ) { + $existing_style = $tags->get_attribute( 'style' ); + $updated_style = ''; + + if ( ! empty( $existing_style ) ) { + $updated_style = $existing_style; + if ( ! str_ends_with( $existing_style, ';' ) ) { + $updated_style .= ';'; + } + } + + $updated_style .= $styles['css']; + $tags->set_attribute( 'style', $updated_style ); + } + + return $tags->get_updated_html(); + } + + return $block_content; +} + +// Register the block support. +WP_Block_Supports::get_instance()->register( + 'background', + array( + 'register_attribute' => 'wp_register_background_support', + ) +); + +add_filter( 'render_block', 'wp_render_background_support', 10, 2 ); diff --git a/src/wp-includes/block-supports/colors.php b/src/wp-includes/block-supports/colors.php index 25fe3edd6018d..ad949a3b5ba9b 100644 --- a/src/wp-includes/block-supports/colors.php +++ b/src/wp-includes/block-supports/colors.php @@ -21,10 +21,14 @@ function wp_register_colors_support( $block_type ) { $has_background_colors_support = true === $color_support || ( is_array( $color_support ) && _wp_array_get( $color_support, array( 'background' ), true ) ); $has_gradients_support = _wp_array_get( $color_support, array( 'gradients' ), false ); $has_link_colors_support = _wp_array_get( $color_support, array( 'link' ), false ); + $has_button_colors_support = _wp_array_get( $color_support, array( 'button' ), false ); + $has_heading_colors_support = _wp_array_get( $color_support, array( 'heading' ), false ); $has_color_support = $has_text_colors_support || $has_background_colors_support || $has_gradients_support || - $has_link_colors_support; + $has_link_colors_support || + $has_button_colors_support || + $has_heading_colors_support; if ( ! $block_type->attributes ) { $block_type->attributes = array(); diff --git a/src/wp-includes/block-supports/elements.php b/src/wp-includes/block-supports/elements.php index fa2536908ca6e..a388ad403fb3a 100644 --- a/src/wp-includes/block-supports/elements.php +++ b/src/wp-includes/block-supports/elements.php @@ -23,6 +23,7 @@ function wp_get_elements_class_name( $block ) { * Updates the block content with elements class names. * * @since 5.8.0 + * @since 6.4.0 Added support for button and heading element styling. * @access private * * @param string $block_content Rendered block content. @@ -30,34 +31,79 @@ function wp_get_elements_class_name( $block ) { * @return string Filtered block content. */ function wp_render_elements_support( $block_content, $block ) { - if ( ! $block_content ) { + if ( ! $block_content || empty( $block['attrs'] ) ) { return $block_content; } - $block_type = WP_Block_Type_Registry::get_instance()->get_registered( $block['blockName'] ); - $skip_link_color_serialization = wp_should_skip_block_supports_serialization( $block_type, 'color', 'link' ); + $block_type = WP_Block_Type_Registry::get_instance()->get_registered( $block['blockName'] ); + + $element_color_properties = array( + 'button' => array( + 'skip' => wp_should_skip_block_supports_serialization( $block_type, 'color', 'button' ), + 'paths' => array( + 'style.elements.button.color.text', + 'style.elements.button.color.background', + 'style.elements.button.color.gradient', + ), + ), + 'link' => array( + 'skip' => wp_should_skip_block_supports_serialization( $block_type, 'color', 'link' ), + 'paths' => array( + 'style.elements.link.color.text', + 'style.elements.link.:hover.color.text', + ), + ), + 'heading' => array( + 'skip' => wp_should_skip_block_supports_serialization( $block_type, 'color', 'heading' ), + 'paths' => array( + 'style.elements.heading.color.text', + 'style.elements.heading.color.background', + 'style.elements.heading.color.gradient', + 'style.elements.h1.color.text', + 'style.elements.h1.color.background', + 'style.elements.h1.color.gradient', + 'style.elements.h2.color.text', + 'style.elements.h2.color.background', + 'style.elements.h2.color.gradient', + 'style.elements.h3.color.text', + 'style.elements.h3.color.background', + 'style.elements.h3.color.gradient', + 'style.elements.h4.color.text', + 'style.elements.h4.color.background', + 'style.elements.h4.color.gradient', + 'style.elements.h5.color.text', + 'style.elements.h5.color.background', + 'style.elements.h5.color.gradient', + 'style.elements.h6.color.text', + 'style.elements.h6.color.background', + 'style.elements.h6.color.gradient', + ), + ), + ); + + $skip_all_element_color_serialization = $element_color_properties['button']['skip'] && + $element_color_properties['link']['skip'] && + $element_color_properties['heading']['skip']; - if ( $skip_link_color_serialization ) { + if ( $skip_all_element_color_serialization ) { return $block_content; } - $link_color = null; - if ( ! empty( $block['attrs'] ) ) { - $link_color = _wp_array_get( $block['attrs'], array( 'style', 'elements', 'link', 'color', 'text' ), null ); - } + $element_colors_set = 0; + + foreach ( $element_color_properties as $element_config ) { + if ( $element_config['skip'] ) { + continue; + } - $hover_link_color = null; - if ( ! empty( $block['attrs'] ) ) { - $hover_link_color = _wp_array_get( $block['attrs'], array( 'style', 'elements', 'link', ':hover', 'color', 'text' ), null ); + foreach ( $element_config['paths'] as $path ) { + if ( null !== _wp_array_get( $block['attrs'], explode( '.', $path ), null ) ) { + $element_colors_set++; + } + } } - /* - * For now we only care about link colors. - * This code in the future when we have a public API - * should take advantage of WP_Theme_JSON::compute_style_properties - * and work for any element and style. - */ - if ( null === $link_color && null === $hover_link_color ) { + if ( ! $element_colors_set ) { return $block_content; } @@ -90,33 +136,84 @@ function wp_render_elements_support_styles( $pre_render, $block ) { $block_type = WP_Block_Type_Registry::get_instance()->get_registered( $block['blockName'] ); $element_block_styles = isset( $block['attrs']['style']['elements'] ) ? $block['attrs']['style']['elements'] : null; - /* - * For now we only care about link color. - */ - $skip_link_color_serialization = wp_should_skip_block_supports_serialization( $block_type, 'color', 'link' ); + if ( ! $element_block_styles ) { + return null; + } - if ( $skip_link_color_serialization ) { + $skip_link_color_serialization = wp_should_skip_block_supports_serialization( $block_type, 'color', 'link' ); + $skip_heading_color_serialization = wp_should_skip_block_supports_serialization( $block_type, 'color', 'heading' ); + $skip_button_color_serialization = wp_should_skip_block_supports_serialization( $block_type, 'color', 'button' ); + $skips_all_element_color_serialization = $skip_link_color_serialization && + $skip_heading_color_serialization && + $skip_button_color_serialization; + + if ( $skips_all_element_color_serialization ) { return null; } - $class_name = wp_get_elements_class_name( $block ); - $link_block_styles = isset( $element_block_styles['link'] ) ? $element_block_styles['link'] : null; - - wp_style_engine_get_styles( - $link_block_styles, - array( - 'selector' => ".$class_name a", - 'context' => 'block-supports', - ) + + $class_name = wp_get_elements_class_name( $block ); + + $element_types = array( + 'button' => array( + 'selector' => ".$class_name .wp-element-button, .$class_name .wp-block-button__link", + 'skip' => $skip_button_color_serialization, + ), + 'link' => array( + 'selector' => ".$class_name a", + 'hover_selector' => ".$class_name a:hover", + 'skip' => $skip_link_color_serialization, + ), + 'heading' => array( + 'selector' => ".$class_name h1, .$class_name h2, .$class_name h3, .$class_name h4, .$class_name h5, .$class_name h6", + 'skip' => $skip_heading_color_serialization, + 'elements' => array( 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' ), + ), ); - if ( isset( $link_block_styles[':hover'] ) ) { - wp_style_engine_get_styles( - $link_block_styles[':hover'], - array( - 'selector' => ".$class_name a:hover", - 'context' => 'block-supports', - ) - ); + foreach ( $element_types as $element_type => $element_config ) { + if ( $element_config['skip'] ) { + continue; + } + + $element_style_object = _wp_array_get( $element_block_styles, array( $element_type ), null ); + + // Process primary element type styles. + if ( $element_style_object ) { + wp_style_engine_get_styles( + $element_style_object, + array( + 'selector' => $element_config['selector'], + 'context' => 'block-supports', + ) + ); + + if ( isset( $element_style_object[':hover'] ) ) { + wp_style_engine_get_styles( + $element_style_object[':hover'], + array( + 'selector' => $element_config['hover_selector'], + 'context' => 'block-supports', + ) + ); + } + } + + // Process related elements e.g. h1-h6 for headings. + if ( isset( $element_config['elements'] ) ) { + foreach ( $element_config['elements'] as $element ) { + $element_style_object = _wp_array_get( $element_block_styles, array( $element ), null ); + + if ( $element_style_object ) { + wp_style_engine_get_styles( + $element_style_object, + array( + 'selector' => ".$class_name $element", + 'context' => 'block-supports', + ) + ); + } + } + } } return null; diff --git a/src/wp-includes/block-supports/layout.php b/src/wp-includes/block-supports/layout.php index 519574238dee9..89713c772d206 100644 --- a/src/wp-includes/block-supports/layout.php +++ b/src/wp-includes/block-supports/layout.php @@ -789,7 +789,7 @@ function wp_restore_group_inner_container( $block_content, $block ) { ); $updated_content = preg_replace_callback( $replace_regex, - static function( $matches ) { + static function ( $matches ) { return $matches[1] . '
' . $matches[2] . '
' . $matches[3]; }, $block_content diff --git a/src/wp-includes/block-supports/typography.php b/src/wp-includes/block-supports/typography.php index 78c8b0a2ffd0d..f1a69572a0f6c 100644 --- a/src/wp-includes/block-supports/typography.php +++ b/src/wp-includes/block-supports/typography.php @@ -34,6 +34,7 @@ function wp_register_typography_support( $block_type ) { $has_text_columns_support = _wp_array_get( $typography_supports, array( 'textColumns' ), false ); $has_text_decoration_support = _wp_array_get( $typography_supports, array( '__experimentalTextDecoration' ), false ); $has_text_transform_support = _wp_array_get( $typography_supports, array( '__experimentalTextTransform' ), false ); + $has_writing_mode_support = _wp_array_get( $typography_supports, array( '__experimentalWritingMode' ), false ); $has_typography_support = $has_font_family_support || $has_font_size_support @@ -43,7 +44,8 @@ function wp_register_typography_support( $block_type ) { || $has_line_height_support || $has_text_columns_support || $has_text_decoration_support - || $has_text_transform_support; + || $has_text_transform_support + || $has_writing_mode_support; if ( ! $block_type->attributes ) { $block_type->attributes = array(); @@ -105,6 +107,7 @@ function wp_apply_typography_support( $block_type, $block_attributes ) { $has_text_columns_support = _wp_array_get( $typography_supports, array( 'textColumns' ), false ); $has_text_decoration_support = _wp_array_get( $typography_supports, array( '__experimentalTextDecoration' ), false ); $has_text_transform_support = _wp_array_get( $typography_supports, array( '__experimentalTextTransform' ), false ); + $has_writing_mode_support = _wp_array_get( $typography_supports, array( '__experimentalWritingMode' ), false ); // Whether to skip individual block support features. $should_skip_font_size = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'fontSize' ); @@ -116,6 +119,7 @@ function wp_apply_typography_support( $block_type, $block_attributes ) { $should_skip_text_decoration = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'textDecoration' ); $should_skip_text_transform = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'textTransform' ); $should_skip_letter_spacing = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'letterSpacing' ); + $should_skip_writing_mode = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'writingMode' ); $typography_block_styles = array(); if ( $has_font_size_support && ! $should_skip_font_size ) { @@ -205,6 +209,17 @@ function wp_apply_typography_support( $block_type, $block_attributes ) { ); } + if ( $has_writing_mode_support && + ! $should_skip_writing_mode && + isset( $block_attributes['style']['typography']['writingMode'] ) + ) { + $typography_block_styles['writingMode'] = _wp_array_get( + $block_attributes, + array( 'style', 'typography', 'writingMode' ), + null + ); + } + $attributes = array(); $styles = wp_style_engine_get_styles( array( 'typography' => $typography_block_styles ), @@ -471,6 +486,7 @@ function wp_get_computed_fluid_typography_value( $args = array() ) { * @since 6.1.1 Adjusted rules for min and max font sizes. * @since 6.2.0 Added 'settings.typography.fluid.minFontSize' support. * @since 6.3.0 Using layout.wideSize as max viewport width, and logarithmic scale factor to calculate minimum font scale. + * @since 6.4.0 Added configurable min and max viewport width values to the typography.fluid theme.json schema. * * @param array $preset { * Required. fontSizes preset value as seen in theme.json. @@ -517,14 +533,21 @@ function wp_get_typography_font_size_value( $preset, $should_use_fluid_typograph : array(); // Defaults. - $default_maximum_viewport_width = isset( $layout_settings['wideSize'] ) ? $layout_settings['wideSize'] : '1600px'; + $default_maximum_viewport_width = '1600px'; $default_minimum_viewport_width = '320px'; $default_minimum_font_size_factor_max = 0.75; $default_minimum_font_size_factor_min = 0.25; $default_scale_factor = 1; - $has_min_font_size = isset( $fluid_settings['minFontSize'] ) && - ! empty( wp_get_typography_value_and_unit( $fluid_settings['minFontSize'] ) ); - $default_minimum_font_size_limit = $has_min_font_size ? $fluid_settings['minFontSize'] : '14px'; + $default_minimum_font_size_limit = '14px'; + + // Defaults overrides. + $minimum_viewport_width = isset( $fluid_settings['minViewportWidth'] ) ? $fluid_settings['minViewportWidth'] : $default_minimum_viewport_width; + $maximum_viewport_width = isset( $layout_settings['wideSize'] ) && ! empty( wp_get_typography_value_and_unit( $layout_settings['wideSize'] ) ) ? $layout_settings['wideSize'] : $default_maximum_viewport_width; + if ( isset( $fluid_settings['maxViewportWidth'] ) ) { + $maximum_viewport_width = $fluid_settings['maxViewportWidth']; + } + $has_min_font_size = isset( $fluid_settings['minFontSize'] ) && ! empty( wp_get_typography_value_and_unit( $fluid_settings['minFontSize'] ) ); + $minimum_font_size_limit = $has_min_font_size ? $fluid_settings['minFontSize'] : $default_minimum_font_size_limit; // Font sizes. $fluid_font_size_settings = isset( $preset['fluid'] ) ? $preset['fluid'] : null; @@ -551,7 +574,7 @@ function wp_get_typography_font_size_value( $preset, $should_use_fluid_typograph * in order to perform comparative checks. */ $minimum_font_size_limit = wp_get_typography_value_and_unit( - $default_minimum_font_size_limit, + $minimum_font_size_limit, array( 'coerce_to' => $preferred_size['unit'], ) @@ -600,8 +623,8 @@ function wp_get_typography_font_size_value( $preset, $should_use_fluid_typograph $fluid_font_size_value = wp_get_computed_fluid_typography_value( array( - 'minimum_viewport_width' => $default_minimum_viewport_width, - 'maximum_viewport_width' => $default_maximum_viewport_width, + 'minimum_viewport_width' => $minimum_viewport_width, + 'maximum_viewport_width' => $maximum_viewport_width, 'minimum_font_size' => $minimum_font_size_raw, 'maximum_font_size' => $maximum_font_size_raw, 'scale_factor' => $default_scale_factor, diff --git a/src/wp-includes/block-template-utils.php b/src/wp-includes/block-template-utils.php index b8538ee3b43e2..808e83e7b9c0b 100644 --- a/src/wp-includes/block-template-utils.php +++ b/src/wp-includes/block-template-utils.php @@ -37,21 +37,15 @@ * } */ function get_block_theme_folders( $theme_stylesheet = null ) { - $theme_name = null === $theme_stylesheet ? get_stylesheet() : $theme_stylesheet; - $root_dir = get_theme_root( $theme_name ); - $theme_dir = "$root_dir/$theme_name"; - - if ( file_exists( $theme_dir . '/block-templates' ) || file_exists( $theme_dir . '/block-template-parts' ) ) { + $theme = wp_get_theme( (string) $theme_stylesheet ); + if ( ! $theme->exists() ) { + // Return the default folders if the theme doesn't exist. return array( - 'wp_template' => 'block-templates', - 'wp_template_part' => 'block-template-parts', + 'wp_template' => 'templates', + 'wp_template_part' => 'parts', ); } - - return array( - 'wp_template' => 'templates', - 'wp_template_part' => 'parts', - ); + return $theme->get_block_template_folders(); } /** @@ -513,6 +507,26 @@ function _inject_theme_attribute_in_block_template_content( $template_content ) return $template_content; } +/** + * Injects the active theme's stylesheet as a `theme` attribute + * into a given template part block. + * + * @since 6.4.0 + * @access private + * + * @param array $block a parsed block. + * @return array Updated block. + */ +function _inject_theme_attribute_in_template_part_block( $block ) { + if ( + 'core/template-part' === $block['blockName'] && + ! isset( $block['attrs']['theme'] ) + ) { + $block['attrs']['theme'] = get_stylesheet(); + } + return $block; +} + /** * Parses a block template and removes the theme attribute from each template part. * @@ -565,7 +579,6 @@ function _build_block_template_result_from_file( $template_file, $template_type $template = new WP_Block_Template(); $template->id = $theme . '//' . $template_file['slug']; $template->theme = $theme; - $template->content = _inject_theme_attribute_in_block_template_content( $template_content ); $template->slug = $template_file['slug']; $template->source = 'theme'; $template->type = $template_type; @@ -589,6 +602,9 @@ function _build_block_template_result_from_file( $template_file, $template_type $template->area = $template_file['area']; } + $blocks = parse_blocks( $template_content ); + $template->content = traverse_and_serialize_blocks( $blocks, '_inject_theme_attribute_in_template_part_block' ); + return $template; } diff --git a/src/wp-includes/block-template.php b/src/wp-includes/block-template.php index 794aec91203aa..ffed0e04364c0 100644 --- a/src/wp-includes/block-template.php +++ b/src/wp-includes/block-template.php @@ -210,12 +210,12 @@ function _block_template_render_title_tag() { * * @global string $_wp_current_template_content * @global WP_Embed $wp_embed + * @global WP_Query $wp_query * * @return string Block template markup. */ function get_the_block_template_html() { - global $_wp_current_template_content; - global $wp_embed; + global $_wp_current_template_content, $wp_embed, $wp_query; if ( ! $_wp_current_template_content ) { if ( is_user_logged_in() ) { @@ -228,7 +228,30 @@ function get_the_block_template_html() { $content = $wp_embed->autoembed( $content ); $content = shortcode_unautop( $content ); $content = do_shortcode( $content ); - $content = do_blocks( $content ); + + /* + * Most block themes omit the `core/query` and `core/post-template` blocks in their singular content templates. + * While this technically still works since singular content templates are always for only one post, it results in + * the main query loop never being entered which causes bugs in core and the plugin ecosystem. + * + * The workaround below ensures that the loop is started even for those singular templates. The while loop will by + * definition only go through a single iteration, i.e. `do_blocks()` is only called once. Additional safeguard + * checks are included to ensure the main query loop has not been tampered with and really only encompasses a + * single post. + * + * Even if the block template contained a `core/query` and `core/post-template` block referencing the main query + * loop, it would not cause errors since it would use a cloned instance and go through the same loop of a single + * post, within the actual main query loop. + */ + if ( is_singular() && 1 === $wp_query->post_count && have_posts() ) { + while ( have_posts() ) { + the_post(); + $content = do_blocks( $content ); + } + } else { + $content = do_blocks( $content ); + } + $content = wptexturize( $content ); $content = convert_smilies( $content ); $content = wp_filter_content_tags( $content, 'template' ); diff --git a/src/wp-includes/blocks.php b/src/wp-includes/blocks.php index 5f48c0af59eaf..fe9c56a551235 100644 --- a/src/wp-includes/blocks.php +++ b/src/wp-includes/blocks.php @@ -150,11 +150,11 @@ function register_block_script_handle( $metadata, $field_name, $index = 0 ) { * Determine if the block script was registered in a theme, by checking if the script path starts with either * the parent (template) or child (stylesheet) directory path. */ - $is_parent_theme_block = str_starts_with( $script_path_norm, $template_path_norm ); - $is_child_theme_block = str_starts_with( $script_path_norm, $stylesheet_path_norm ); + $is_parent_theme_block = str_starts_with( $script_path_norm, trailingslashit( $template_path_norm ) ); + $is_child_theme_block = str_starts_with( $script_path_norm, trailingslashit( $stylesheet_path_norm ) ); $is_theme_block = ( $is_parent_theme_block || $is_child_theme_block ); - $script_uri = plugins_url( $script_path, $metadata['file'] ); + $script_uri = ''; if ( $is_core_block ) { $script_uri = includes_url( str_replace( $wpinc_path_norm, '', $script_path_norm ) ); } elseif ( $is_theme_block ) { @@ -162,6 +162,9 @@ function register_block_script_handle( $metadata, $field_name, $index = 0 ) { $script_uri = $is_parent_theme_block ? get_theme_file_uri( str_replace( $template_path_norm, '', $script_path_norm ) ) : get_theme_file_uri( str_replace( $stylesheet_path_norm, '', $script_path_norm ) ); + } else { + // Fallback to plugins_url(). + $script_uri = plugins_url( $script_path, $metadata['file'] ); } $script_args = array(); @@ -267,8 +270,8 @@ function register_block_style_handle( $metadata, $field_name, $index = 0 ) { // Determine if the block style was registered in a theme, by checking if the script path starts with either // the parent (template) or child (stylesheet) directory path. - $is_parent_theme_block = str_starts_with( $style_path_norm, $template_path_norm ); - $is_child_theme_block = str_starts_with( $style_path_norm, $stylesheet_path_norm ); + $is_parent_theme_block = str_starts_with( $style_path_norm, trailingslashit( $template_path_norm ) ); + $is_child_theme_block = str_starts_with( $style_path_norm, trailingslashit( $stylesheet_path_norm ) ); $is_theme_block = ( $is_parent_theme_block || $is_child_theme_block ); if ( $is_core_block ) { @@ -339,6 +342,7 @@ function get_block_metadata_i18n_schema() { * @since 5.9.0 Added support for `variations` and `viewScript` fields. * @since 6.1.0 Added support for `render` field. * @since 6.3.0 Added `selectors` field. + * @since 6.4.0 Added support for `blockHooks` field. * * @param string $file_or_folder Path to the JSON file with metadata definition for * the block or path to the folder where the `block.json` file is located. @@ -510,6 +514,39 @@ function register_block_type_from_metadata( $file_or_folder, $args = array() ) { } } + if ( ! empty( $metadata['blockHooks'] ) ) { + /** + * Map camelCased position string (from block.json) to snake_cased block type position. + * + * @var array + */ + $position_mappings = array( + 'before' => 'before', + 'after' => 'after', + 'firstChild' => 'first_child', + 'lastChild' => 'last_child', + ); + + $settings['block_hooks'] = array(); + foreach ( $metadata['blockHooks'] as $anchor_block_name => $position ) { + // Avoid infinite recursion (hooking to itself). + if ( $metadata['name'] === $anchor_block_name ) { + _doing_it_wrong( + __METHOD__, + __( 'Cannot hook block to itself.' ), + '6.4.0' + ); + continue; + } + + if ( ! isset( $position_mappings[ $position ] ) ) { + continue; + } + + $settings['block_hooks'][ $anchor_block_name ] = $position_mappings[ $position ]; + } + } + if ( ! empty( $metadata['render'] ) ) { $template_path = wp_normalize_path( realpath( @@ -529,7 +566,7 @@ function register_block_type_from_metadata( $file_or_folder, $args = array() ) { * * @return string Returns the block content. */ - $settings['render_callback'] = static function( $attributes, $content, $block ) use ( $template_path ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable + $settings['render_callback'] = static function ( $attributes, $content, $block ) use ( $template_path ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable ob_start(); require $template_path; return ob_get_clean(); @@ -702,6 +739,27 @@ function get_dynamic_block_names() { return $dynamic_block_names; } +/** + * Retrieves block types (and positions) hooked into the given block. + * + * @since 6.4.0 + * + * @param string $name Block type name including namespace. + * @return array Associative array of `$block_type_name => $position` pairs. + */ +function get_hooked_blocks( $name ) { + $block_types = WP_Block_Type_Registry::get_instance()->get_all_registered(); + $hooked_blocks = array(); + foreach ( $block_types as $block_type ) { + foreach ( $block_type->block_hooks as $anchor_block_type => $relative_position ) { + if ( $anchor_block_type === $name ) { + $hooked_blocks[ $block_type->name ] = $relative_position; + } + } + } + return $hooked_blocks; +} + /** * Given an array of attributes, returns a string in the serialized attributes * format prepared for post content. @@ -827,6 +885,79 @@ function serialize_blocks( $blocks ) { return implode( '', array_map( 'serialize_block', $blocks ) ); } +/** + * Traverses the block applying transformations using the callback provided and returns the content of a block, + * including comment delimiters, serializing all attributes from the given parsed block. + * + * This should be used when there is a need to modify the saved block. + * Prefer `serialize_block` when preparing a block to be saved to post content. + * + * @since 6.4.0 + * + * @see serialize_block() + * + * @param array $block A representative array of a single parsed block object. See WP_Block_Parser_Block. + * @param callable $callback Callback to run on each block in the tree before serialization. + * It is called with the following arguments: $block, $parent_block, $block_index, $chunk_index. + * @return string String of rendered HTML. + */ +function traverse_and_serialize_block( $block, $callback ) { + $block_content = ''; + $block_index = 0; + + foreach ( $block['innerContent'] as $chunk_index => $chunk ) { + if ( is_string( $chunk ) ) { + $block_content .= $chunk; + } else { + $inner_block = call_user_func( + $callback, + $block['innerBlocks'][ $block_index ], + $block, + $block_index, + $chunk_index + ); + $block_index++; + $block_content .= traverse_and_serialize_block( $inner_block, $callback ); + } + } + + if ( ! is_array( $block['attrs'] ) ) { + $block['attrs'] = array(); + } + + return get_comment_delimited_block_content( + $block['blockName'], + $block['attrs'], + $block_content + ); +} + +/** + * Traverses the blocks applying transformations using the callback provided, + * and returns a joined string of the aggregate serialization of the given parsed blocks. + * + * This should be used when there is a need to modify the saved blocks. + * Prefer `serialize_blocks` when preparing blocks to be saved to post content. + * + * @since 6.4.0 + * + * @see serialize_blocks() + * + * @param array[] $blocks An array of representative arrays of parsed block objects. See serialize_block(). + * @param callable $callback Callback to run on each block in the tree before serialization. + * It is called with the following arguments: $block, $parent_block, $block_index, $chunk_index. + * @return string String of rendered HTML. + */ +function traverse_and_serialize_blocks( $blocks, $callback ) { + $result = ''; + foreach ( $blocks as $block ) { + // At the top level, there is no parent block, block index, or chunk index to pass to the callback. + $block = call_user_func( $callback, $block ); + $result .= traverse_and_serialize_block( $block, $callback ); + } + return $result; +} + /** * Filters and sanitizes block content to remove non-allowable HTML * from parsed block attribute values. @@ -941,6 +1072,10 @@ function filter_block_kses_value( $value, $allowed_html, $allowed_protocols = ar * @return string The parsed and filtered content. */ function excerpt_remove_blocks( $content ) { + if ( ! has_blocks( $content ) ) { + return $content; + } + $allowed_inner_blocks = array( // Classic blocks have their blockName set to null. null, diff --git a/src/wp-includes/blocks/blocks-json.php b/src/wp-includes/blocks/blocks-json.php index 364e91f31e749..034c6c64f9d19 100644 --- a/src/wp-includes/blocks/blocks-json.php +++ b/src/wp-includes/blocks/blocks-json.php @@ -2221,10 +2221,10 @@ '__experimentalRole' => 'content' ), 'width' => array( - 'type' => 'number' + 'type' => 'string' ), 'height' => array( - 'type' => 'number' + 'type' => 'string' ), 'aspectRatio' => array( 'type' => 'string' diff --git a/src/wp-includes/blocks/image/block.json b/src/wp-includes/blocks/image/block.json index 7c8b2c2715c99..fad94a62e5a75 100644 --- a/src/wp-includes/blocks/image/block.json +++ b/src/wp-includes/blocks/image/block.json @@ -64,10 +64,10 @@ "__experimentalRole": "content" }, "width": { - "type": "number" + "type": "string" }, "height": { - "type": "number" + "type": "string" }, "aspectRatio": { "type": "string" diff --git a/src/wp-includes/blocks/index.php b/src/wp-includes/blocks/index.php index 4a95b903516f2..128a06bea26fd 100644 --- a/src/wp-includes/blocks/index.php +++ b/src/wp-includes/blocks/index.php @@ -20,46 +20,78 @@ * avoids unnecessary logic and filesystem lookups in the other function. * * @since 6.3.0 + * + * @global string $wp_version The WordPress version string. */ function register_core_block_style_handles() { + global $wp_version; + if ( ! wp_should_load_separate_core_block_assets() ) { return; } + $blocks_url = includes_url( 'blocks/' ); + $suffix = wp_scripts_get_suffix(); + $wp_styles = wp_styles(); + $style_fields = array( + 'style' => 'style', + 'editorStyle' => 'editor', + ); + static $core_blocks_meta; if ( ! $core_blocks_meta ) { - $core_blocks_meta = require ABSPATH . WPINC . '/blocks/blocks-json.php'; + $core_blocks_meta = require BLOCKS_PATH . 'blocks-json.php'; } - $includes_url = includes_url(); - $includes_path = ABSPATH . WPINC . '/'; - $suffix = wp_scripts_get_suffix(); - $wp_styles = wp_styles(); - $style_fields = array( - 'style' => 'style', - 'editorStyle' => 'editor', - ); + $files = false; + $transient_name = 'wp_core_block_css_files'; /* * Ignore transient cache when the development mode is set to 'core'. Why? To avoid interfering with * the core developer's workflow. */ - if ( ! wp_is_development_mode( 'core' ) ) { - $transient_name = 'wp_core_block_css_files'; - $files = get_transient( $transient_name ); - if ( ! $files ) { - $files = glob( wp_normalize_path( __DIR__ . '/**/**.css' ) ); - set_transient( $transient_name, $files ); + $can_use_cached = ! wp_is_development_mode( 'core' ); + + if ( $can_use_cached ) { + $cached_files = get_transient( $transient_name ); + + // Check the validity of cached values by checking against the current WordPress version. + if ( + is_array( $cached_files ) + && isset( $cached_files['version'] ) + && $cached_files['version'] === $wp_version + && isset( $cached_files['files'] ) + ) { + $files = $cached_files['files']; + } + } + + if ( ! $files ) { + $files = glob( wp_normalize_path( BLOCKS_PATH . '**/**.css' ) ); + $files = array_map( + static function ( $file ) { + return str_replace( BLOCKS_PATH, '', $file ); + }, + $files + ); + + // Save core block style paths in cache when not in development mode. + if ( $can_use_cached ) { + set_transient( + $transient_name, + array( + 'version' => $wp_version, + 'files' => $files, + ) + ); } - } else { - $files = glob( wp_normalize_path( __DIR__ . '/**/**.css' ) ); } - $register_style = static function( $name, $filename, $style_handle ) use ( $includes_path, $includes_url, $suffix, $wp_styles, $files ) { - $style_path = "blocks/{$name}/{$filename}{$suffix}.css"; - $path = wp_normalize_path( $includes_path . $style_path ); + $register_style = static function ( $name, $filename, $style_handle ) use ( $blocks_url, $suffix, $wp_styles, $files ) { + $style_path = "{$name}/{$filename}{$suffix}.css"; + $path = wp_normalize_path( BLOCKS_PATH . $style_path ); - if ( ! in_array( $path, $files, true ) ) { + if ( ! in_array( $style_path, $files, true ) ) { $wp_styles->add( $style_handle, false @@ -67,7 +99,7 @@ function register_core_block_style_handles() { return; } - $wp_styles->add( $style_handle, $includes_url . $style_path ); + $wp_styles->add( $style_handle, $blocks_url . $style_path ); $wp_styles->add_data( $style_handle, 'path', $path ); $rtl_file = str_replace( "{$suffix}.css", "-rtl{$suffix}.css", $path ); diff --git a/src/wp-includes/class-walker-category-dropdown.php b/src/wp-includes/class-walker-category-dropdown.php index 74849101f859b..93078389caa2e 100644 --- a/src/wp-includes/class-walker-category-dropdown.php +++ b/src/wp-includes/class-walker-category-dropdown.php @@ -59,7 +59,8 @@ class Walker_CategoryDropdown extends Walker { public function start_el( &$output, $data_object, $depth = 0, $args = array(), $current_object_id = 0 ) { // Restores the more descriptive, specific name for use within this method. $category = $data_object; - $pad = str_repeat( ' ', $depth * 3 ); + + $pad = str_repeat( ' ', $depth * 3 ); /** This filter is documented in wp-includes/category-template.php */ $cat_name = apply_filters( 'list_cats', $category->name, $category ); diff --git a/src/wp-includes/class-walker-category.php b/src/wp-includes/class-walker-category.php index 36f631c1b24fe..24ae740030bdf 100644 --- a/src/wp-includes/class-walker-category.php +++ b/src/wp-includes/class-walker-category.php @@ -275,5 +275,4 @@ public function end_el( &$output, $data_object, $depth = 0, $args = array() ) { $output .= "\n"; } - } diff --git a/src/wp-includes/class-walker-comment.php b/src/wp-includes/class-walker-comment.php index dfc8ccd39daf4..825a28334b14f 100644 --- a/src/wp-includes/class-walker-comment.php +++ b/src/wp-includes/class-walker-comment.php @@ -150,7 +150,6 @@ public function display_element( $element, &$children_elements, $max_depth, $dep unset( $children_elements[ $id ] ); } - } /** @@ -175,7 +174,7 @@ public function start_el( &$output, $data_object, $depth = 0, $args = array(), $ // Restores the more descriptive, specific name for use within this method. $comment = $data_object; - $depth++; + ++$depth; $GLOBALS['comment_depth'] = $depth; $GLOBALS['comment'] = $comment; diff --git a/src/wp-includes/class-walker-page-dropdown.php b/src/wp-includes/class-walker-page-dropdown.php index 4c940c1722006..08e52815c4461 100644 --- a/src/wp-includes/class-walker-page-dropdown.php +++ b/src/wp-includes/class-walker-page-dropdown.php @@ -62,7 +62,8 @@ class Walker_PageDropdown extends Walker { public function start_el( &$output, $data_object, $depth = 0, $args = array(), $current_object_id = 0 ) { // Restores the more descriptive, specific name for use within this method. $page = $data_object; - $pad = str_repeat( ' ', $depth * 3 ); + + $pad = str_repeat( ' ', $depth * 3 ); if ( ! isset( $args['value_field'] ) || ! isset( $page->{$args['value_field']} ) ) { $args['value_field'] = 'ID'; diff --git a/src/wp-includes/class-walker-page.php b/src/wp-includes/class-walker-page.php index 3ee5bbda61301..bb3929a9dddf4 100644 --- a/src/wp-includes/class-walker-page.php +++ b/src/wp-includes/class-walker-page.php @@ -104,7 +104,8 @@ public function end_lvl( &$output, $depth = 0, $args = array() ) { */ public function start_el( &$output, $data_object, $depth = 0, $args = array(), $current_object_id = 0 ) { // Restores the more descriptive, specific name for use within this method. - $page = $data_object; + $page = $data_object; + $current_page_id = $current_object_id; if ( isset( $args['item_spacing'] ) && 'preserve' === $args['item_spacing'] ) { @@ -241,5 +242,4 @@ public function end_el( &$output, $data_object, $depth = 0, $args = array() ) { } $output .= "{$n}"; } - } diff --git a/src/wp-includes/class-wp-block-list.php b/src/wp-includes/class-wp-block-list.php index 9b7caaf01f7e1..2505920755340 100644 --- a/src/wp-includes/class-wp-block-list.php +++ b/src/wp-includes/class-wp-block-list.php @@ -210,5 +210,4 @@ public function valid() { public function count() { return count( $this->blocks ); } - } diff --git a/src/wp-includes/class-wp-block-type.php b/src/wp-includes/class-wp-block-type.php index e28bacd3b211c..b8ffb92e559b2 100644 --- a/src/wp-includes/class-wp-block-type.php +++ b/src/wp-includes/class-wp-block-type.php @@ -173,6 +173,18 @@ class WP_Block_Type { */ public $provides_context = null; + /** + * Block hooks for this block type. + * + * A block hook is specified by a block type and a relative position. + * The hooked block will be automatically inserted in the given position + * next to the "anchor" block whenever the latter is encountered. + * + * @since 6.4.0 + * @var array[] + */ + public $block_hooks = array(); + /** * Block type editor only script handles. * @@ -254,6 +266,7 @@ class WP_Block_Type { * `editor_style_handles`, and `style_handles` properties. * Deprecated the `editor_script`, `script`, `view_script`, `editor_style`, and `style` properties. * @since 6.3.0 Added the `selectors` property. + * @since 6.4.0 Added the `block_hooks` property. * * @see register_block_type() * @@ -284,6 +297,7 @@ class WP_Block_Type { * @type array|null $attributes Block type attributes property schemas. * @type string[] $uses_context Context values inherited by blocks of this type. * @type string[]|null $provides_context Context provided by blocks of this type. + * @type array[] $block_hooks Block hooks. * @type string[] $editor_script_handles Block type editor only script handles. * @type string[] $script_handles Block type front end and editor script handles. * @type string[] $view_script_handles Block type front end only script handles. diff --git a/src/wp-includes/class-wp-block.php b/src/wp-includes/class-wp-block.php index 890ae5e559353..65d3af6a12f1a 100644 --- a/src/wp-includes/class-wp-block.php +++ b/src/wp-includes/class-wp-block.php @@ -244,7 +244,7 @@ public function render( $options = array() ) { $block_content .= $inner_block->render(); } - $index++; + ++$index; } } } @@ -309,5 +309,4 @@ public function render( $options = array() ) { return $block_content; } - } diff --git a/src/wp-includes/class-wp-comment-query.php b/src/wp-includes/class-wp-comment-query.php index 40f283896653e..9ebddd1c74e15 100644 --- a/src/wp-includes/class-wp-comment-query.php +++ b/src/wp-includes/class-wp-comment-query.php @@ -1079,7 +1079,7 @@ protected function fill_descendants( $comments ) { wp_cache_set_multiple( $data, 'comment-queries' ); } - $level++; + ++$level; $levels[ $level ] = $child_ids; } while ( $child_ids ); diff --git a/src/wp-includes/class-wp-customize-control.php b/src/wp-includes/class-wp-customize-control.php index ab4d2523a0eb7..30e8c2c63914b 100644 --- a/src/wp-includes/class-wp-customize-control.php +++ b/src/wp-includes/class-wp-customize-control.php @@ -701,7 +701,6 @@ final public function print_template() { * @since 4.1.0 */ protected function content_template() {} - } /** diff --git a/src/wp-includes/class-wp-customize-manager.php b/src/wp-includes/class-wp-customize-manager.php index 4f8aae8fbdc65..0bceee3454224 100644 --- a/src/wp-includes/class-wp-customize-manager.php +++ b/src/wp-includes/class-wp-customize-manager.php @@ -1077,7 +1077,7 @@ protected function dismiss_user_auto_draft_changesets() { continue; } if ( update_post_meta( $autosave_autodraft_post->ID, '_customize_restore_dismissed', true ) ) { - $dismissed++; + ++$dismissed; } } return $dismissed; @@ -1479,7 +1479,7 @@ public function import_theme_starter_content( $starter_content = array() ) { if ( ! $nav_menu_term_id ) { while ( isset( $changeset_data[ sprintf( 'nav_menu[%d]', $placeholder_id ) ] ) ) { - $placeholder_id--; + --$placeholder_id; } $nav_menu_term_id = $placeholder_id; $nav_menu_setting_id = sprintf( 'nav_menu[%d]', $placeholder_id ); @@ -1909,6 +1909,7 @@ public function customize_preview_init() { if ( ! headers_sent() ) { nocache_headers(); header( 'X-Robots: noindex, nofollow, noarchive' ); + header( 'X-Robots-Tag: noindex, nofollow, noarchive' ); } add_filter( 'wp_robots', 'wp_robots_no_robots' ); add_filter( 'wp_headers', array( $this, 'filter_iframe_security_headers' ) ); diff --git a/src/wp-includes/class-wp-customize-panel.php b/src/wp-includes/class-wp-customize-panel.php index f880afa8fe4a6..95b7aed468814 100644 --- a/src/wp-includes/class-wp-customize-panel.php +++ b/src/wp-includes/class-wp-customize-panel.php @@ -242,7 +242,7 @@ public function check_capabilities() { return false; } - if ( $this->theme_supports && ! current_theme_supports( ... (array) $this->theme_supports ) ) { + if ( $this->theme_supports && ! current_theme_supports( ...(array) $this->theme_supports ) ) { return false; } diff --git a/src/wp-includes/class-wp-customize-section.php b/src/wp-includes/class-wp-customize-section.php index 65dbe00961dd5..4e58e7d43e64d 100644 --- a/src/wp-includes/class-wp-customize-section.php +++ b/src/wp-includes/class-wp-customize-section.php @@ -264,7 +264,7 @@ final public function check_capabilities() { return false; } - if ( $this->theme_supports && ! current_theme_supports( ... (array) $this->theme_supports ) ) { + if ( $this->theme_supports && ! current_theme_supports( ...(array) $this->theme_supports ) ) { return false; } diff --git a/src/wp-includes/class-wp-customize-setting.php b/src/wp-includes/class-wp-customize-setting.php index 33b9436f859f6..99d0d2e51f199 100644 --- a/src/wp-includes/class-wp-customize-setting.php +++ b/src/wp-includes/class-wp-customize-setting.php @@ -836,7 +836,7 @@ final public function check_capabilities() { return false; } - if ( $this->theme_supports && ! current_theme_supports( ... (array) $this->theme_supports ) ) { + if ( $this->theme_supports && ! current_theme_supports( ...(array) $this->theme_supports ) ) { return false; } diff --git a/src/wp-includes/class-wp-customize-widgets.php b/src/wp-includes/class-wp-customize-widgets.php index 41a57dc66bbe1..93006ef91671e 100644 --- a/src/wp-includes/class-wp-customize-widgets.php +++ b/src/wp-includes/class-wp-customize-widgets.php @@ -982,10 +982,10 @@ public function get_setting_args( $id, $overrides = array() ) { $args['transport'] = current_theme_supports( 'customize-selective-refresh-widgets' ) ? 'postMessage' : 'refresh'; } elseif ( preg_match( $this->setting_id_patterns['widget_instance'], $id, $matches ) ) { $id_base = $matches['id_base']; - $args['sanitize_callback'] = function( $value ) use ( $id_base ) { + $args['sanitize_callback'] = function ( $value ) use ( $id_base ) { return $this->sanitize_widget_instance( $value, $id_base ); }; - $args['sanitize_js_callback'] = function( $value ) use ( $id_base ) { + $args['sanitize_js_callback'] = function ( $value ) use ( $id_base ) { return $this->sanitize_widget_js_instance( $value, $id_base ); }; $args['transport'] = $this->is_widget_selective_refreshable( $matches['id_base'] ) ? 'postMessage' : 'refresh'; diff --git a/src/wp-includes/class-wp-dependencies.php b/src/wp-includes/class-wp-dependencies.php index 0bc42bb282b77..e2bbf4ff98bb7 100644 --- a/src/wp-includes/class-wp-dependencies.php +++ b/src/wp-includes/class-wp-dependencies.php @@ -490,5 +490,4 @@ public function set_group( $handle, $recursion, $group ) { return true; } - } diff --git a/src/wp-includes/class-wp-hook.php b/src/wp-includes/class-wp-hook.php index 0f7dc4b7a3be6..d95691df6ad0b 100644 --- a/src/wp-includes/class-wp-hook.php +++ b/src/wp-includes/class-wp-hook.php @@ -26,6 +26,14 @@ final class WP_Hook implements Iterator, ArrayAccess { */ public $callbacks = array(); + /** + * Priorities list. + * + * @since 6.4.0 + * @var array + */ + protected $priorities = array(); + /** * The priority keys of actively running iterations of a hook. * @@ -78,7 +86,7 @@ public function add_filter( $hook_name, $callback, $priority, $accepted_args ) { $this->callbacks[ $priority ][ $idx ] = array( 'function' => $callback, - 'accepted_args' => $accepted_args, + 'accepted_args' => (int) $accepted_args, ); // If we're adding a new priority to the list, put them back in sorted order. @@ -86,6 +94,8 @@ public function add_filter( $hook_name, $callback, $priority, $accepted_args ) { ksort( $this->callbacks, SORT_NUMERIC ); } + $this->priorities = array_keys( $this->callbacks ); + if ( $this->nesting_level > 0 ) { $this->resort_active_iterations( $priority, $priority_existed ); } @@ -102,7 +112,7 @@ public function add_filter( $hook_name, $callback, $priority, $accepted_args ) { * filter was added. Default false. */ private function resort_active_iterations( $new_priority = false, $priority_existed = false ) { - $new_priorities = array_keys( $this->callbacks ); + $new_priorities = $this->priorities; // If there are no remaining hooks, clear out all running iterations. if ( ! $new_priorities ) { @@ -187,6 +197,8 @@ public function remove_filter( $hook_name, $callback, $priority ) { if ( ! $this->callbacks[ $priority ] ) { unset( $this->callbacks[ $priority ] ); + $this->priorities = array_keys( $this->callbacks ); + if ( $this->nesting_level > 0 ) { $this->resort_active_iterations(); } @@ -262,9 +274,11 @@ public function remove_all_filters( $priority = false ) { } if ( false === $priority ) { - $this->callbacks = array(); + $this->callbacks = array(); + $this->priorities = array(); } elseif ( isset( $this->callbacks[ $priority ] ) ) { unset( $this->callbacks[ $priority ] ); + $this->priorities = array_keys( $this->callbacks ); } if ( $this->nesting_level > 0 ) { @@ -289,7 +303,7 @@ public function apply_filters( $value, $args ) { $nesting_level = $this->nesting_level++; - $this->iterations[ $nesting_level ] = array_keys( $this->callbacks ); + $this->iterations[ $nesting_level ] = $this->priorities; $num_args = count( $args ); @@ -304,12 +318,12 @@ public function apply_filters( $value, $args ) { } // Avoid the array_slice() if possible. - if ( 0 == $the_['accepted_args'] ) { + if ( 0 === $the_['accepted_args'] ) { $value = call_user_func( $the_['function'] ); } elseif ( $the_['accepted_args'] >= $num_args ) { $value = call_user_func_array( $the_['function'], $args ); } else { - $value = call_user_func_array( $the_['function'], array_slice( $args, 0, (int) $the_['accepted_args'] ) ); + $value = call_user_func_array( $the_['function'], array_slice( $args, 0, $the_['accepted_args'] ) ); } } } while ( false !== next( $this->iterations[ $nesting_level ] ) ); @@ -317,7 +331,7 @@ public function apply_filters( $value, $args ) { unset( $this->iterations[ $nesting_level ] ); unset( $this->current_priority[ $nesting_level ] ); - $this->nesting_level--; + --$this->nesting_level; return $value; } @@ -348,7 +362,7 @@ public function do_action( $args ) { */ public function do_all_hook( &$args ) { $nesting_level = $this->nesting_level++; - $this->iterations[ $nesting_level ] = array_keys( $this->callbacks ); + $this->iterations[ $nesting_level ] = $this->priorities; do { $priority = current( $this->iterations[ $nesting_level ] ); @@ -359,7 +373,7 @@ public function do_all_hook( &$args ) { } while ( false !== next( $this->iterations[ $nesting_level ] ) ); unset( $this->iterations[ $nesting_level ] ); - $this->nesting_level--; + --$this->nesting_level; } /** @@ -481,6 +495,8 @@ public function offsetSet( $offset, $value ) { } else { $this->callbacks[ $offset ] = $value; } + + $this->priorities = array_keys( $this->callbacks ); } /** @@ -495,6 +511,7 @@ public function offsetSet( $offset, $value ) { #[ReturnTypeWillChange] public function offsetUnset( $offset ) { unset( $this->callbacks[ $offset ] ); + $this->priorities = array_keys( $this->callbacks ); } /** @@ -564,5 +581,4 @@ public function valid() { public function rewind() { reset( $this->callbacks ); } - } diff --git a/src/wp-includes/class-wp-http.php b/src/wp-includes/class-wp-http.php index e1d37878a140f..056680ba4093b 100644 --- a/src/wp-includes/class-wp-http.php +++ b/src/wp-includes/class-wp-http.php @@ -326,11 +326,11 @@ public function request( $url, $args = array() ) { ); // Ensure redirects follow browser behavior. - $options['hooks']->register( 'requests.before_redirect', array( get_class(), 'browser_redirect_compatibility' ) ); + $options['hooks']->register( 'requests.before_redirect', array( static::class, 'browser_redirect_compatibility' ) ); // Validate redirected URLs. if ( function_exists( 'wp_kses_bad_protocol' ) && $parsed_args['reject_unsafe_urls'] ) { - $options['hooks']->register( 'requests.before_redirect', array( get_class(), 'validate_redirects' ) ); + $options['hooks']->register( 'requests.before_redirect', array( static::class, 'validate_redirects' ) ); } if ( $parsed_args['stream'] ) { @@ -463,7 +463,7 @@ public static function normalize_cookies( $cookies ) { if ( $value instanceof WP_Http_Cookie ) { $attributes = array_filter( $value->get_attributes(), - static function( $attr ) { + static function ( $attr ) { return null !== $attr; } ); @@ -919,7 +919,6 @@ public function block_request( $uri ) { } else { return ! in_array( $check['host'], $accessible_hosts, true ); // Inverse logic, if it's in the array, then don't block it. } - } /** @@ -1102,5 +1101,4 @@ public static function is_ip_address( $maybe_ip ) { return false; } - } diff --git a/src/wp-includes/class-wp-image-editor-imagick.php b/src/wp-includes/class-wp-image-editor-imagick.php index 7229c903b40a0..03fe0bca6975f 100644 --- a/src/wp-includes/class-wp-image-editor-imagick.php +++ b/src/wp-includes/class-wp-image-editor-imagick.php @@ -1043,5 +1043,4 @@ protected function pdf_load_source() { return true; } - } diff --git a/src/wp-includes/class-wp-image-editor.php b/src/wp-includes/class-wp-image-editor.php index bb15a03a0747c..3c636dc6ba5a7 100644 --- a/src/wp-includes/class-wp-image-editor.php +++ b/src/wp-includes/class-wp-image-editor.php @@ -654,4 +654,3 @@ protected static function get_extension( $mime_type = null ) { return wp_get_default_extension_for_mime_type( $mime_type ); } } - diff --git a/src/wp-includes/class-wp-list-util.php b/src/wp-includes/class-wp-list-util.php index c394f2c613b0c..656035529186e 100644 --- a/src/wp-includes/class-wp-list-util.php +++ b/src/wp-includes/class-wp-list-util.php @@ -117,12 +117,12 @@ public function filter( $args = array(), $operator = 'AND' ) { if ( is_array( $obj ) ) { // Treat object as an array. if ( array_key_exists( $m_key, $obj ) && ( $m_value == $obj[ $m_key ] ) ) { - $matched++; + ++$matched; } } elseif ( is_object( $obj ) ) { // Treat object as an object. if ( isset( $obj->{$m_key} ) && ( $m_value == $obj->{$m_key} ) ) { - $matched++; + ++$matched; } } } diff --git a/src/wp-includes/class-wp-meta-query.php b/src/wp-includes/class-wp-meta-query.php index 0c6867d84ee2a..69dde01ff077e 100644 --- a/src/wp-includes/class-wp-meta-query.php +++ b/src/wp-includes/class-wp-meta-query.php @@ -633,7 +633,7 @@ public function get_sql_for_clause( &$clause, $parent_query, $clause_key = '' ) $clause_key_base = $clause_key; while ( isset( $this->clauses[ $clause_key ] ) ) { $clause_key = $clause_key_base . '-' . $iterator; - $iterator++; + ++$iterator; } // Store the clause in our flat array. diff --git a/src/wp-includes/class-wp-navigation-fallback.php b/src/wp-includes/class-wp-navigation-fallback.php index fb97c643bbcd4..bd9583d1fa323 100644 --- a/src/wp-includes/class-wp-navigation-fallback.php +++ b/src/wp-includes/class-wp-navigation-fallback.php @@ -169,7 +169,7 @@ private static function get_fallback_classic_menu() { private static function get_most_recently_created_nav_menu( $classic_nav_menus ) { usort( $classic_nav_menus, - static function( $a, $b ) { + static function ( $a, $b ) { return $b->term_id - $a->term_id; } ); diff --git a/src/wp-includes/class-wp-post-type.php b/src/wp-includes/class-wp-post-type.php index 42b413254cd47..ce6d9d348b480 100644 --- a/src/wp-includes/class-wp-post-type.php +++ b/src/wp-includes/class-wp-post-type.php @@ -831,7 +831,7 @@ public static function get_default_labels() { self::$default_labels = array( 'name' => array( _x( 'Posts', 'post type general name' ), _x( 'Pages', 'post type general name' ) ), 'singular_name' => array( _x( 'Post', 'post type singular name' ), _x( 'Page', 'post type singular name' ) ), - 'add_new' => array( _x( 'Add New', 'post' ), _x( 'Add New', 'page' ) ), + 'add_new' => array( __( 'Add New Post' ), __( 'Add New Page' ) ), 'add_new_item' => array( __( 'Add New Post' ), __( 'Add New Page' ) ), 'edit_item' => array( __( 'Edit Post' ), __( 'Edit Page' ) ), 'new_item' => array( __( 'New Post' ), __( 'New Page' ) ), diff --git a/src/wp-includes/class-wp-query.php b/src/wp-includes/class-wp-query.php index 0aae0379fef63..458b7898c2e8b 100644 --- a/src/wp-includes/class-wp-query.php +++ b/src/wp-includes/class-wp-query.php @@ -3271,7 +3271,14 @@ public function get_posts() { } if ( null === $this->posts ) { - $split_the_query = ( $old_request == $this->request && "{$wpdb->posts}.*" === $fields && ! empty( $limits ) && $q['posts_per_page'] < 500 ); + $split_the_query = ( + $old_request == $this->request + && "{$wpdb->posts}.*" === $fields + && ( + wp_using_ext_object_cache() + || ( ! empty( $limits ) && $q['posts_per_page'] < 500 ) + ) + ); /** * Filters whether to split the query. @@ -3463,7 +3470,7 @@ public function get_posts() { // Move to front, after other stickies. array_splice( $this->posts, $sticky_offset, 0, array( $sticky_post ) ); // Increment the sticky offset. The next sticky will be placed at this offset. - $sticky_offset++; + ++$sticky_offset; // Remove post from sticky posts array. $offset = array_search( $sticky_post->ID, $sticky_posts, true ); unset( $sticky_posts[ $offset ] ); @@ -3493,7 +3500,7 @@ public function get_posts() { foreach ( $stickies as $sticky_post ) { array_splice( $this->posts, $sticky_offset, 0, array( $sticky_post ) ); - $sticky_offset++; + ++$sticky_offset; } } } @@ -3613,7 +3620,7 @@ private function set_found_posts( $q, $limits ) { */ public function next_post() { - $this->current_post++; + ++$this->current_post; /** @var WP_Post */ $this->post = $this->posts[ $this->current_post ]; @@ -3723,7 +3730,7 @@ public function rewind_posts() { * @return WP_Comment Comment object. */ public function next_comment() { - $this->current_comment++; + ++$this->current_comment; /** @var WP_Comment */ $this->comment = $this->comments[ $this->current_comment ]; diff --git a/src/wp-includes/class-wp-rewrite.php b/src/wp-includes/class-wp-rewrite.php index 1f25b03adaf9c..8bcf8fc962246 100644 --- a/src/wp-includes/class-wp-rewrite.php +++ b/src/wp-includes/class-wp-rewrite.php @@ -531,7 +531,7 @@ public function get_date_permastruct() { $front = $front . 'date/'; break; } - $tok_index++; + ++$tok_index; } $this->date_structure = $front . $date_endian; @@ -1490,18 +1490,35 @@ public function rewrite_rules() { public function wp_rewrite_rules() { $this->rules = get_option( 'rewrite_rules' ); if ( empty( $this->rules ) ) { - $this->matches = 'matches'; - $this->rewrite_rules(); - if ( ! did_action( 'wp_loaded' ) ) { - add_action( 'wp_loaded', array( $this, 'flush_rules' ) ); - return $this->rules; - } - update_option( 'rewrite_rules', $this->rules ); + $this->refresh_rewrite_rules(); } return $this->rules; } + /** + * Refreshes the rewrite rules, saving the fresh value to the database. + * If the `wp_loaded` action has not occurred yet, will postpone saving to the database. + * + * @since 6.4.0 + */ + private function refresh_rewrite_rules() { + $this->rules = ''; + $this->matches = 'matches'; + + $this->rewrite_rules(); + + if ( ! did_action( 'wp_loaded' ) ) { + /* + * Is not safe to save the results right now, as the rules may be partial. + * Need to give all rules the chance to register. + */ + add_action( 'wp_loaded', array( $this, 'flush_rules' ) ); + } else { + update_option( 'rewrite_rules', $this->rules ); + } + } + /** * Retrieves mod_rewrite-formatted rewrite rules to write to .htaccess. * @@ -1864,8 +1881,7 @@ public function flush_rules( $hard = true ) { unset( $do_hard_later ); } - update_option( 'rewrite_rules', '' ); - $this->wp_rewrite_rules(); + $this->refresh_rewrite_rules(); /** * Filters whether a "hard" rewrite rule flush should be performed when requested. diff --git a/src/wp-includes/class-wp-role.php b/src/wp-includes/class-wp-role.php index 6f25c3cb0342a..b9884f206529c 100644 --- a/src/wp-includes/class-wp-role.php +++ b/src/wp-includes/class-wp-role.php @@ -100,5 +100,4 @@ public function has_cap( $cap ) { return false; } } - } diff --git a/src/wp-includes/class-wp-term-query.php b/src/wp-includes/class-wp-term-query.php index d1cc69d96ca49..fc6e950c219cb 100644 --- a/src/wp-includes/class-wp-term-query.php +++ b/src/wp-includes/class-wp-term-query.php @@ -91,6 +91,7 @@ class WP_Term_Query { * @since 4.9.0 Added 'slug__in' support for 'orderby'. * @since 5.1.0 Introduced the 'meta_compare_key' parameter. * @since 5.3.0 Introduced the 'meta_type_key' parameter. + * @since 6.4.0 Introduced the 'cache_results' parameter. * * @param string|array $query { * Optional. Array or query string of term query parameters. Default empty. @@ -178,6 +179,7 @@ class WP_Term_Query { * Default false. * @type string $cache_domain Unique cache key to be produced when this query is stored in * an object cache. Default 'core'. + * @type bool $cache_results Whether to cache term information. Default true. * @type bool $update_term_meta_cache Whether to prime meta caches for matched terms. Default true. * @type string|string[] $meta_key Meta key or keys to filter by. * @type string|string[] $meta_value Meta value or values to filter by. @@ -220,6 +222,7 @@ public function __construct( $query = '' ) { 'parent' => '', 'childless' => false, 'cache_domain' => 'core', + 'cache_results' => true, 'update_term_meta_cache' => true, 'meta_query' => '', 'meta_key' => '', @@ -738,6 +741,8 @@ public function get_terms() { $order = isset( $clauses['order'] ) ? $clauses['order'] : ''; $limits = isset( $clauses['limits'] ) ? $clauses['limits'] : ''; + $fields_is_filtered = implode( ', ', $selects ) !== $fields; + if ( $where ) { $where = "WHERE $where"; } @@ -774,41 +779,47 @@ public function get_terms() { return $this->terms; } - $cache_key = $this->generate_cache_key( $args, $this->request ); - $cache = wp_cache_get( $cache_key, 'term-queries' ); + if ( $args['cache_results'] ) { + $cache_key = $this->generate_cache_key( $args, $this->request ); + $cache = wp_cache_get( $cache_key, 'term-queries' ); + + if ( false !== $cache ) { + if ( 'ids' === $_fields ) { + $cache = array_map( 'intval', $cache ); + } elseif ( 'count' !== $_fields ) { + if ( ( 'all_with_object_id' === $_fields && ! empty( $args['object_ids'] ) ) + || ( 'all' === $_fields && $args['pad_counts'] || $fields_is_filtered ) + ) { + $term_ids = wp_list_pluck( $cache, 'term_id' ); + } else { + $term_ids = array_map( 'intval', $cache ); + } - if ( false !== $cache ) { - if ( 'ids' === $_fields ) { - $cache = array_map( 'intval', $cache ); - } elseif ( 'count' !== $_fields ) { - if ( ( 'all_with_object_id' === $_fields && ! empty( $args['object_ids'] ) ) - || ( 'all' === $_fields && $args['pad_counts'] ) - ) { - $term_ids = wp_list_pluck( $cache, 'term_id' ); - } else { - $term_ids = array_map( 'intval', $cache ); - } + _prime_term_caches( $term_ids, $args['update_term_meta_cache'] ); - _prime_term_caches( $term_ids, $args['update_term_meta_cache'] ); + $term_objects = $this->populate_terms( $cache ); + $cache = $this->format_terms( $term_objects, $_fields ); + } - $term_objects = $this->populate_terms( $cache ); - $cache = $this->format_terms( $term_objects, $_fields ); + $this->terms = $cache; + return $this->terms; } - - $this->terms = $cache; - return $this->terms; } if ( 'count' === $_fields ) { $count = $wpdb->get_var( $this->request ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared - wp_cache_set( $cache_key, $count, 'term-queries' ); + if ( $args['cache_results'] ) { + wp_cache_set( $cache_key, $count, 'term-queries' ); + } return $count; } $terms = $wpdb->get_results( $this->request ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared if ( empty( $terms ) ) { - wp_cache_add( $cache_key, array(), 'term-queries' ); + if ( $args['cache_results'] ) { + wp_cache_add( $cache_key, array(), 'term-queries' ); + } return array(); } @@ -884,11 +895,16 @@ public function get_terms() { $object->count = $term->count; $term_cache[] = $object; } + } elseif ( $fields_is_filtered ) { + $term_cache = $term_objects; } else { $term_cache = wp_list_pluck( $term_objects, 'term_id' ); } - wp_cache_add( $cache_key, $term_cache, 'term-queries' ); + if ( $args['cache_results'] ) { + wp_cache_add( $cache_key, $term_cache, 'term-queries' ); + } + $this->terms = $this->format_terms( $term_objects, $_fields ); return $this->terms; @@ -1149,7 +1165,7 @@ protected function generate_cache_key( array $args, $sql ) { // $args can be anything. Only use the args defined in defaults to compute the key. $cache_args = wp_array_slice_assoc( $args, array_keys( $this->query_var_defaults ) ); - unset( $cache_args['update_term_meta_cache'] ); + unset( $cache_args['cache_results'], $cache_args['update_term_meta_cache'] ); if ( 'count' !== $args['fields'] && 'all_with_object_id' !== $args['fields'] ) { $cache_args['fields'] = 'all'; diff --git a/src/wp-includes/class-wp-text-diff-renderer-inline.php b/src/wp-includes/class-wp-text-diff-renderer-inline.php index 19a00d83c7eaa..f3e4f6b7b0394 100644 --- a/src/wp-includes/class-wp-text-diff-renderer-inline.php +++ b/src/wp-includes/class-wp-text-diff-renderer-inline.php @@ -30,5 +30,4 @@ public function _splitOnWords( $string, $newlineEscape = "\n" ) { // phpcs:ignor $words = str_replace( "\n", $newlineEscape, $words ); return $words; } - } diff --git a/src/wp-includes/class-wp-text-diff-renderer-table.php b/src/wp-includes/class-wp-text-diff-renderer-table.php index b54aa6c368bb7..ddf732c3e5232 100644 --- a/src/wp-includes/class-wp-text-diff-renderer-table.php +++ b/src/wp-includes/class-wp-text-diff-renderer-table.php @@ -118,7 +118,6 @@ public function addedLine( $line ) { /* translators: Hidden accessibility text. */ __( 'Added:' ) . " {$line}"; - } /** @@ -521,7 +520,8 @@ public function __get( $name ) { return $this->$name; } - trigger_error( + wp_trigger_error( + __METHOD__, "The property `{$name}` is not declared. Getting a dynamic property is " . 'deprecated since version 6.4.0! Instead, declare the property on the class.', E_USER_DEPRECATED @@ -544,7 +544,8 @@ public function __set( $name, $value ) { return; } - trigger_error( + wp_trigger_error( + __METHOD__, "The property `{$name}` is not declared. Setting a dynamic property is " . 'deprecated since version 6.4.0! Instead, declare the property on the class.', E_USER_DEPRECATED @@ -565,7 +566,8 @@ public function __isset( $name ) { return isset( $this->$name ); } - trigger_error( + wp_trigger_error( + __METHOD__, "The property `{$name}` is not declared. Checking `isset()` on a dynamic property " . 'is deprecated since version 6.4.0! Instead, declare the property on the class.', E_USER_DEPRECATED @@ -587,7 +589,8 @@ public function __unset( $name ) { return; } - trigger_error( + wp_trigger_error( + __METHOD__, "A property `{$name}` is not declared. Unsetting a dynamic property is " . 'deprecated since version 6.4.0! Instead, declare the property on the class.', E_USER_DEPRECATED diff --git a/src/wp-includes/class-wp-theme-json-data.php b/src/wp-includes/class-wp-theme-json-data.php index 9ffa2f358570e..6aa8a3971c62d 100644 --- a/src/wp-includes/class-wp-theme-json-data.php +++ b/src/wp-includes/class-wp-theme-json-data.php @@ -69,5 +69,4 @@ public function update_with( $new_data ) { public function get_data() { return $this->theme_json->get_raw_data(); } - } diff --git a/src/wp-includes/class-wp-theme-json.php b/src/wp-includes/class-wp-theme-json.php index d4b50cd953d88..108f386b84d01 100644 --- a/src/wp-includes/class-wp-theme-json.php +++ b/src/wp-includes/class-wp-theme-json.php @@ -203,6 +203,7 @@ class WP_Theme_JSON { * removed the `--wp--style--block-gap` property. * @since 6.2.0 Added `outline-*`, and `min-height` properties. * @since 6.3.0 Added `column-count` property. + * @since 6.4.0 Added `writing-mode` property. * * @var array */ @@ -261,6 +262,7 @@ class WP_Theme_JSON { 'text-transform' => array( 'typography', 'textTransform' ), 'filter' => array( 'filter', 'duotone' ), 'box-shadow' => array( 'shadow' ), + 'writing-mode' => array( 'typography', 'writingMode' ), ); /** @@ -340,12 +342,16 @@ class WP_Theme_JSON { * @since 6.2.0 Added `dimensions.minHeight`, 'shadow.presets', 'shadow.defaultPresets', * `position.fixed` and `position.sticky`. * @since 6.3.0 Added support for `typography.textColumns`, removed `layout.definitions`. - * + * @since 6.4.0 Added support for `layout.allowEditing`, `background.backgroundImage`, + * and `typography.writingMode`. * @var array */ const VALID_SETTINGS = array( 'appearanceTools' => null, 'useRootPaddingAwareAlignments' => null, + 'background' => array( + 'backgroundImage' => null, + ), 'border' => array( 'color' => null, 'radius' => null, @@ -374,8 +380,9 @@ class WP_Theme_JSON { 'minHeight' => null, ), 'layout' => array( - 'contentSize' => null, - 'wideSize' => null, + 'contentSize' => null, + 'wideSize' => null, + 'allowEditing' => null, ), 'position' => array( 'fixed' => null, @@ -407,6 +414,7 @@ class WP_Theme_JSON { 'textColumns' => null, 'textDecoration' => null, 'textTransform' => null, + 'writingMode' => null, ), ); @@ -469,6 +477,7 @@ class WP_Theme_JSON { 'textColumns' => null, 'textDecoration' => null, 'textTransform' => null, + 'writingMode' => null, ), 'css' => null, ); @@ -557,9 +566,11 @@ public static function get_element_class_name( $element ) { * * @since 6.0.0 * @since 6.2.0 Added `dimensions.minHeight` and `position.sticky`. + * @since 6.4.0 Added `background.backgroundImage`. * @var array */ const APPEARANCE_TOOLS_OPT_INS = array( + array( 'background', 'backgroundImage' ), array( 'border', 'color' ), array( 'border', 'radius' ), array( 'border', 'style' ), @@ -1311,7 +1322,7 @@ protected function get_layout_styles( $block_metadata ) { continue; } - $class_name = sanitize_title( _wp_array_get( $layout_definition, array( 'className' ), false ) ); + $class_name = _wp_array_get( $layout_definition, array( 'className' ), false ); $spacing_rules = _wp_array_get( $layout_definition, array( 'spacingStyles' ), array() ); if ( @@ -1368,7 +1379,7 @@ protected function get_layout_styles( $block_metadata ) { ) { $valid_display_modes = array( 'block', 'flex', 'grid' ); foreach ( $layout_definitions as $layout_definition ) { - $class_name = sanitize_title( _wp_array_get( $layout_definition, array( 'className' ), false ) ); + $class_name = _wp_array_get( $layout_definition, array( 'className' ), false ); $base_style_rules = _wp_array_get( $layout_definition, array( 'baseStyles' ), array() ); if ( @@ -1565,6 +1576,9 @@ protected static function compute_preset_classes( $settings, $selector, $origins $stylesheet = ''; foreach ( static::PRESETS_METADATA as $preset_metadata ) { + if ( empty( $preset_metadata['classes'] ) ) { + continue; + } $slugs = static::get_settings_slugs( $settings, $preset_metadata, $origins ); foreach ( $preset_metadata['classes'] as $class => $property ) { foreach ( $slugs as $slug ) { @@ -1762,6 +1776,9 @@ protected static function replace_slug_in_string( $input, $slug ) { protected static function compute_preset_vars( $settings, $origins ) { $declarations = array(); foreach ( static::PRESETS_METADATA as $preset_metadata ) { + if ( empty( $preset_metadata['css_vars'] ) ) { + continue; + } $values_by_slug = static::get_settings_values_by_slug( $settings, $preset_metadata, $origins ); foreach ( $values_by_slug as $slug => $value ) { $declarations[] = array( @@ -2326,7 +2343,7 @@ public function get_styles_for_block( $block_metadata ) { // Prepend the variation selector to the current selector. $split_selectors = explode( ',', $shortened_selector ); $updated_selectors = array_map( - static function( $split_selector ) use ( $clean_style_variation_selector ) { + static function ( $split_selector ) use ( $clean_style_variation_selector ) { return $clean_style_variation_selector . $split_selector; }, $split_selectors @@ -2364,7 +2381,7 @@ static function( $split_selector ) use ( $clean_style_variation_selector ) { $pseudo_matches = array_values( array_filter( $element_pseudo_allowed, - static function( $pseudo_selector ) use ( $selector ) { + static function ( $pseudo_selector ) use ( $selector ) { return str_contains( $selector, $pseudo_selector ); } ) @@ -2479,13 +2496,13 @@ public function get_root_layout_rules( $selector, $block_metadata ) { // Right and left padding are applied to the first container with `.has-global-padding` class. $css .= '.has-global-padding { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }'; // Nested containers with `.has-global-padding` class do not get padding. - $css .= '.has-global-padding :where(.has-global-padding) { padding-right: 0; padding-left: 0; }'; + $css .= '.has-global-padding :where(.has-global-padding:not(.wp-block-block)) { padding-right: 0; padding-left: 0; }'; // Alignfull children of the container with left and right padding have negative margins so they can still be full width. $css .= '.has-global-padding > .alignfull { margin-right: calc(var(--wp--style--root--padding-right) * -1); margin-left: calc(var(--wp--style--root--padding-left) * -1); }'; // The above rule is negated for alignfull children of nested containers. - $css .= '.has-global-padding :where(.has-global-padding) > .alignfull { margin-right: 0; margin-left: 0; }'; + $css .= '.has-global-padding :where(.has-global-padding:not(.wp-block-block)) > .alignfull { margin-right: 0; margin-left: 0; }'; // Some of the children of alignfull blocks without content width should also get padding: text blocks and non-alignfull container blocks. - $css .= '.has-global-padding > .alignfull:where(:not(.has-global-padding)) > :where([class*="wp-block-"]:not(.alignfull):not([class*="__"]),p,h1,h2,h3,h4,h5,h6,ul,ol) { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }'; + $css .= '.has-global-padding > .alignfull:where(:not(.has-global-padding):not(.is-layout-flex):not(.is-layout-grid)) > :where([class*="wp-block-"]:not(.alignfull):not([class*="__"]),p,h1,h2,h3,h4,h5,h6,ul,ol) { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }'; // The above rule also has to be negated for blocks inside nested `.has-global-padding` blocks. $css .= '.has-global-padding :where(.has-global-padding) > .alignfull:where(:not(.has-global-padding)) > :where([class*="wp-block-"]:not(.alignfull):not([class*="__"]),p,h1,h2,h3,h4,h5,h6,ul,ol) { padding-right: 0; padding-left: 0; }'; } @@ -2821,6 +2838,7 @@ protected static function filter_slugs( $node, $slugs ) { * Removes insecure data from theme.json. * * @since 5.9.0 + * @since 6.3.1 Preserves global styles block variations when securing styles. * * @param array $theme_json Structure to sanitize. * @return array Sanitized structure. @@ -2879,6 +2897,20 @@ public static function remove_insecure_properties( $theme_json ) { if ( ! empty( $output ) ) { _wp_array_set( $sanitized, $metadata['path'], $output ); } + + if ( isset( $metadata['variations'] ) ) { + foreach ( $metadata['variations'] as $variation ) { + $variation_input = _wp_array_get( $theme_json, $variation['path'], array() ); + if ( empty( $variation_input ) ) { + continue; + } + + $variation_output = static::remove_insecure_styles( $variation_input ); + if ( ! empty( $variation_output ) ) { + _wp_array_set( $sanitized, $variation['path'], $variation_output ); + } + } + } } $setting_nodes = static::get_setting_nodes( $theme_json ); @@ -3376,7 +3408,7 @@ public function set_spacing_sizes() { } if ( $below_midpoint_count < $steps_mid_point - 2 ) { - $x_small_count++; + ++$x_small_count; } $slug -= 10; @@ -3413,7 +3445,7 @@ public function set_spacing_sizes() { } if ( $above_midpoint_count > 1 ) { - $x_large_count++; + ++$x_large_count; } $slug += 10; @@ -3710,7 +3742,7 @@ public static function resolve_variables( $theme_json ) { $theme_vars = static::compute_theme_vars( $settings ); $vars = array_reduce( array_merge( $preset_vars, $theme_vars ), - function( $carry, $item ) { + function ( $carry, $item ) { $name = $item['name']; $carry[ "var({$name})" ] = $item['value']; return $carry; diff --git a/src/wp-includes/class-wp-theme.php b/src/wp-includes/class-wp-theme.php index 5841ec3d9d002..479a5b5cb1af2 100644 --- a/src/wp-includes/class-wp-theme.php +++ b/src/wp-includes/class-wp-theme.php @@ -194,6 +194,25 @@ final class WP_Theme implements ArrayAccess { */ private $cache_hash; + /** + * Block template folders. + * + * @since 6.4.0 + * @var string[] + */ + private $block_template_folders; + + /** + * Default values for template folders. + * + * @since 6.4.0 + * @var string[] + */ + private $default_template_folders = array( + 'wp_template' => 'templates', + 'wp_template_part' => 'parts', + ); + /** * Flag for whether the themes cache bucket should be persistently cached. * @@ -262,7 +281,7 @@ public function __construct( $theme_dir, $theme_root, $_child = null ) { $cache = $this->cache_get( 'theme' ); if ( is_array( $cache ) ) { - foreach ( array( 'block_theme', 'errors', 'headers', 'template' ) as $key ) { + foreach ( array( 'block_template_folders', 'block_theme', 'errors', 'headers', 'template' ) as $key ) { if ( isset( $cache[ $key ] ) ) { $this->$key = $cache[ $key ]; } @@ -287,16 +306,18 @@ public function __construct( $theme_dir, $theme_root, $_child = null ) { } else { $this->errors = new WP_Error( 'theme_no_stylesheet', __( 'Stylesheet is missing.' ) ); } - $this->template = $this->stylesheet; - $this->block_theme = false; + $this->template = $this->stylesheet; + $this->block_theme = false; + $this->block_template_folders = $this->default_template_folders; $this->cache_add( 'theme', array( - 'block_theme' => $this->block_theme, - 'headers' => $this->headers, - 'errors' => $this->errors, - 'stylesheet' => $this->stylesheet, - 'template' => $this->template, + 'block_template_folders' => $this->block_template_folders, + 'block_theme' => $this->block_theme, + 'headers' => $this->headers, + 'errors' => $this->errors, + 'stylesheet' => $this->stylesheet, + 'template' => $this->template, ) ); if ( ! file_exists( $this->theme_root ) ) { // Don't cache this one. @@ -304,18 +325,20 @@ public function __construct( $theme_dir, $theme_root, $_child = null ) { } return; } elseif ( ! is_readable( $this->theme_root . '/' . $theme_file ) ) { - $this->headers['Name'] = $this->stylesheet; - $this->errors = new WP_Error( 'theme_stylesheet_not_readable', __( 'Stylesheet is not readable.' ) ); - $this->template = $this->stylesheet; - $this->block_theme = false; + $this->headers['Name'] = $this->stylesheet; + $this->errors = new WP_Error( 'theme_stylesheet_not_readable', __( 'Stylesheet is not readable.' ) ); + $this->template = $this->stylesheet; + $this->block_theme = false; + $this->block_template_folders = $this->default_template_folders; $this->cache_add( 'theme', array( - 'block_theme' => $this->block_theme, - 'headers' => $this->headers, - 'errors' => $this->errors, - 'stylesheet' => $this->stylesheet, - 'template' => $this->template, + 'block_template_folders' => $this->block_template_folders, + 'block_theme' => $this->block_theme, + 'headers' => $this->headers, + 'errors' => $this->errors, + 'stylesheet' => $this->stylesheet, + 'template' => $this->template, ) ); return; @@ -345,10 +368,11 @@ public function __construct( $theme_dir, $theme_root, $_child = null ) { $this->cache_add( 'theme', array( - 'block_theme' => $this->is_block_theme(), - 'headers' => $this->headers, - 'errors' => $this->errors, - 'stylesheet' => $this->stylesheet, + 'block_template_folders' => $this->get_block_template_folders(), + 'block_theme' => $this->is_block_theme(), + 'headers' => $this->headers, + 'errors' => $this->errors, + 'stylesheet' => $this->stylesheet, ) ); @@ -378,11 +402,12 @@ public function __construct( $theme_dir, $theme_root, $_child = null ) { $this->cache_add( 'theme', array( - 'block_theme' => $this->block_theme, - 'headers' => $this->headers, - 'errors' => $this->errors, - 'stylesheet' => $this->stylesheet, - 'template' => $this->template, + 'block_template_folders' => $this->get_block_template_folders(), + 'block_theme' => $this->block_theme, + 'headers' => $this->headers, + 'errors' => $this->errors, + 'stylesheet' => $this->stylesheet, + 'template' => $this->template, ) ); return; @@ -419,11 +444,12 @@ public function __construct( $theme_dir, $theme_root, $_child = null ) { $this->cache_add( 'theme', array( - 'block_theme' => $this->is_block_theme(), - 'headers' => $this->headers, - 'errors' => $this->errors, - 'stylesheet' => $this->stylesheet, - 'template' => $this->template, + 'block_template_folders' => $this->get_block_template_folders(), + 'block_theme' => $this->is_block_theme(), + 'headers' => $this->headers, + 'errors' => $this->errors, + 'stylesheet' => $this->stylesheet, + 'template' => $this->template, ) ); $this->parent = new WP_Theme( $this->template, $this->theme_root, $this ); @@ -447,11 +473,12 @@ public function __construct( $theme_dir, $theme_root, $_child = null ) { $_child->cache_add( 'theme', array( - 'block_theme' => $_child->is_block_theme(), - 'headers' => $_child->headers, - 'errors' => $_child->errors, - 'stylesheet' => $_child->stylesheet, - 'template' => $_child->template, + 'block_template_folders' => $_child->get_block_template_folders(), + 'block_theme' => $_child->is_block_theme(), + 'headers' => $_child->headers, + 'errors' => $_child->errors, + 'stylesheet' => $_child->stylesheet, + 'template' => $_child->template, ) ); // The two themes actually reference each other with the Template header. @@ -467,11 +494,12 @@ public function __construct( $theme_dir, $theme_root, $_child = null ) { $this->cache_add( 'theme', array( - 'block_theme' => $this->is_block_theme(), - 'headers' => $this->headers, - 'errors' => $this->errors, - 'stylesheet' => $this->stylesheet, - 'template' => $this->template, + 'block_template_folders' => $this->get_block_template_folders(), + 'block_theme' => $this->is_block_theme(), + 'headers' => $this->headers, + 'errors' => $this->errors, + 'stylesheet' => $this->stylesheet, + 'template' => $this->template, ) ); } @@ -488,11 +516,12 @@ public function __construct( $theme_dir, $theme_root, $_child = null ) { // We're good. If we didn't retrieve from cache, set it. if ( ! is_array( $cache ) ) { $cache = array( - 'block_theme' => $this->is_block_theme(), - 'headers' => $this->headers, - 'errors' => $this->errors, - 'stylesheet' => $this->stylesheet, - 'template' => $this->template, + 'block_theme' => $this->is_block_theme(), + 'block_template_folders' => $this->get_block_template_folders(), + 'headers' => $this->headers, + 'errors' => $this->errors, + 'stylesheet' => $this->stylesheet, + 'template' => $this->template, ); // If the parent theme is in another root, we'll want to cache this. Avoids an entire branch of filesystem calls above. if ( isset( $theme_root_template ) ) { @@ -779,15 +808,16 @@ public function cache_delete() { foreach ( array( 'theme', 'screenshot', 'headers', 'post_templates' ) as $key ) { wp_cache_delete( $key . '-' . $this->cache_hash, 'themes' ); } - $this->template = null; - $this->textdomain_loaded = null; - $this->theme_root_uri = null; - $this->parent = null; - $this->errors = null; - $this->headers_sanitized = null; - $this->name_translated = null; - $this->block_theme = null; - $this->headers = array(); + $this->template = null; + $this->textdomain_loaded = null; + $this->theme_root_uri = null; + $this->parent = null; + $this->errors = null; + $this->headers_sanitized = null; + $this->name_translated = null; + $this->block_theme = null; + $this->block_template_folders = null; + $this->headers = array(); $this->__construct( $this->stylesheet, $this->theme_root ); } @@ -1556,7 +1586,7 @@ public function get_file_path( $file = '' ) { if ( empty( $file ) ) { $path = $stylesheet_directory; - } elseif ( file_exists( $stylesheet_directory . '/' . $file ) ) { + } elseif ( $stylesheet_directory !== $template_directory && file_exists( $stylesheet_directory . '/' . $file ) ) { $path = $stylesheet_directory . '/' . $file; } else { $path = $template_directory . '/' . $file; @@ -1714,6 +1744,37 @@ public static function get_allowed_on_site( $blog_id = null ) { return (array) apply_filters( 'site_allowed_themes', $allowed_themes[ $blog_id ], $blog_id ); } + /** + * Returns the folder names of the block template directories. + * + * @since 6.4.0 + * + * @return string[] { + * Folder names used by block themes. + * + * @type string $wp_template Theme-relative directory name for block templates. + * @type string $wp_template_part Theme-relative directory name for block template parts. + * } + */ + public function get_block_template_folders() { + // Return set/cached value if available. + if ( isset( $this->block_template_folders ) ) { + return $this->block_template_folders; + } + + $this->block_template_folders = $this->default_template_folders; + + $stylesheet_directory = $this->get_stylesheet_directory(); + // If the theme uses deprecated block template folders. + if ( file_exists( $stylesheet_directory . '/block-templates' ) || file_exists( $stylesheet_directory . '/block-template-parts' ) ) { + $this->block_template_folders = array( + 'wp_template' => 'block-templates', + 'wp_template_part' => 'block-template-parts', + ); + } + return $this->block_template_folders; + } + /** * Enables a theme for all sites on the current network. * diff --git a/src/wp-includes/class-wp-user-query.php b/src/wp-includes/class-wp-user-query.php index c5d66404ea658..b8b4733cf09f6 100644 --- a/src/wp-includes/class-wp-user-query.php +++ b/src/wp-includes/class-wp-user-query.php @@ -1122,7 +1122,8 @@ public function __get( $name ) { return $this->$name; } - trigger_error( + wp_trigger_error( + __METHOD__, "The property `{$name}` is not declared. Getting a dynamic property is " . 'deprecated since version 6.4.0! Instead, declare the property on the class.', E_USER_DEPRECATED @@ -1145,7 +1146,8 @@ public function __set( $name, $value ) { return; } - trigger_error( + wp_trigger_error( + __METHOD__, "The property `{$name}` is not declared. Setting a dynamic property is " . 'deprecated since version 6.4.0! Instead, declare the property on the class.', E_USER_DEPRECATED @@ -1166,7 +1168,8 @@ public function __isset( $name ) { return isset( $this->$name ); } - trigger_error( + wp_trigger_error( + __METHOD__, "The property `{$name}` is not declared. Checking `isset()` on a dynamic property " . 'is deprecated since version 6.4.0! Instead, declare the property on the class.', E_USER_DEPRECATED @@ -1188,7 +1191,8 @@ public function __unset( $name ) { return; } - trigger_error( + wp_trigger_error( + __METHOD__, "A property `{$name}` is not declared. Unsetting a dynamic property is " . 'deprecated since version 6.4.0! Instead, declare the property on the class.', E_USER_DEPRECATED diff --git a/src/wp-includes/class-wp-walker.php b/src/wp-includes/class-wp-walker.php index f7f4715ed1250..d8c00a372322a 100644 --- a/src/wp-includes/class-wp-walker.php +++ b/src/wp-includes/class-wp-walker.php @@ -325,7 +325,7 @@ public function paged_walk( $elements, $max_depth, $page_num, $per_page, ...$arg $empty_array = array(); foreach ( $elements as $e ) { - $count++; + ++$count; if ( $count < $start ) { continue; } @@ -372,7 +372,7 @@ public function paged_walk( $elements, $max_depth, $page_num, $per_page, ...$arg } foreach ( $top_level_elements as $e ) { - $count++; + ++$count; // For the last page, need to unset earlier children in order to keep track of orphans. if ( $end >= $total_top && $count < $start ) { @@ -416,7 +416,7 @@ public function get_number_of_root_elements( $elements ) { foreach ( $elements as $e ) { if ( empty( $e->$parent_field ) ) { - $num++; + ++$num; } } return $num; @@ -446,5 +446,4 @@ public function unset_children( $element, &$children_elements ) { unset( $children_elements[ $id ] ); } - } diff --git a/src/wp-includes/class-wp-widget.php b/src/wp-includes/class-wp-widget.php index d8e5d02e43dd5..f7557a0e3bb44 100644 --- a/src/wp-includes/class-wp-widget.php +++ b/src/wp-includes/class-wp-widget.php @@ -429,14 +429,14 @@ public function update_callback( $deprecated = 1 ) { if ( isset( $wp_registered_widgets[ $del_id ]['params'][0]['number'] ) ) { $number = $wp_registered_widgets[ $del_id ]['params'][0]['number']; - if ( $this->id_base . '-' . $number == $del_id ) { + if ( $this->id_base . '-' . $number === $del_id ) { unset( $all_instances[ $number ] ); } } } else { if ( isset( $_POST[ 'widget-' . $this->id_base ] ) && is_array( $_POST[ 'widget-' . $this->id_base ] ) ) { $settings = $_POST[ 'widget-' . $this->id_base ]; - } elseif ( isset( $_POST['id_base'] ) && $_POST['id_base'] == $this->id_base ) { + } elseif ( isset( $_POST['id_base'] ) && $_POST['id_base'] === $this->id_base ) { $num = $_POST['multi_number'] ? (int) $_POST['multi_number'] : (int) $_POST['widget_number']; $settings = array( $num => array() ); } else { @@ -508,7 +508,7 @@ public function form_callback( $widget_args = 1 ) { $widget_args = wp_parse_args( $widget_args, array( 'number' => -1 ) ); $all_instances = $this->get_settings(); - if ( -1 == $widget_args['number'] ) { + if ( -1 === $widget_args['number'] ) { // We echo out a form where 'number' can be set later. $this->_set( '__i__' ); $instance = array(); diff --git a/src/wp-includes/class-wp-xmlrpc-server.php b/src/wp-includes/class-wp-xmlrpc-server.php index d1aec3693248f..ae9a658718edb 100644 --- a/src/wp-includes/class-wp-xmlrpc-server.php +++ b/src/wp-includes/class-wp-xmlrpc-server.php @@ -1067,6 +1067,7 @@ protected function _prepare_media_item( $media_item, $thumbnail_size = 'thumbnai 'description' => $media_item->post_content, 'metadata' => wp_get_attachment_metadata( $media_item->ID ), 'type' => $media_item->post_mime_type, + 'alt' => get_post_meta( $media_item->ID, '_wp_attachment_image_alt', true ), ); $thumbnail_src = image_downsize( $media_item->ID, $thumbnail_size ); @@ -6370,8 +6371,6 @@ public function mw_getCategories( $args ) { * * @since 1.5.0 * - * @global wpdb $wpdb WordPress database abstraction object. - * * @param array $args { * Method arguments. Note: arguments must be ordered as documented. * @@ -6383,8 +6382,6 @@ public function mw_getCategories( $args ) { * @return array|IXR_Error */ public function mw_newMediaObject( $args ) { - global $wpdb; - $username = $this->escape( $args[1] ); $password = $this->escape( $args[2] ); $data = $args[3]; diff --git a/src/wp-includes/class-wpdb.php b/src/wp-includes/class-wpdb.php index 4fe5ea5bd4be3..39c467f03182d 100644 --- a/src/wp-includes/class-wpdb.php +++ b/src/wp-includes/class-wpdb.php @@ -142,16 +142,14 @@ class wpdb { * * Possible values: * - * - For successful SELECT, SHOW, DESCRIBE, or EXPLAIN queries: - * - `mysqli_result` instance when the `mysqli` driver is in use - * - `resource` when the older `mysql` driver is in use + * - `mysqli_result` instance for successful SELECT, SHOW, DESCRIBE, or EXPLAIN queries * - `true` for other query types that were successful * - `null` if a query is yet to be made or if the result has since been flushed * - `false` if the query returned an error * * @since 0.71 * - * @var mysqli_result|resource|bool|null + * @var mysqli_result|bool|null */ protected $result; @@ -604,14 +602,13 @@ class wpdb { * * Possible values: * - * - `mysqli` instance when the `mysqli` driver is in use - * - `resource` when the older `mysql` driver is in use + * - `mysqli` instance during normal operation * - `null` if the connection is yet to be made or has been closed * - `false` if the connection has failed * * @since 0.71 * - * @var mysqli|resource|false|null + * @var mysqli|false|null */ protected $dbh; @@ -693,15 +690,6 @@ class wpdb { */ private $allow_unsafe_unquoted_parameters = true; - /** - * Whether to use mysqli over mysql. Default false. - * - * @since 3.9.0 - * - * @var bool - */ - private $use_mysqli = false; - /** * Whether we've managed to successfully connect at some point. * @@ -751,15 +739,6 @@ public function __construct( $dbuser, $dbpassword, $dbname, $dbhost ) { $this->show_errors(); } - // Use the `mysqli` extension if it exists unless `WP_USE_EXT_MYSQL` is defined as true. - if ( function_exists( 'mysqli_connect' ) ) { - $this->use_mysqli = true; - - if ( defined( 'WP_USE_EXT_MYSQL' ) ) { - $this->use_mysqli = ! WP_USE_EXT_MYSQL; - } - } - $this->dbuser = $dbuser; $this->dbpassword = $dbpassword; $this->dbname = $dbname; @@ -880,7 +859,7 @@ public function init_charset() { * } */ public function determine_charset( $charset, $collate ) { - if ( ( $this->use_mysqli && ! ( $this->dbh instanceof mysqli ) ) || empty( $this->dbh ) ) { + if ( ( ! ( $this->dbh instanceof mysqli ) ) || empty( $this->dbh ) ) { return compact( 'charset', 'collate' ); } @@ -915,9 +894,9 @@ public function determine_charset( $charset, $collate ) { * * @since 3.1.0 * - * @param mysqli|resource $dbh The connection returned by `mysqli_connect()` or `mysql_connect()`. - * @param string $charset Optional. The character set. Default null. - * @param string $collate Optional. The collation. Default null. + * @param mysqli $dbh The connection returned by `mysqli_connect()`. + * @param string $charset Optional. The character set. Default null. + * @param string $collate Optional. The collation. Default null. */ public function set_charset( $dbh, $charset = null, $collate = null ) { if ( ! isset( $charset ) ) { @@ -929,29 +908,16 @@ public function set_charset( $dbh, $charset = null, $collate = null ) { if ( $this->has_cap( 'collation' ) && ! empty( $charset ) ) { $set_charset_succeeded = true; - if ( $this->use_mysqli ) { - if ( function_exists( 'mysqli_set_charset' ) && $this->has_cap( 'set_charset' ) ) { - $set_charset_succeeded = mysqli_set_charset( $dbh, $charset ); - } + if ( function_exists( 'mysqli_set_charset' ) && $this->has_cap( 'set_charset' ) ) { + $set_charset_succeeded = mysqli_set_charset( $dbh, $charset ); + } - if ( $set_charset_succeeded ) { - $query = $this->prepare( 'SET NAMES %s', $charset ); - if ( ! empty( $collate ) ) { - $query .= $this->prepare( ' COLLATE %s', $collate ); - } - mysqli_query( $dbh, $query ); - } - } else { - if ( function_exists( 'mysql_set_charset' ) && $this->has_cap( 'set_charset' ) ) { - $set_charset_succeeded = mysql_set_charset( $charset, $dbh ); - } - if ( $set_charset_succeeded ) { - $query = $this->prepare( 'SET NAMES %s', $charset ); - if ( ! empty( $collate ) ) { - $query .= $this->prepare( ' COLLATE %s', $collate ); - } - mysql_query( $query, $dbh ); + if ( $set_charset_succeeded ) { + $query = $this->prepare( 'SET NAMES %s', $charset ); + if ( ! empty( $collate ) ) { + $query .= $this->prepare( ' COLLATE %s', $collate ); } + mysqli_query( $dbh, $query ); } } } @@ -967,26 +933,20 @@ public function set_charset( $dbh, $charset = null, $collate = null ) { */ public function set_sql_mode( $modes = array() ) { if ( empty( $modes ) ) { - if ( $this->use_mysqli ) { - $res = mysqli_query( $this->dbh, 'SELECT @@SESSION.sql_mode' ); - } else { - $res = mysql_query( 'SELECT @@SESSION.sql_mode', $this->dbh ); - } + $res = mysqli_query( $this->dbh, 'SELECT @@SESSION.sql_mode' ); if ( empty( $res ) ) { return; } - if ( $this->use_mysqli ) { - $modes_array = mysqli_fetch_array( $res ); - if ( empty( $modes_array[0] ) ) { - return; - } - $modes_str = $modes_array[0]; - } else { - $modes_str = mysql_result( $res, 0 ); + $modes_array = mysqli_fetch_array( $res ); + + if ( empty( $modes_array[0] ) ) { + return; } + $modes_str = $modes_array[0]; + if ( empty( $modes_str ) ) { return; } @@ -1013,11 +973,7 @@ public function set_sql_mode( $modes = array() ) { $modes_str = implode( ',', $modes ); - if ( $this->use_mysqli ) { - mysqli_query( $this->dbh, "SET SESSION sql_mode='$modes_str'" ); - } else { - mysql_query( "SET SESSION sql_mode='$modes_str'", $this->dbh ); - } + mysqli_query( $this->dbh, "SET SESSION sql_mode='$modes_str'" ); } /** @@ -1220,20 +1176,17 @@ public function tables( $scope = 'all', $prefix = true, $blog_id = 0 ) { * * @since 0.71 * - * @param string $db Database name. - * @param mysqli|resource $dbh Optional. Database connection. - * Defaults to the current database handle. + * @param string $db Database name. + * @param mysqli $dbh Optional. Database connection. + * Defaults to the current database handle. */ public function select( $db, $dbh = null ) { if ( is_null( $dbh ) ) { $dbh = $this->dbh; } - if ( $this->use_mysqli ) { - $success = mysqli_select_db( $dbh, $db ); - } else { - $success = mysql_select_db( $db, $dbh ); - } + $success = mysqli_select_db( $dbh, $db ); + if ( ! $success ) { $this->ready = false; if ( ! did_action( 'template_redirect' ) ) { @@ -1297,12 +1250,11 @@ public function _weak_escape( $data ) { } /** - * Real escape, using mysqli_real_escape_string() or mysql_real_escape_string(). + * Real escape using mysqli_real_escape_string(). * * @since 2.8.0 * * @see mysqli_real_escape_string() - * @see mysql_real_escape_string() * * @param string $data String to escape. * @return string Escaped string. @@ -1313,11 +1265,7 @@ public function _real_escape( $data ) { } if ( $this->dbh ) { - if ( $this->use_mysqli ) { - $escaped = mysqli_real_escape_string( $this->dbh, $data ); - } else { - $escaped = mysql_real_escape_string( $data, $this->dbh ); - } + $escaped = mysqli_real_escape_string( $this->dbh, $data ); } else { $class = get_class( $this ); @@ -1591,7 +1539,7 @@ public function prepare( $query, ...$args ) { $k = 1; $l = strlen( $s ); while ( $k <= $l && '%' === $s[ $l - $k ] ) { - $k++; + ++$k; } $placeholder = '%' . ( $k % 2 ? '%' : '' ) . $format . $type; @@ -1652,7 +1600,7 @@ public function prepare( $query, ...$args ) { $new_query .= $split_query[ $key - 2 ] . $split_query[ $key - 1 ] . $placeholder; $key += 3; - $arg_id++; + ++$arg_id; } // Replace $query; and add remaining $query characters, or index 0 if there were no placeholders. @@ -1684,7 +1632,7 @@ public function prepare( $query, ...$args ) { $used_placeholders[ $arg_pos ][] = $placeholder; $key += 3; - $arg_id++; + ++$arg_id; } $conflicts = array(); @@ -1836,12 +1784,9 @@ public function print_error( $str = '' ) { global $EZSQL_ERROR; if ( ! $str ) { - if ( $this->use_mysqli ) { - $str = mysqli_error( $this->dbh ); - } else { - $str = mysql_error( $this->dbh ); - } + $str = mysqli_error( $this->dbh ); } + $EZSQL_ERROR[] = array( 'query' => $this->last_query, 'error_str' => $str, @@ -1963,7 +1908,7 @@ public function flush() { $this->num_rows = 0; $this->last_error = ''; - if ( $this->use_mysqli && $this->result instanceof mysqli_result ) { + if ( $this->result instanceof mysqli_result ) { mysqli_free_result( $this->result ); $this->result = null; @@ -1976,8 +1921,6 @@ public function flush() { while ( mysqli_more_results( $this->dbh ) ) { mysqli_next_result( $this->dbh ); } - } elseif ( is_resource( $this->result ) ) { - mysql_free_result( $this->result ); } } @@ -1995,80 +1938,45 @@ public function flush() { public function db_connect( $allow_bail = true ) { $this->is_mysql = true; - /* - * Deprecated in 3.9+ when using MySQLi. No equivalent - * $new_link parameter exists for mysqli_* functions. - */ - $new_link = defined( 'MYSQL_NEW_LINK' ) ? MYSQL_NEW_LINK : true; $client_flags = defined( 'MYSQL_CLIENT_FLAGS' ) ? MYSQL_CLIENT_FLAGS : 0; - if ( $this->use_mysqli ) { - /* - * Set the MySQLi error reporting off because WordPress handles its own. - * This is due to the default value change from `MYSQLI_REPORT_OFF` - * to `MYSQLI_REPORT_ERROR|MYSQLI_REPORT_STRICT` in PHP 8.1. - */ - mysqli_report( MYSQLI_REPORT_OFF ); - - $this->dbh = mysqli_init(); - - $host = $this->dbhost; - $port = null; - $socket = null; - $is_ipv6 = false; - - $host_data = $this->parse_db_host( $this->dbhost ); - if ( $host_data ) { - list( $host, $port, $socket, $is_ipv6 ) = $host_data; - } + /* + * Set the MySQLi error reporting off because WordPress handles its own. + * This is due to the default value change from `MYSQLI_REPORT_OFF` + * to `MYSQLI_REPORT_ERROR|MYSQLI_REPORT_STRICT` in PHP 8.1. + */ + mysqli_report( MYSQLI_REPORT_OFF ); - /* - * If using the `mysqlnd` library, the IPv6 address needs to be enclosed - * in square brackets, whereas it doesn't while using the `libmysqlclient` library. - * @see https://bugs.php.net/bug.php?id=67563 - */ - if ( $is_ipv6 && extension_loaded( 'mysqlnd' ) ) { - $host = "[$host]"; - } + $this->dbh = mysqli_init(); - if ( WP_DEBUG ) { - mysqli_real_connect( $this->dbh, $host, $this->dbuser, $this->dbpassword, null, $port, $socket, $client_flags ); - } else { - // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged - @mysqli_real_connect( $this->dbh, $host, $this->dbuser, $this->dbpassword, null, $port, $socket, $client_flags ); - } + $host = $this->dbhost; + $port = null; + $socket = null; + $is_ipv6 = false; - if ( $this->dbh->connect_errno ) { - $this->dbh = null; + $host_data = $this->parse_db_host( $this->dbhost ); + if ( $host_data ) { + list( $host, $port, $socket, $is_ipv6 ) = $host_data; + } - /* - * It's possible ext/mysqli is misconfigured. Fall back to ext/mysql if: - * - We haven't previously connected, and - * - WP_USE_EXT_MYSQL isn't set to false, and - * - ext/mysql is loaded. - */ - $attempt_fallback = true; - - if ( $this->has_connected ) { - $attempt_fallback = false; - } elseif ( defined( 'WP_USE_EXT_MYSQL' ) && ! WP_USE_EXT_MYSQL ) { - $attempt_fallback = false; - } elseif ( ! function_exists( 'mysql_connect' ) ) { - $attempt_fallback = false; - } + /* + * If using the `mysqlnd` library, the IPv6 address needs to be enclosed + * in square brackets, whereas it doesn't while using the `libmysqlclient` library. + * @see https://bugs.php.net/bug.php?id=67563 + */ + if ( $is_ipv6 && extension_loaded( 'mysqlnd' ) ) { + $host = "[$host]"; + } - if ( $attempt_fallback ) { - $this->use_mysqli = false; - return $this->db_connect( $allow_bail ); - } - } + if ( WP_DEBUG ) { + mysqli_real_connect( $this->dbh, $host, $this->dbuser, $this->dbpassword, null, $port, $socket, $client_flags ); } else { - if ( WP_DEBUG ) { - $this->dbh = mysql_connect( $this->dbhost, $this->dbuser, $this->dbpassword, $new_link, $client_flags ); - } else { - // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged - $this->dbh = @mysql_connect( $this->dbhost, $this->dbuser, $this->dbpassword, $new_link, $client_flags ); - } + // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged + @mysqli_real_connect( $this->dbh, $host, $this->dbuser, $this->dbpassword, null, $port, $socket, $client_flags ); + } + + if ( $this->dbh->connect_errno ) { + $this->dbh = null; } if ( ! $this->dbh && $allow_bail ) { @@ -2196,14 +2104,8 @@ public function parse_db_host( $host ) { * @return bool|void True if the connection is up. */ public function check_connection( $allow_bail = true ) { - if ( $this->use_mysqli ) { - if ( ! empty( $this->dbh ) && mysqli_ping( $this->dbh ) ) { - return true; - } - } else { - if ( ! empty( $this->dbh ) && mysql_ping( $this->dbh ) ) { - return true; - } + if ( ! empty( $this->dbh ) && mysqli_ping( $this->dbh ) ) { + return true; } $error_reporting = false; @@ -2347,24 +2249,15 @@ public function query( $query ) { // Database server has gone away, try to reconnect. $mysql_errno = 0; - if ( ! empty( $this->dbh ) ) { - if ( $this->use_mysqli ) { - if ( $this->dbh instanceof mysqli ) { - $mysql_errno = mysqli_errno( $this->dbh ); - } else { - /* - * $dbh is defined, but isn't a real connection. - * Something has gone horribly wrong, let's try a reconnect. - */ - $mysql_errno = 2006; - } - } else { - if ( is_resource( $this->dbh ) ) { - $mysql_errno = mysql_errno( $this->dbh ); - } else { - $mysql_errno = 2006; - } - } + + if ( $this->dbh instanceof mysqli ) { + $mysql_errno = mysqli_errno( $this->dbh ); + } else { + /* + * $dbh is defined, but isn't a real connection. + * Something has gone horribly wrong, let's try a reconnect. + */ + $mysql_errno = 2006; } if ( empty( $this->dbh ) || 2006 === $mysql_errno ) { @@ -2377,18 +2270,10 @@ public function query( $query ) { } // If there is an error then take note of it. - if ( $this->use_mysqli ) { - if ( $this->dbh instanceof mysqli ) { - $this->last_error = mysqli_error( $this->dbh ); - } else { - $this->last_error = __( 'Unable to retrieve the error message from MySQL' ); - } + if ( $this->dbh instanceof mysqli ) { + $this->last_error = mysqli_error( $this->dbh ); } else { - if ( is_resource( $this->dbh ) ) { - $this->last_error = mysql_error( $this->dbh ); - } else { - $this->last_error = __( 'Unable to retrieve the error message from MySQL' ); - } + $this->last_error = __( 'Unable to retrieve the error message from MySQL' ); } if ( $this->last_error ) { @@ -2404,32 +2289,22 @@ public function query( $query ) { if ( preg_match( '/^\s*(create|alter|truncate|drop)\s/i', $query ) ) { $return_val = $this->result; } elseif ( preg_match( '/^\s*(insert|delete|update|replace)\s/i', $query ) ) { - if ( $this->use_mysqli ) { - $this->rows_affected = mysqli_affected_rows( $this->dbh ); - } else { - $this->rows_affected = mysql_affected_rows( $this->dbh ); - } + $this->rows_affected = mysqli_affected_rows( $this->dbh ); + // Take note of the insert_id. if ( preg_match( '/^\s*(insert|replace)\s/i', $query ) ) { - if ( $this->use_mysqli ) { - $this->insert_id = mysqli_insert_id( $this->dbh ); - } else { - $this->insert_id = mysql_insert_id( $this->dbh ); - } + $this->insert_id = mysqli_insert_id( $this->dbh ); } + // Return number of rows affected. $return_val = $this->rows_affected; } else { $num_rows = 0; - if ( $this->use_mysqli && $this->result instanceof mysqli_result ) { + + if ( $this->result instanceof mysqli_result ) { while ( $row = mysqli_fetch_object( $this->result ) ) { $this->last_result[ $num_rows ] = $row; - $num_rows++; - } - } elseif ( is_resource( $this->result ) ) { - while ( $row = mysql_fetch_object( $this->result ) ) { - $this->last_result[ $num_rows ] = $row; - $num_rows++; + ++$num_rows; } } @@ -2442,7 +2317,7 @@ public function query( $query ) { } /** - * Internal function to perform the mysql_query() call. + * Internal function to perform the mysqli_query() call. * * @since 3.9.0 * @@ -2455,12 +2330,11 @@ private function _do_query( $query ) { $this->timer_start(); } - if ( ! empty( $this->dbh ) && $this->use_mysqli ) { + if ( ! empty( $this->dbh ) ) { $this->result = mysqli_query( $this->dbh, $query ); - } elseif ( ! empty( $this->dbh ) ) { - $this->result = mysql_query( $query, $this->dbh ); } - $this->num_queries++; + + ++$this->num_queries; if ( defined( 'SAVEQUERIES' ) && SAVEQUERIES ) { $this->log_query( @@ -2573,8 +2447,24 @@ public function remove_placeholder_escape( $query ) { * * Examples: * - * wpdb::insert( 'table', array( 'column' => 'foo', 'field' => 'bar' ) ) - * wpdb::insert( 'table', array( 'column' => 'foo', 'field' => 1337 ), array( '%s', '%d' ) ) + * $wpdb->insert( + * 'table', + * array( + * 'column1' => 'foo', + * 'column2' => 'bar', + * ) + * ); + * $wpdb->insert( + * 'table', + * array( + * 'column1' => 'foo', + * 'column2' => 1337, + * ), + * array( + * '%s', + * '%d', + * ) + * ); * * @since 2.5.0 * @@ -2582,16 +2472,16 @@ public function remove_placeholder_escape( $query ) { * @see wpdb::$field_types * @see wp_set_wpdb_vars() * - * @param string $table Table name. - * @param array $data Data to insert (in column => value pairs). - * Both `$data` columns and `$data` values should be "raw" (neither should be SQL escaped). - * Sending a null value will cause the column to be set to NULL - the corresponding - * format is ignored in this case. - * @param array|string $format Optional. An array of formats to be mapped to each of the value in `$data`. - * If string, that format will be used for all of the values in `$data`. - * A format is one of '%d', '%f', '%s' (integer, float, string). - * If omitted, all values in `$data` will be treated as strings unless otherwise - * specified in wpdb::$field_types. Default null. + * @param string $table Table name. + * @param array $data Data to insert (in column => value pairs). + * Both `$data` columns and `$data` values should be "raw" (neither should be SQL escaped). + * Sending a null value will cause the column to be set to NULL - the corresponding + * format is ignored in this case. + * @param string[]|string $format Optional. An array of formats to be mapped to each of the value in `$data`. + * If string, that format will be used for all of the values in `$data`. + * A format is one of '%d', '%f', '%s' (integer, float, string). + * If omitted, all values in `$data` will be treated as strings unless otherwise + * specified in wpdb::$field_types. Default null. * @return int|false The number of rows inserted, or false on error. */ public function insert( $table, $data, $format = null ) { @@ -2599,12 +2489,34 @@ public function insert( $table, $data, $format = null ) { } /** - * Replaces a row in the table. + * Replaces a row in the table or inserts it if it does not exist, based on a PRIMARY KEY or a UNIQUE index. + * + * A REPLACE works exactly like an INSERT, except that if an old row in the table has the same value as a new row + * for a PRIMARY KEY or a UNIQUE index, the old row is deleted before the new row is inserted. * * Examples: * - * wpdb::replace( 'table', array( 'column' => 'foo', 'field' => 'bar' ) ) - * wpdb::replace( 'table', array( 'column' => 'foo', 'field' => 1337 ), array( '%s', '%d' ) ) + * $wpdb->replace( + * 'table', + * array( + * 'ID' => 123, + * 'column1' => 'foo', + * 'column2' => 'bar', + * ) + * ); + * $wpdb->replace( + * 'table', + * array( + * 'ID' => 456, + * 'column1' => 'foo', + * 'column2' => 1337, + * ), + * array( + * '%d', + * '%s', + * '%d', + * ) + * ); * * @since 3.0.0 * @@ -2612,16 +2524,17 @@ public function insert( $table, $data, $format = null ) { * @see wpdb::$field_types * @see wp_set_wpdb_vars() * - * @param string $table Table name. - * @param array $data Data to insert (in column => value pairs). - * Both `$data` columns and `$data` values should be "raw" (neither should be SQL escaped). - * Sending a null value will cause the column to be set to NULL - the corresponding - * format is ignored in this case. - * @param array|string $format Optional. An array of formats to be mapped to each of the value in `$data`. - * If string, that format will be used for all of the values in `$data`. - * A format is one of '%d', '%f', '%s' (integer, float, string). - * If omitted, all values in `$data` will be treated as strings unless otherwise - * specified in wpdb::$field_types. Default null. + * @param string $table Table name. + * @param array $data Data to insert (in column => value pairs). + * Both `$data` columns and `$data` values should be "raw" (neither should be SQL escaped). + * A primary key or unique index is required to perform a replace operation. + * Sending a null value will cause the column to be set to NULL - the corresponding + * format is ignored in this case. + * @param string[]|string $format Optional. An array of formats to be mapped to each of the value in `$data`. + * If string, that format will be used for all of the values in `$data`. + * A format is one of '%d', '%f', '%s' (integer, float, string). + * If omitted, all values in `$data` will be treated as strings unless otherwise + * specified in wpdb::$field_types. Default null. * @return int|false The number of rows affected, or false on error. */ public function replace( $table, $data, $format = null ) { @@ -2639,18 +2552,18 @@ public function replace( $table, $data, $format = null ) { * @see wpdb::$field_types * @see wp_set_wpdb_vars() * - * @param string $table Table name. - * @param array $data Data to insert (in column => value pairs). - * Both `$data` columns and `$data` values should be "raw" (neither should be SQL escaped). - * Sending a null value will cause the column to be set to NULL - the corresponding - * format is ignored in this case. - * @param array|string $format Optional. An array of formats to be mapped to each of the value in `$data`. - * If string, that format will be used for all of the values in `$data`. - * A format is one of '%d', '%f', '%s' (integer, float, string). - * If omitted, all values in `$data` will be treated as strings unless otherwise - * specified in wpdb::$field_types. Default null. - * @param string $type Optional. Type of operation. Either 'INSERT' or 'REPLACE'. - * Default 'INSERT'. + * @param string $table Table name. + * @param array $data Data to insert (in column => value pairs). + * Both `$data` columns and `$data` values should be "raw" (neither should be SQL escaped). + * Sending a null value will cause the column to be set to NULL - the corresponding + * format is ignored in this case. + * @param string[]|string $format Optional. An array of formats to be mapped to each of the value in `$data`. + * If string, that format will be used for all of the values in `$data`. + * A format is one of '%d', '%f', '%s' (integer, float, string). + * If omitted, all values in `$data` will be treated as strings unless otherwise + * specified in wpdb::$field_types. Default null. + * @param string $type Optional. Type of operation. Either 'INSERT' or 'REPLACE'. + * Default 'INSERT'. * @return int|false The number of rows affected, or false on error. */ public function _insert_replace_helper( $table, $data, $format = null, $type = 'INSERT' ) { @@ -2691,8 +2604,33 @@ public function _insert_replace_helper( $table, $data, $format = null, $type = ' * * Examples: * - * wpdb::update( 'table', array( 'column' => 'foo', 'field' => 'bar' ), array( 'ID' => 1 ) ) - * wpdb::update( 'table', array( 'column' => 'foo', 'field' => 1337 ), array( 'ID' => 1 ), array( '%s', '%d' ), array( '%d' ) ) + * $wpdb->update( + * 'table', + * array( + * 'column1' => 'foo', + * 'column2' => 'bar', + * ), + * array( + * 'ID' => 1, + * ) + * ); + * $wpdb->update( + * 'table', + * array( + * 'column1' => 'foo', + * 'column2' => 1337, + * ), + * array( + * 'ID' => 1, + * ), + * array( + * '%s', + * '%d', + * ), + * array( + * '%d', + * ) + * ); * * @since 2.5.0 * @@ -2700,25 +2638,26 @@ public function _insert_replace_helper( $table, $data, $format = null, $type = ' * @see wpdb::$field_types * @see wp_set_wpdb_vars() * - * @param string $table Table name. - * @param array $data Data to update (in column => value pairs). - * Both $data columns and $data values should be "raw" (neither should be SQL escaped). - * Sending a null value will cause the column to be set to NULL - the corresponding - * format is ignored in this case. - * @param array $where A named array of WHERE clauses (in column => value pairs). - * Multiple clauses will be joined with ANDs. - * Both $where columns and $where values should be "raw". - * Sending a null value will create an IS NULL comparison - the corresponding - * format will be ignored in this case. - * @param array|string $format Optional. An array of formats to be mapped to each of the values in $data. - * If string, that format will be used for all of the values in $data. - * A format is one of '%d', '%f', '%s' (integer, float, string). - * If omitted, all values in $data will be treated as strings unless otherwise - * specified in wpdb::$field_types. Default null. - * @param array|string $where_format Optional. An array of formats to be mapped to each of the values in $where. - * If string, that format will be used for all of the items in $where. - * A format is one of '%d', '%f', '%s' (integer, float, string). - * If omitted, all values in $where will be treated as strings. Default null. + * @param string $table Table name. + * @param array $data Data to update (in column => value pairs). + * Both $data columns and $data values should be "raw" (neither should be SQL escaped). + * Sending a null value will cause the column to be set to NULL - the corresponding + * format is ignored in this case. + * @param array $where A named array of WHERE clauses (in column => value pairs). + * Multiple clauses will be joined with ANDs. + * Both $where columns and $where values should be "raw". + * Sending a null value will create an IS NULL comparison - the corresponding + * format will be ignored in this case. + * @param string[]|string $format Optional. An array of formats to be mapped to each of the values in $data. + * If string, that format will be used for all of the values in $data. + * A format is one of '%d', '%f', '%s' (integer, float, string). + * If omitted, all values in $data will be treated as strings unless otherwise + * specified in wpdb::$field_types. Default null. + * @param string[]|string $where_format Optional. An array of formats to be mapped to each of the values in $where. + * If string, that format will be used for all of the items in $where. + * A format is one of '%d', '%f', '%s' (integer, float, string). + * If omitted, all values in $where will be treated as strings unless otherwise + * specified in wpdb::$field_types. Default null. * @return int|false The number of rows updated, or false on error. */ public function update( $table, $data, $where, $format = null, $where_format = null ) { @@ -2771,8 +2710,21 @@ public function update( $table, $data, $where, $format = null, $where_format = n * * Examples: * - * wpdb::delete( 'table', array( 'ID' => 1 ) ) - * wpdb::delete( 'table', array( 'ID' => 1 ), array( '%d' ) ) + * $wpdb->delete( + * 'table', + * array( + * 'ID' => 1, + * ) + * ); + * $wpdb->delete( + * 'table', + * array( + * 'ID' => 1, + * ), + * array( + * '%d', + * ) + * ); * * @since 3.4.0 * @@ -2780,17 +2732,17 @@ public function update( $table, $data, $where, $format = null, $where_format = n * @see wpdb::$field_types * @see wp_set_wpdb_vars() * - * @param string $table Table name. - * @param array $where A named array of WHERE clauses (in column => value pairs). - * Multiple clauses will be joined with ANDs. - * Both $where columns and $where values should be "raw". - * Sending a null value will create an IS NULL comparison - the corresponding - * format will be ignored in this case. - * @param array|string $where_format Optional. An array of formats to be mapped to each of the values in $where. - * If string, that format will be used for all of the items in $where. - * A format is one of '%d', '%f', '%s' (integer, float, string). - * If omitted, all values in $data will be treated as strings unless otherwise - * specified in wpdb::$field_types. Default null. + * @param string $table Table name. + * @param array $where A named array of WHERE clauses (in column => value pairs). + * Multiple clauses will be joined with ANDs. + * Both $where columns and $where values should be "raw". + * Sending a null value will create an IS NULL comparison - the corresponding + * format will be ignored in this case. + * @param string[]|string $where_format Optional. An array of formats to be mapped to each of the values in $where. + * If string, that format will be used for all of the items in $where. + * A format is one of '%d', '%f', '%s' (integer, float, string). + * If omitted, all values in $data will be treated as strings unless otherwise + * specified in wpdb::$field_types. Default null. * @return int|false The number of rows deleted, or false on error. */ public function delete( $table, $where, $where_format = null ) { @@ -2834,9 +2786,9 @@ public function delete( $table, $where, $where_format = null ) { * * @since 4.2.0 * - * @param string $table Table name. - * @param array $data Field/value pair. - * @param mixed $format Format for each field. + * @param string $table Table name. + * @param array $data Array of values keyed by their field names. + * @param string[]|string $format Formats or format to be mapped to the values in the data. * @return array|false An array of fields that contain paired value and formats. * False for invalid values. */ @@ -2894,10 +2846,14 @@ protected function process_fields( $table, $data, $format ) { * * @since 4.2.0 * - * @param array $data Array of fields to values. - * @param mixed $format Formats to be mapped to the values in $data. - * @return array Array, keyed by field names with values being an array - * of 'value' and 'format' keys. + * @param array $data Array of values keyed by their field names. + * @param string[]|string $format Formats or format to be mapped to the values in the data. + * @return array { + * Array of values and formats keyed by their field names. + * + * @type mixed $value The value to be formatted. + * @type string $format The format to be mapped to the value. + * } */ protected function process_field_formats( $data, $format ) { $formats = (array) $format; @@ -2929,10 +2885,30 @@ protected function process_field_formats( $data, $format ) { * * @since 4.2.0 * - * @param array $data As it comes from the wpdb::process_field_formats() method. + * @param array $data { + * Array of values and formats keyed by their field names, + * as it comes from the wpdb::process_field_formats() method. + * + * @type array ...$0 { + * Value and format for this field. + * + * @type mixed $value The value to be formatted. + * @type string $format The format to be mapped to the value. + * } + * } * @param string $table Table name. - * @return array|false The same array as $data with additional 'charset' keys. - * False on failure. + * @return array|false { + * The same array of data with additional 'charset' keys, or false if + * the charset for the table cannot be found. + * + * @type array ...$0 { + * Value, format, and charset for this field. + * + * @type mixed $value The value to be formatted. + * @type string $format The format to be mapped to the value. + * @type string|false $charset The charset to be used for the value. + * } + * } */ protected function process_field_charsets( $data, $table ) { foreach ( $data as $field => $value ) { @@ -2960,10 +2936,38 @@ protected function process_field_charsets( $data, $table ) { * * @since 4.2.1 * - * @param array $data As it comes from the wpdb::process_field_charsets() method. + * @param array $data { + * Array of values, formats, and charsets keyed by their field names, + * as it comes from the wpdb::process_field_charsets() method. + * + * @type array ...$0 { + * Value, format, and charset for this field. + * + * @type mixed $value The value to be formatted. + * @type string $format The format to be mapped to the value. + * @type string|false $charset The charset to be used for the value. + * } + * } * @param string $table Table name. - * @return array|false The same array as $data with additional 'length' keys, or false if - * any of the values were too long for their corresponding field. + * @return array|false { + * The same array of data with additional 'length' keys, or false if + * information for the table cannot be found. + * + * @type array ...$0 { + * Value, format, charset, and length for this field. + * + * @type mixed $value The value to be formatted. + * @type string $format The format to be mapped to the value. + * @type string|false $charset The charset to be used for the value. + * @type array|false $length { + * Information about the maximum length of the value. + * False if the column has no length. + * + * @type string $type One of 'byte' or 'char'. + * @type int $length The column length. + * } + * } + * } */ protected function process_field_lengths( $data, $table ) { foreach ( $data as $field => $value ) { @@ -2987,7 +2991,7 @@ protected function process_field_lengths( $data, $table ) { } /** - * Retrieves one variable from the database. + * Retrieves one value from the database. * * Executes a SQL query and returns the value from the SQL result. * If the SQL result contains more than one column and/or more than one row, @@ -3295,9 +3299,9 @@ public function get_col_charset( $table, $column ) { * * @since 4.2.0 * - * @param string|null $charset The character set to use. Default null. - * @param string $table The name of the table being checked. - * @param string $column The name of the column being checked. + * @param string|null|false|WP_Error $charset The character set to use. Default null. + * @param string $table The name of the table being checked. + * @param string $column The name of the column being checked. */ $charset = apply_filters( 'pre_get_col_charset', null, $table, $column ); if ( null !== $charset ) { @@ -3349,8 +3353,8 @@ public function get_col_charset( $table, $column ) { * Array of column length information, false if the column has no length (for * example, numeric column), WP_Error object if there was an error. * - * @type int $length The column length. * @type string $type One of 'byte' or 'char'. + * @type int $length The column length. * } */ public function get_col_length( $table, $column ) { @@ -3525,7 +3529,7 @@ protected function check_safe_collation( $query ) { * * @since 4.2.0 * - * @param array $data Array of value arrays. Each value array has the keys 'value' and 'charset'. + * @param array $data Array of value arrays. Each value array has the keys 'value', 'charset', and 'length'. * An optional 'ascii' key can be set to false to avoid redundant ASCII checks. * @return array|WP_Error The $data parameter, with invalid characters removed from each value. * This works as a passthrough: any additional keys such as 'field' are @@ -3636,11 +3640,7 @@ protected function strip_invalid_text( $data ) { if ( $this->charset ) { $connection_charset = $this->charset; } else { - if ( $this->use_mysqli ) { - $connection_charset = mysqli_character_set_name( $this->dbh ); - } else { - $connection_charset = mysql_client_encoding(); - } + $connection_charset = mysqli_character_set_name( $this->dbh ); } if ( is_array( $value['length'] ) ) { @@ -3850,16 +3850,10 @@ protected function load_col_info() { return; } - if ( $this->use_mysqli ) { - $num_fields = mysqli_num_fields( $this->result ); - for ( $i = 0; $i < $num_fields; $i++ ) { - $this->col_info[ $i ] = mysqli_fetch_field( $this->result ); - } - } else { - $num_fields = mysql_num_fields( $this->result ); - for ( $i = 0; $i < $num_fields; $i++ ) { - $this->col_info[ $i ] = mysql_fetch_field( $this->result, $i ); - } + $num_fields = mysqli_num_fields( $this->result ); + + for ( $i = 0; $i < $num_fields; $i++ ) { + $this->col_info[ $i ] = mysqli_fetch_field( $this->result ); } } @@ -3884,7 +3878,7 @@ public function get_col_info( $info_type = 'name', $col_offset = -1 ) { $new_array = array(); foreach ( (array) $this->col_info as $col ) { $new_array[ $i ] = $col->{$info_type}; - $i++; + ++$i; } return $new_array; } else { @@ -3932,18 +3926,10 @@ public function bail( $message, $error_code = '500' ) { if ( $this->show_errors ) { $error = ''; - if ( $this->use_mysqli ) { - if ( $this->dbh instanceof mysqli ) { - $error = mysqli_error( $this->dbh ); - } elseif ( mysqli_connect_errno() ) { - $error = mysqli_connect_error(); - } - } else { - if ( is_resource( $this->dbh ) ) { - $error = mysql_error( $this->dbh ); - } else { - $error = mysql_error(); - } + if ( $this->dbh instanceof mysqli ) { + $error = mysqli_error( $this->dbh ); + } elseif ( mysqli_connect_errno() ) { + $error = mysqli_connect_error(); } if ( $error ) { @@ -3975,11 +3961,7 @@ public function close() { return false; } - if ( $this->use_mysqli ) { - $closed = mysqli_close( $this->dbh ); - } else { - $closed = mysql_close( $this->dbh ); - } + $closed = mysqli_close( $this->dbh ); if ( $closed ) { $this->dbh = null; @@ -4098,11 +4080,8 @@ public function has_cap( $db_cap ) { if ( version_compare( $db_version, '5.5.3', '<' ) ) { return false; } - if ( $this->use_mysqli ) { - $client_version = mysqli_get_client_info(); - } else { - $client_version = mysql_get_client_info(); - } + + $client_version = mysqli_get_client_info(); /* * libmysql has supported utf8mb4 since 5.5.3, same as the MySQL server. @@ -4154,19 +4133,13 @@ public function db_version() { } /** - * Retrieves full database server information. + * Returns the version of the MySQL server. * * @since 5.5.0 * - * @return string|false Server info on success, false on failure. + * @return string Server version as a string. */ public function db_server_info() { - if ( $this->use_mysqli ) { - $server_info = mysqli_get_server_info( $this->dbh ); - } else { - $server_info = mysql_get_server_info( $this->dbh ); - } - - return $server_info; + return mysqli_get_server_info( $this->dbh ); } } diff --git a/src/wp-includes/comment-template.php b/src/wp-includes/comment-template.php index 59b2361d846d8..a80dc60e41fd6 100644 --- a/src/wp-includes/comment-template.php +++ b/src/wp-includes/comment-template.php @@ -549,7 +549,7 @@ function get_comment_class( $css_class = '', $comment_id = null, $post = null ) $classes[] = 'even'; } - $comment_alt++; + ++$comment_alt; // Alt for top-level comments. if ( 1 == $comment_depth ) { @@ -559,7 +559,7 @@ function get_comment_class( $css_class = '', $comment_id = null, $post = null ) } else { $classes[] = 'thread-even'; } - $comment_thread_alt++; + ++$comment_thread_alt; } $classes[] = "depth-$comment_depth"; @@ -1381,7 +1381,7 @@ function wp_comment_form_unfiltered_html_nonce() { * and the post ID respectively. * * The `$file` path is passed through a filter hook called {@see 'comments_template'}, - * which includes the TEMPLATEPATH and $file combined. Tries the $filtered path + * which includes the template directory and $file combined. Tries the $filtered path * first and if it fails it will require the default comment template from the * default theme. If either does not exist, then the WordPress process will be * halted. It is advised for that reason, that the default theme is not deleted. @@ -1600,7 +1600,10 @@ function comments_template( $file = '/comments.php', $separate_comments = false define( 'COMMENTS_TEMPLATE', true ); } - $theme_template = STYLESHEETPATH . $file; + $stylesheet_path = get_stylesheet_directory(); + $template_path = get_template_directory(); + + $theme_template = $stylesheet_path . $file; /** * Filters the path to the theme template file used for the comments template. @@ -1613,8 +1616,8 @@ function comments_template( $file = '/comments.php', $separate_comments = false if ( file_exists( $include ) ) { require $include; - } elseif ( file_exists( TEMPLATEPATH . $file ) ) { - require TEMPLATEPATH . $file; + } elseif ( file_exists( $template_path . $file ) ) { + require $template_path . $file; } else { // Backward compat code will be removed in a future release. require ABSPATH . WPINC . '/theme-compat/comments.php'; } diff --git a/src/wp-includes/comment.php b/src/wp-includes/comment.php index 604ede7c876a7..ce0ebe769d6e2 100644 --- a/src/wp-includes/comment.php +++ b/src/wp-includes/comment.php @@ -2700,7 +2700,6 @@ function wp_update_comment_count( $post_id, $do_deferred = false ) { } elseif ( $post_id ) { return wp_update_comment_count_now( $post_id ); } - } /** @@ -3684,8 +3683,8 @@ function wp_handle_comment_submission( $comment_data ) { * * @since 4.9.6 * - * @param array $exporters An array of personal data exporters. - * @return array An array of personal data exporters. + * @param array[] $exporters An array of personal data exporters. + * @return array[] An array of personal data exporters. */ function wp_register_comment_personal_data_exporter( $exporters ) { $exporters['wordpress-comments'] = array( @@ -3702,8 +3701,13 @@ function wp_register_comment_personal_data_exporter( $exporters ) { * @since 4.9.6 * * @param string $email_address The comment author email address. - * @param int $page Comment page. - * @return array An array of personal data. + * @param int $page Comment page number. + * @return array { + * An array of personal data. + * + * @type array[] $data An array of personal data arrays. + * @type bool $done Whether the exporter is finished. + * } */ function wp_comments_personal_data_exporter( $email_address, $page = 1 ) { // Limit us to 500 comments at a time to avoid timing out. @@ -3814,8 +3818,15 @@ function wp_register_comment_personal_data_eraser( $erasers ) { * @global wpdb $wpdb WordPress database abstraction object. * * @param string $email_address The comment author email address. - * @param int $page Comment page. - * @return array + * @param int $page Comment page number. + * @return array { + * Data removal results. + * + * @type bool $items_removed Whether items were actually removed. + * @type bool $items_retained Whether items were retained. + * @type string[] $messages An array of messages to add to the personal data export file. + * @type bool $done Whether the eraser is finished. + * } */ function wp_comments_personal_data_eraser( $email_address, $page = 1 ) { global $wpdb; diff --git a/src/wp-includes/compat.php b/src/wp-includes/compat.php index 2b8de57bd7b9b..5bfdbc23d6d60 100644 --- a/src/wp-includes/compat.php +++ b/src/wp-includes/compat.php @@ -203,7 +203,7 @@ function _mb_strlen( $str, $encoding = null ) { do { // We had some string left over from the last round, but we counted it in that last round. - $count--; + --$count; /* * Split by UTF-8 character, limit to 1000 characters (last array element will contain diff --git a/src/wp-includes/cron.php b/src/wp-includes/cron.php index c3a281a626dd5..4912d5f5035c8 100644 --- a/src/wp-includes/cron.php +++ b/src/wp-includes/cron.php @@ -863,7 +863,7 @@ function spawn_cron( $gmt_time = 0 ) { * Multiple processes on multiple web servers can run this code concurrently, * this lock attempts to make spawning as atomic as possible. */ - $lock = get_transient( 'doing_cron' ); + $lock = (float) get_transient( 'doing_cron' ); if ( $lock > $gmt_time + 10 * MINUTE_IN_SECONDS ) { $lock = 0; diff --git a/src/wp-includes/css/buttons.css b/src/wp-includes/css/buttons.css index 6da6da51e07d4..787efacab6953 100644 --- a/src/wp-includes/css/buttons.css +++ b/src/wp-includes/css/buttons.css @@ -385,6 +385,10 @@ TABLE OF CONTENTS: vertical-align: inherit; } + .wp-customizer .theme-overlay .theme-actions .button { + margin-bottom: 5px; + } + .media-modal-content .media-toolbar-primary .media-button { margin-top: 10px; margin-left: 5px; diff --git a/src/wp-includes/customize/class-wp-customize-cropped-image-control.php b/src/wp-includes/customize/class-wp-customize-cropped-image-control.php index c8a55f401c0b4..5f0debba2984a 100644 --- a/src/wp-includes/customize/class-wp-customize-cropped-image-control.php +++ b/src/wp-includes/customize/class-wp-customize-cropped-image-control.php @@ -82,5 +82,4 @@ public function to_json() { $this->json['flex_width'] = absint( $this->flex_width ); $this->json['flex_height'] = absint( $this->flex_height ); } - } diff --git a/src/wp-includes/customize/class-wp-customize-header-image-control.php b/src/wp-includes/customize/class-wp-customize-header-image-control.php index 0ea73d5a0be8f..ecb134a5d1d5f 100644 --- a/src/wp-includes/customize/class-wp-customize-header-image-control.php +++ b/src/wp-includes/customize/class-wp-customize-header-image-control.php @@ -62,7 +62,6 @@ public function __construct( $manager ) { 'get_url' => 'get_header_image', ) ); - } /** @@ -213,23 +212,23 @@ public function render_content() {

%s × %s', $width, $height ) ); } elseif ( $width ) { printf( /* translators: %s: Header width in pixels. */ - __( 'Click “Add new image” to upload an image file from your computer. Your theme works best with an image with a header width of %s pixels — you’ll be able to crop your image once you upload it for a perfect fit.' ), + __( 'Click “Add New Image” to upload an image file from your computer. Your theme works best with an image with a header width of %s pixels — you’ll be able to crop your image once you upload it for a perfect fit.' ), sprintf( '%s', $width ) ); } else { printf( /* translators: %s: Header height in pixels. */ - __( 'Click “Add new image” to upload an image file from your computer. Your theme works best with an image with a header height of %s pixels — you’ll be able to crop your image once you upload it for a perfect fit.' ), + __( 'Click “Add New Image” to upload an image file from your computer. Your theme works best with an image with a header height of %s pixels — you’ll be able to crop your image once you upload it for a perfect fit.' ), sprintf( '%s', $height ) ); } @@ -247,7 +246,7 @@ public function render_content() {

- +
diff --git a/src/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php b/src/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php index 028cd8da2040c..4c8ad5bec0d50 100644 --- a/src/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php +++ b/src/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php @@ -183,7 +183,6 @@ public function __construct( WP_Customize_Manager $manager, $id, array $args = a throw new Exception( "Supplied nav_menu_item value missing property: $missing" ); } } - } /** @@ -878,7 +877,6 @@ protected function update( $value ) { } } } - } /** diff --git a/src/wp-includes/customize/class-wp-customize-theme-control.php b/src/wp-includes/customize/class-wp-customize-theme-control.php index 0ebc9ef1edc99..81c36dd421c49 100644 --- a/src/wp-includes/customize/class-wp-customize-theme-control.php +++ b/src/wp-includes/customize/class-wp-customize-theme-control.php @@ -240,7 +240,15 @@ public function content_template() {
-

+ 'success', + 'additional_classes' => array( 'notice-alt' ), + ) + ); + ?> <# } else if ( 'installed' === data.theme.type ) { #> <# if ( data.theme.blockTheme ) { #>
@@ -255,21 +263,26 @@ public function content_template() { <# } #>
-

- + <# if ( data.theme.actions.activate ) { #> activate this theme, and use the Site Editor to customize it.' ), '{{{ data.theme.actions.activate }}}' ); ?> <# } #> -

+ + 'error', + 'additional_classes' => array( 'notice-alt' ), + ) + ); + ?> <# } else { #>

{{ data.theme.name }}

@@ -281,7 +294,15 @@ public function content_template() { <# } #>
-

+ 'success', + 'additional_classes' => array( 'notice-alt' ), + ) + ); + ?> <# } #> <# } else { #>
diff --git a/src/wp-includes/default-constants.php b/src/wp-includes/default-constants.php index a1f4eedd54274..0c0ee771eb197 100644 --- a/src/wp-includes/default-constants.php +++ b/src/wp-includes/default-constants.php @@ -407,6 +407,8 @@ function wp_templating_constants() { * Filesystem path to the current active template directory. * * @since 1.5.0 + * @deprecated 6.4.0 Use get_template_directory() instead. + * @see get_template_directory() */ define( 'TEMPLATEPATH', get_template_directory() ); @@ -414,6 +416,8 @@ function wp_templating_constants() { * Filesystem path to the current active template stylesheet directory. * * @since 2.1.0 + * @deprecated 6.4.0 Use get_stylesheet_directory() instead. + * @see get_stylesheet_directory() */ define( 'STYLESHEETPATH', get_stylesheet_directory() ); @@ -429,5 +433,4 @@ function wp_templating_constants() { if ( ! defined( 'WP_DEFAULT_THEME' ) ) { define( 'WP_DEFAULT_THEME', 'twentytwentythree' ); } - } diff --git a/src/wp-includes/default-filters.php b/src/wp-includes/default-filters.php index bf39f29b4dd93..a3ea1537cb1d0 100644 --- a/src/wp-includes/default-filters.php +++ b/src/wp-includes/default-filters.php @@ -358,7 +358,6 @@ add_action( 'after_switch_theme', '_wp_menus_changed' ); add_action( 'after_switch_theme', '_wp_sidebars_changed' ); add_action( 'wp_print_styles', 'print_emoji_styles' ); -add_action( 'plugins_loaded', '_wp_theme_json_webfonts_handler' ); if ( isset( $_GET['replytocom'] ) ) { add_filter( 'wp_robots', 'wp_robots_no_robots' ); @@ -533,6 +532,9 @@ add_action( 'delete_attachment', '_delete_attachment_theme_mod' ); add_action( 'transition_post_status', '_wp_keep_alive_customize_changeset_dependent_auto_drafts', 20, 3 ); +// Block Theme Previews. +add_action( 'plugins_loaded', 'initialize_theme_preview_hooks', 1 ); + // Calendar widget cache. add_action( 'save_post', 'delete_get_calendar_cache' ); add_action( 'delete_post', 'delete_get_calendar_cache' ); @@ -719,4 +721,7 @@ // CPT wp_block custom postmeta field. add_action( 'init', 'wp_create_initial_post_meta' ); +// Font management. +add_action( 'wp_head', 'wp_print_font_faces', 50 ); + unset( $filter, $action ); diff --git a/src/wp-includes/deprecated.php b/src/wp-includes/deprecated.php index 72bf98d8321b8..1d3ddd519e1d9 100644 --- a/src/wp-includes/deprecated.php +++ b/src/wp-includes/deprecated.php @@ -5367,3 +5367,506 @@ function block_core_navigation_submenu_build_css_colors( $context, $attributes, return $colors; } + +/** + * Runs the theme.json webfonts handler. + * + * Using `WP_Theme_JSON_Resolver`, it gets the fonts defined + * in the `theme.json` for the current selection and style + * variations, validates the font-face properties, generates + * the '@font-face' style declarations, and then enqueues the + * styles for both the editor and front-end. + * + * Design Notes: + * This is not a public API, but rather an internal handler. + * A future public Webfonts API will replace this stopgap code. + * + * This code design is intentional. + * a. It hides the inner-workings. + * b. It does not expose API ins or outs for consumption. + * c. It only works with a theme's `theme.json`. + * + * Why? + * a. To avoid backwards-compatibility issues when + * the Webfonts API is introduced in Core. + * b. To make `fontFace` declarations in `theme.json` work. + * + * @link https://github.com/WordPress/gutenberg/issues/40472 + * + * @since 6.0.0 + * @deprecated 6.4.0 Use wp_print_font_faces() instead. + * @access private + */ +function _wp_theme_json_webfonts_handler() { + _deprecated_function( __FUNCTION__, '6.4.0', 'wp_print_font_faces' ); + + // Block themes are unavailable during installation. + if ( wp_installing() ) { + return; + } + + if ( ! wp_theme_has_theme_json() ) { + return; + } + + // Webfonts to be processed. + $registered_webfonts = array(); + + /** + * Gets the webfonts from theme.json. + * + * @since 6.0.0 + * + * @return array Array of defined webfonts. + */ + $fn_get_webfonts_from_theme_json = static function() { + // Get settings from theme.json. + $settings = WP_Theme_JSON_Resolver::get_merged_data()->get_settings(); + + // If in the editor, add webfonts defined in variations. + if ( is_admin() || ( defined( 'REST_REQUEST' ) && REST_REQUEST ) ) { + $variations = WP_Theme_JSON_Resolver::get_style_variations(); + foreach ( $variations as $variation ) { + // Skip if fontFamilies are not defined in the variation. + if ( empty( $variation['settings']['typography']['fontFamilies'] ) ) { + continue; + } + + // Initialize the array structure. + if ( empty( $settings['typography'] ) ) { + $settings['typography'] = array(); + } + if ( empty( $settings['typography']['fontFamilies'] ) ) { + $settings['typography']['fontFamilies'] = array(); + } + if ( empty( $settings['typography']['fontFamilies']['theme'] ) ) { + $settings['typography']['fontFamilies']['theme'] = array(); + } + + // Combine variations with settings. Remove duplicates. + $settings['typography']['fontFamilies']['theme'] = array_merge( $settings['typography']['fontFamilies']['theme'], $variation['settings']['typography']['fontFamilies']['theme'] ); + $settings['typography']['fontFamilies'] = array_unique( $settings['typography']['fontFamilies'] ); + } + } + + // Bail out early if there are no settings for webfonts. + if ( empty( $settings['typography']['fontFamilies'] ) ) { + return array(); + } + + $webfonts = array(); + + // Look for fontFamilies. + foreach ( $settings['typography']['fontFamilies'] as $font_families ) { + foreach ( $font_families as $font_family ) { + + // Skip if fontFace is not defined. + if ( empty( $font_family['fontFace'] ) ) { + continue; + } + + // Skip if fontFace is not an array of webfonts. + if ( ! is_array( $font_family['fontFace'] ) ) { + continue; + } + + $webfonts = array_merge( $webfonts, $font_family['fontFace'] ); + } + } + + return $webfonts; + }; + + /** + * Transforms each 'src' into an URI by replacing 'file:./' + * placeholder from theme.json. + * + * The absolute path to the webfont file(s) cannot be defined in + * theme.json. `file:./` is the placeholder which is replaced by + * the theme's URL path to the theme's root. + * + * @since 6.0.0 + * + * @param array $src Webfont file(s) `src`. + * @return array Webfont's `src` in URI. + */ + $fn_transform_src_into_uri = static function( array $src ) { + foreach ( $src as $key => $url ) { + // Tweak the URL to be relative to the theme root. + if ( ! str_starts_with( $url, 'file:./' ) ) { + continue; + } + + $src[ $key ] = get_theme_file_uri( str_replace( 'file:./', '', $url ) ); + } + + return $src; + }; + + /** + * Converts the font-face properties (i.e. keys) into kebab-case. + * + * @since 6.0.0 + * + * @param array $font_face Font face to convert. + * @return array Font faces with each property in kebab-case format. + */ + $fn_convert_keys_to_kebab_case = static function( array $font_face ) { + foreach ( $font_face as $property => $value ) { + $kebab_case = _wp_to_kebab_case( $property ); + $font_face[ $kebab_case ] = $value; + if ( $kebab_case !== $property ) { + unset( $font_face[ $property ] ); + } + } + + return $font_face; + }; + + /** + * Validates a webfont. + * + * @since 6.0.0 + * + * @param array $webfont The webfont arguments. + * @return array|false The validated webfont arguments, or false if the webfont is invalid. + */ + $fn_validate_webfont = static function( $webfont ) { + $webfont = wp_parse_args( + $webfont, + array( + 'font-family' => '', + 'font-style' => 'normal', + 'font-weight' => '400', + 'font-display' => 'fallback', + 'src' => array(), + ) + ); + + // Check the font-family. + if ( empty( $webfont['font-family'] ) || ! is_string( $webfont['font-family'] ) ) { + trigger_error( __( 'Webfont font family must be a non-empty string.' ) ); + + return false; + } + + // Check that the `src` property is defined and a valid type. + if ( empty( $webfont['src'] ) || ( ! is_string( $webfont['src'] ) && ! is_array( $webfont['src'] ) ) ) { + trigger_error( __( 'Webfont src must be a non-empty string or an array of strings.' ) ); + + return false; + } + + // Validate the `src` property. + foreach ( (array) $webfont['src'] as $src ) { + if ( ! is_string( $src ) || '' === trim( $src ) ) { + trigger_error( __( 'Each webfont src must be a non-empty string.' ) ); + + return false; + } + } + + // Check the font-weight. + if ( ! is_string( $webfont['font-weight'] ) && ! is_int( $webfont['font-weight'] ) ) { + trigger_error( __( 'Webfont font weight must be a properly formatted string or integer.' ) ); + + return false; + } + + // Check the font-display. + if ( ! in_array( $webfont['font-display'], array( 'auto', 'block', 'fallback', 'optional', 'swap' ), true ) ) { + $webfont['font-display'] = 'fallback'; + } + + $valid_props = array( + 'ascend-override', + 'descend-override', + 'font-display', + 'font-family', + 'font-stretch', + 'font-style', + 'font-weight', + 'font-variant', + 'font-feature-settings', + 'font-variation-settings', + 'line-gap-override', + 'size-adjust', + 'src', + 'unicode-range', + ); + + foreach ( $webfont as $prop => $value ) { + if ( ! in_array( $prop, $valid_props, true ) ) { + unset( $webfont[ $prop ] ); + } + } + + return $webfont; + }; + + /** + * Registers webfonts declared in theme.json. + * + * @since 6.0.0 + * + * @uses $registered_webfonts To access and update the registered webfonts registry (passed by reference). + * @uses $fn_get_webfonts_from_theme_json To run the function that gets the webfonts from theme.json. + * @uses $fn_convert_keys_to_kebab_case To run the function that converts keys into kebab-case. + * @uses $fn_validate_webfont To run the function that validates each font-face (webfont) from theme.json. + */ + $fn_register_webfonts = static function() use ( &$registered_webfonts, $fn_get_webfonts_from_theme_json, $fn_convert_keys_to_kebab_case, $fn_validate_webfont, $fn_transform_src_into_uri ) { + $registered_webfonts = array(); + + foreach ( $fn_get_webfonts_from_theme_json() as $webfont ) { + if ( ! is_array( $webfont ) ) { + continue; + } + + $webfont = $fn_convert_keys_to_kebab_case( $webfont ); + + $webfont = $fn_validate_webfont( $webfont ); + + $webfont['src'] = $fn_transform_src_into_uri( (array) $webfont['src'] ); + + // Skip if not valid. + if ( empty( $webfont ) ) { + continue; + } + + $registered_webfonts[] = $webfont; + } + }; + + /** + * Orders 'src' items to optimize for browser support. + * + * @since 6.0.0 + * + * @param array $webfont Webfont to process. + * @return array Ordered `src` items. + */ + $fn_order_src = static function( array $webfont ) { + $src = array(); + $src_ordered = array(); + + foreach ( $webfont['src'] as $url ) { + // Add data URIs first. + if ( str_starts_with( trim( $url ), 'data:' ) ) { + $src_ordered[] = array( + 'url' => $url, + 'format' => 'data', + ); + continue; + } + $format = pathinfo( $url, PATHINFO_EXTENSION ); + $src[ $format ] = $url; + } + + // Add woff2. + if ( ! empty( $src['woff2'] ) ) { + $src_ordered[] = array( + 'url' => sanitize_url( $src['woff2'] ), + 'format' => 'woff2', + ); + } + + // Add woff. + if ( ! empty( $src['woff'] ) ) { + $src_ordered[] = array( + 'url' => sanitize_url( $src['woff'] ), + 'format' => 'woff', + ); + } + + // Add ttf. + if ( ! empty( $src['ttf'] ) ) { + $src_ordered[] = array( + 'url' => sanitize_url( $src['ttf'] ), + 'format' => 'truetype', + ); + } + + // Add eot. + if ( ! empty( $src['eot'] ) ) { + $src_ordered[] = array( + 'url' => sanitize_url( $src['eot'] ), + 'format' => 'embedded-opentype', + ); + } + + // Add otf. + if ( ! empty( $src['otf'] ) ) { + $src_ordered[] = array( + 'url' => sanitize_url( $src['otf'] ), + 'format' => 'opentype', + ); + } + $webfont['src'] = $src_ordered; + + return $webfont; + }; + + /** + * Compiles the 'src' into valid CSS. + * + * @since 6.0.0 + * @since 6.2.0 Removed local() CSS. + * + * @param string $font_family Font family. + * @param array $value Value to process. + * @return string The CSS. + */ + $fn_compile_src = static function( $font_family, array $value ) { + $src = ''; + + foreach ( $value as $item ) { + $src .= ( 'data' === $item['format'] ) + ? ", url({$item['url']})" + : ", url('{$item['url']}') format('{$item['format']}')"; + } + + $src = ltrim( $src, ', ' ); + + return $src; + }; + + /** + * Compiles the font variation settings. + * + * @since 6.0.0 + * + * @param array $font_variation_settings Array of font variation settings. + * @return string The CSS. + */ + $fn_compile_variations = static function( array $font_variation_settings ) { + $variations = ''; + + foreach ( $font_variation_settings as $key => $value ) { + $variations .= "$key $value"; + } + + return $variations; + }; + + /** + * Builds the font-family's CSS. + * + * @since 6.0.0 + * + * @uses $fn_compile_src To run the function that compiles the src. + * @uses $fn_compile_variations To run the function that compiles the variations. + * + * @param array $webfont Webfont to process. + * @return string This font-family's CSS. + */ + $fn_build_font_face_css = static function( array $webfont ) use ( $fn_compile_src, $fn_compile_variations ) { + $css = ''; + + // Wrap font-family in quotes if it contains spaces. + if ( + str_contains( $webfont['font-family'], ' ' ) && + ! str_contains( $webfont['font-family'], '"' ) && + ! str_contains( $webfont['font-family'], "'" ) + ) { + $webfont['font-family'] = '"' . $webfont['font-family'] . '"'; + } + + foreach ( $webfont as $key => $value ) { + /* + * Skip "provider", since it's for internal API use, + * and not a valid CSS property. + */ + if ( 'provider' === $key ) { + continue; + } + + // Compile the "src" parameter. + if ( 'src' === $key ) { + $value = $fn_compile_src( $webfont['font-family'], $value ); + } + + // If font-variation-settings is an array, convert it to a string. + if ( 'font-variation-settings' === $key && is_array( $value ) ) { + $value = $fn_compile_variations( $value ); + } + + if ( ! empty( $value ) ) { + $css .= "$key:$value;"; + } + } + + return $css; + }; + + /** + * Gets the '@font-face' CSS styles for locally-hosted font files. + * + * @since 6.0.0 + * + * @uses $registered_webfonts To access and update the registered webfonts registry (passed by reference). + * @uses $fn_order_src To run the function that orders the src. + * @uses $fn_build_font_face_css To run the function that builds the font-face CSS. + * + * @return string The `@font-face` CSS. + */ + $fn_get_css = static function() use ( &$registered_webfonts, $fn_order_src, $fn_build_font_face_css ) { + $css = ''; + + foreach ( $registered_webfonts as $webfont ) { + // Order the webfont's `src` items to optimize for browser support. + $webfont = $fn_order_src( $webfont ); + + // Build the @font-face CSS for this webfont. + $css .= '@font-face{' . $fn_build_font_face_css( $webfont ) . '}'; + } + + return $css; + }; + + /** + * Generates and enqueues webfonts styles. + * + * @since 6.0.0 + * + * @uses $fn_get_css To run the function that gets the CSS. + */ + $fn_generate_and_enqueue_styles = static function() use ( $fn_get_css ) { + // Generate the styles. + $styles = $fn_get_css(); + + // Bail out if there are no styles to enqueue. + if ( '' === $styles ) { + return; + } + + // Enqueue the stylesheet. + wp_register_style( 'wp-webfonts', '' ); + wp_enqueue_style( 'wp-webfonts' ); + + // Add the styles to the stylesheet. + wp_add_inline_style( 'wp-webfonts', $styles ); + }; + + /** + * Generates and enqueues editor styles. + * + * @since 6.0.0 + * + * @uses $fn_get_css To run the function that gets the CSS. + */ + $fn_generate_and_enqueue_editor_styles = static function() use ( $fn_get_css ) { + // Generate the styles. + $styles = $fn_get_css(); + + // Bail out if there are no styles to enqueue. + if ( '' === $styles ) { + return; + } + + wp_add_inline_style( 'wp-block-library', $styles ); + }; + + add_action( 'wp_loaded', $fn_register_webfonts ); + add_action( 'wp_enqueue_scripts', $fn_generate_and_enqueue_styles ); + add_action( 'admin_init', $fn_generate_and_enqueue_editor_styles ); +} diff --git a/src/wp-includes/fonts.php b/src/wp-includes/fonts.php new file mode 100644 index 0000000000000..306364bdc8099 --- /dev/null +++ b/src/wp-includes/fonts.php @@ -0,0 +1,53 @@ + array[] $variations { + * Optional. An associated array of font variations for this font-family. + * Each variation has the following structure. + * + * @type array $font_variation { + * @type string $font-family The font-family property. + * @type string|string[] $src The URL(s) to each resource containing the font data. + * @type string $font_style Optional. The font-style property. Default 'normal'. + * @type string $font-weight Optional. The font-weight property. Default '400'. + * @type string $font-display Optional. The font-display property. Default 'fallback'. + * @type string $ascent-override Optional. The ascent-override property. + * @type string $descent-override Optional. The descent-override property. + * @type string $font-stretch Optional. The font-stretch property. + * @type string $font-variant Optional. The font-variant property. + * @type string $font-feature-settings Optional. The font-feature-settings property. + * @type string $font-variation-settings Optional. The font-variation-settings property. + * @type string $line-gap-override Optional. The line-gap-override property. + * @type string $size-adjust Optional. The size-adjust property. + * @type string $unicode-range Optional. The unicode-range property. + * } + * } + * } + */ +function wp_print_font_faces( $fonts = array() ) { + + if ( empty( $fonts ) ) { + $fonts = WP_Font_Face_Resolver::get_fonts_from_theme_json(); + } + + if ( empty( $fonts ) ) { + return; + } + + $wp_font_face = new WP_Font_Face(); + $wp_font_face->generate_and_print( $fonts ); +} diff --git a/src/wp-includes/fonts/class-wp-font-face-resolver.php b/src/wp-includes/fonts/class-wp-font-face-resolver.php new file mode 100644 index 0000000000000..da1ea1c711a37 --- /dev/null +++ b/src/wp-includes/fonts/class-wp-font-face-resolver.php @@ -0,0 +1,154 @@ + $src_url ) { + // Skip if the src doesn't start with the placeholder, as there's nothing to replace. + if ( ! str_starts_with( $src_url, $placeholder ) ) { + continue; + } + + $src_file = str_replace( $placeholder, '', $src_url ); + $src[ $src_key ] = get_theme_file_uri( $src_file ); + } + + return $src; + } + + /** + * Converts all first dimension keys into kebab-case. + * + * @since 6.4.0 + * + * @param array $data The array to process. + * @return array Data with first dimension keys converted into kebab-case. + */ + private static function to_kebab_case( array $data ) { + foreach ( $data as $key => $value ) { + $kebab_case = _wp_to_kebab_case( $key ); + $data[ $kebab_case ] = $value; + if ( $kebab_case !== $key ) { + unset( $data[ $key ] ); + } + } + + return $data; + } +} diff --git a/src/wp-includes/fonts/class-wp-font-face.php b/src/wp-includes/fonts/class-wp-font-face.php new file mode 100644 index 0000000000000..974e13ed1db8c --- /dev/null +++ b/src/wp-includes/fonts/class-wp-font-face.php @@ -0,0 +1,430 @@ + '', + 'font-style' => 'normal', + 'font-weight' => '400', + 'font-display' => 'fallback', + ); + + /** + * Valid font-face property names. + * + * @since 6.4.0 + * + * @var string[] + */ + private $valid_font_face_properties = array( + 'ascent-override', + 'descent-override', + 'font-display', + 'font-family', + 'font-stretch', + 'font-style', + 'font-weight', + 'font-variant', + 'font-feature-settings', + 'font-variation-settings', + 'line-gap-override', + 'size-adjust', + 'src', + 'unicode-range', + ); + + /** + * Valid font-display values. + * + * @since 6.4.0 + * + * @var string[] + */ + private $valid_font_display = array( 'auto', 'block', 'fallback', 'swap', 'optional' ); + + /** + * Array of font-face style tag's attribute(s) + * where the key is the attribute name and the + * value is its value. + * + * @since 6.4.0 + * + * @var string[] + */ + private $style_tag_attrs = array(); + + /** + * Creates and initializes an instance of WP_Font_Face. + * + * @since 6.4.0 + */ + public function __construct() { + if ( + function_exists( 'is_admin' ) && ! is_admin() + && + function_exists( 'current_theme_supports' ) && ! current_theme_supports( 'html5', 'style' ) + ) { + $this->style_tag_attrs = array( 'type' => 'text/css' ); + } + } + + /** + * Generates and prints the `@font-face` styles for the given fonts. + * + * @since 6.4.0 + * + * @param array[][] $fonts Optional. The font-families and their font variations. + * See {@see wp_print_font_faces()} for the supported fields. + * Default empty array. + */ + public function generate_and_print( array $fonts ) { + $fonts = $this->validate_fonts( $fonts ); + + // Bail out if there are no fonts are given to process. + if ( empty( $fonts ) ) { + return; + } + + $css = $this->get_css( $fonts ); + + /* + * The font-face CSS is contained within and open a ' ), + ), + 'expected' => '

A notice with an additional attribute with an unsafe value.

', + ), + 'additional invalid attribute' => array( + 'message' => 'A notice with an additional attribute that is invalid.', + 'args' => array( + 'attributes' => array( 'not-valid' => 'not-valid' ), + ), + 'expected' => '

A notice with an additional attribute that is invalid.

', + ), + 'multiple attributes with "role", invalid, data-*, numeric, and boolean' => array( + 'message' => 'A notice with multiple attributes with "role", invalid, "data-*", numeric, and boolean.', + 'args' => array( + 'attributes' => array( + 'role' => 'alert', + 'disabled' => 'disabled', + 'data-name' => 'my-name', + 'data-id' => 1, + 'hidden', + ), + ), + 'expected' => '', + ), 'paragraph wrapping as a falsy value rather than (bool) false' => array( 'message' => 'A notice with paragraph wrapping as a falsy value rather than (bool) false.', 'args' => array( diff --git a/tests/phpunit/tests/admin/wpAutomaticUpdater.php b/tests/phpunit/tests/admin/wpAutomaticUpdater.php index eb91a97c09e5b..9eed08e85016a 100644 --- a/tests/phpunit/tests/admin/wpAutomaticUpdater.php +++ b/tests/phpunit/tests/admin/wpAutomaticUpdater.php @@ -54,7 +54,7 @@ public function set_up() { public function test_send_plugin_theme_email_should_append_plugin_urls( $urls, $successful, $failed ) { add_filter( 'wp_mail', - function( $args ) use ( $urls ) { + function ( $args ) use ( $urls ) { foreach ( $urls as $url ) { $this->assertStringContainsString( $url, @@ -322,7 +322,7 @@ public function data_send_plugin_theme_email_should_append_plugin_urls() { public function test_send_plugin_theme_email_should_not_append_plugin_urls( $urls, $successful, $failed ) { add_filter( 'wp_mail', - function( $args ) use ( $urls ) { + function ( $args ) use ( $urls ) { foreach ( $urls as $url ) { $this->assertStringNotContainsString( $url, @@ -610,7 +610,7 @@ public function test_is_allowed_dir_should_return_true_if_open_basedir_is_set_an $open_basedir_backup = ini_get( 'open_basedir' ); // Allow access to the directory one level above the repository. - ini_set( 'open_basedir', wp_normalize_path( $abspath_grandparent ) ); + ini_set( 'open_basedir', sys_get_temp_dir() . PATH_SEPARATOR . wp_normalize_path( $abspath_grandparent ) ); // Checking an allowed directory should succeed. $actual = self::$updater->is_allowed_dir( wp_normalize_path( ABSPATH ) ); @@ -645,7 +645,7 @@ public function test_is_allowed_dir_should_return_false_if_open_basedir_is_set_a $open_basedir_backup = ini_get( 'open_basedir' ); // Allow access to the directory one level above the repository. - ini_set( 'open_basedir', wp_normalize_path( $abspath_grandparent ) ); + ini_set( 'open_basedir', sys_get_temp_dir() . PATH_SEPARATOR . wp_normalize_path( $abspath_grandparent ) ); // Checking a directory not within the allowed path should trigger an `open_basedir` warning. $actual = self::$updater->is_allowed_dir( '/.git' ); diff --git a/tests/phpunit/tests/admin/wpCommentsListTable.php b/tests/phpunit/tests/admin/wpCommentsListTable.php index a394823d3777c..8ba12eed0e24d 100644 --- a/tests/phpunit/tests/admin/wpCommentsListTable.php +++ b/tests/phpunit/tests/admin/wpCommentsListTable.php @@ -96,7 +96,7 @@ public function test_empty_trash_button_should_not_be_shown_if_there_are_no_comm public function test_bulk_action_menu_supports_options_and_optgroups() { add_filter( 'bulk_actions-edit-comments', - static function() { + static function () { return array( 'delete' => 'Delete', 'Change State' => array( @@ -213,5 +213,4 @@ public function test_get_views_should_return_views_by_default() { ); $this->assertSame( $expected, $this->table->get_views() ); } - } diff --git a/tests/phpunit/tests/admin/wpGetAdminNotice.php b/tests/phpunit/tests/admin/wpGetAdminNotice.php index b5ba31133883a..718fdf3d948b8 100644 --- a/tests/phpunit/tests/admin/wpGetAdminNotice.php +++ b/tests/phpunit/tests/admin/wpGetAdminNotice.php @@ -208,6 +208,64 @@ public function data_should_return_admin_notice() { ), 'expected' => '

A notice with additional classes that are not an array.

', ), + 'additional attribute with a value' => array( + 'message' => 'A notice with an additional attribute with a value.', + 'args' => array( + 'attributes' => array( 'aria-live' => 'assertive' ), + ), + 'expected' => '

A notice with an additional attribute with a value.

', + ), + 'additional hidden attribute' => array( + 'message' => 'A notice with the hidden attribute.', + 'args' => array( + 'attributes' => array( 'hidden' => true ), + ), + 'expected' => '', + ), + 'additional attribute no associative keys' => array( + 'message' => 'A notice with a boolean attribute without an associative key.', + 'args' => array( + 'attributes' => array( 'hidden' ), + ), + 'expected' => '', + ), + 'additional attribute with role' => array( + 'message' => 'A notice with an additional attribute role.', + 'args' => array( + 'attributes' => array( 'role' => 'alert' ), + ), + 'expected' => '', + ), + 'multiple additional attributes' => array( + 'message' => 'A notice with multiple additional attributes.', + 'args' => array( + 'attributes' => array( + 'role' => 'alert', + 'data-test' => -1, + ), + ), + 'expected' => '', + ), + 'data attribute with unsafe value' => array( + 'message' => 'A notice with an additional attribute with an unsafe value.', + 'args' => array( + 'attributes' => array( 'data-unsafe' => '' ), + ), + 'expected' => '

A notice with an additional attribute with an unsafe value.

', + ), + 'multiple attributes with "role", invalid, data-*, numeric, and boolean' => array( + 'message' => 'A notice with multiple attributes with "role", invalid, "data-*", numeric, and boolean.', + 'args' => array( + 'attributes' => array( + 'role' => 'alert', + 'disabled' => 'disabled', + 'data-name' => 'my-name', + 'data-id' => 1, + 'hidden', + ), + ), + 'expected' => '', + ), 'paragraph wrapping as a falsy value rather than (bool) false' => array( 'message' => 'A notice with paragraph wrapping as a falsy value rather than (bool) false.', 'args' => array( diff --git a/tests/phpunit/tests/admin/wpListTable.php b/tests/phpunit/tests/admin/wpListTable.php index 4a220bb083e71..65a9a714c7bb8 100644 --- a/tests/phpunit/tests/admin/wpListTable.php +++ b/tests/phpunit/tests/admin/wpListTable.php @@ -389,6 +389,7 @@ public function test_should_get_compat_fields( $property_name, $expected ) { public function test_should_throw_deprecation_when_getting_dynamic_property() { $this->expectDeprecation(); $this->expectDeprecationMessage( + 'WP_List_Table::__get(): ' . 'The property `undeclared_property` is not declared. Getting a dynamic property is ' . 'deprecated since version 6.4.0! Instead, declare the property on the class.' ); @@ -418,6 +419,7 @@ public function test_should_set_compat_fields_defined_property( $property_name ) public function test_should_throw_deprecation_when_setting_dynamic_property() { $this->expectDeprecation(); $this->expectDeprecationMessage( + 'WP_List_Table::__set(): ' . 'The property `undeclared_property` is not declared. Setting a dynamic property is ' . 'deprecated since version 6.4.0! Instead, declare the property on the class.' ); @@ -450,6 +452,7 @@ public function test_should_isset_compat_fields( $property_name, $expected ) { public function test_should_throw_deprecation_when_isset_of_dynamic_property() { $this->expectDeprecation(); $this->expectDeprecationMessage( + 'WP_List_Table::__isset(): ' . 'The property `undeclared_property` is not declared. Checking `isset()` on a dynamic property ' . 'is deprecated since version 6.4.0! Instead, declare the property on the class.' ); @@ -477,6 +480,7 @@ public function test_should_unset_compat_fields_defined_property( $property_name public function test_should_throw_deprecation_when_unset_of_dynamic_property() { $this->expectDeprecation(); $this->expectDeprecationMessage( + 'WP_List_Table::__unset(): ' . 'A property `undeclared_property` is not declared. Unsetting a dynamic property is ' . 'deprecated since version 6.4.0! Instead, declare the property on the class.' ); diff --git a/tests/phpunit/tests/admin/wpPostCommentsListTable.php b/tests/phpunit/tests/admin/wpPostCommentsListTable.php index 126126327f0e8..f69657dd873a5 100644 --- a/tests/phpunit/tests/admin/wpPostCommentsListTable.php +++ b/tests/phpunit/tests/admin/wpPostCommentsListTable.php @@ -35,5 +35,4 @@ public function test_get_views_should_return_views_by_default() { ); $this->assertSame( $expected, $this->table->get_views() ); } - } diff --git a/tests/phpunit/tests/admin/wpPostsListTable.php b/tests/phpunit/tests/admin/wpPostsListTable.php index 4b2dfe6e0a6a8..9d2482a034af7 100644 --- a/tests/phpunit/tests/admin/wpPostsListTable.php +++ b/tests/phpunit/tests/admin/wpPostsListTable.php @@ -330,5 +330,4 @@ public function test_get_views_should_return_views_by_default() { $this->assertSame( $expected, $actual ); } - } diff --git a/tests/phpunit/tests/admin/wpSiteHealth.php b/tests/phpunit/tests/admin/wpSiteHealth.php index 0d7ccb6112cbd..f8b2e2e0c8655 100644 --- a/tests/phpunit/tests/admin/wpSiteHealth.php +++ b/tests/phpunit/tests/admin/wpSiteHealth.php @@ -421,7 +421,7 @@ public function test_object_cache_default_thresholds_non_multisite() { // Set thresholds so high they should never be exceeded. add_filter( 'site_status_persistent_object_cache_thresholds', - static function() { + static function () { return array( 'alloptions_count' => PHP_INT_MAX, 'alloptions_bytes' => PHP_INT_MAX, diff --git a/tests/phpunit/tests/admin/wpTermsListTable.php b/tests/phpunit/tests/admin/wpTermsListTable.php new file mode 100644 index 0000000000000..2eb566d970ee0 --- /dev/null +++ b/tests/phpunit/tests/admin/wpTermsListTable.php @@ -0,0 +1,88 @@ +user->create( array( 'role' => 'administrator' ) ); + self::$author_id = self::factory()->user->create( array( 'role' => 'author' ) ); + + self::$term_object = self::factory()->term->create_and_get( array( 'taxonomy' => self::CATEGORY_TAXONOMY ) ); + + require_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php'; + require_once ABSPATH . 'wp-admin/includes/class-wp-terms-list-table.php'; + } + + public function set_up() { + parent::set_up(); + + $this->terms_list_table = new WP_Terms_List_Table(); + } + + /** + * Call an inaccessible (private or protected) method. + * + * @param object|string $object Object instance or class string to call the method of. + * @param string $method_name Name of the method to call. + * @param array $args Optional. Array of arguments to pass to the method. + * @return mixed Return value of the method call. + * @throws ReflectionException If the object could not be reflected upon. + */ + private function call_inaccessible_method( $object, $method_name, $args = array() ) { + $method = ( new ReflectionClass( $object ) )->getMethod( $method_name ); + $method->setAccessible( true ); + return $method->invokeArgs( $object, $args ); + } + + /** + * @covers WP_Terms_List_Table::handle_row_actions() + * + * @ticket 59336 + */ + public function test_handle_row_actions_as_author() { + wp_set_current_user( self::$author_id ); + + $actions = $this->call_inaccessible_method( $this->terms_list_table, 'handle_row_actions', array( self::$term_object, 'title', 'title' ) ); + + $this->assertStringContainsString( '
', $actions, 'Row actions should be displayed.' ); + $this->assertStringContainsString( 'View', $actions, 'View action should be displayed to the author.' ); + $this->assertStringNotContainsString( 'Edit', $actions, 'Edit action should not be displayed to the author.' ); + $this->assertStringNotContainsString( 'Delete', $actions, 'Delete action should not be displayed to the author.' ); + } + + /** + * @covers WP_Terms_List_Table::handle_row_actions() + * + * @ticket 59336 + */ + public function test_handle_row_actions_as_admin() { + wp_set_current_user( self::$admin_id ); + + $actions = $this->call_inaccessible_method( $this->terms_list_table, 'handle_row_actions', array( self::$term_object, 'title', 'title' ) ); + + $this->assertStringContainsString( '
', $actions, 'Row actions should be displayed.' ); + $this->assertStringContainsString( 'View', $actions, 'View action should be displayed to the admin.' ); + $this->assertStringContainsString( 'Edit', $actions, 'Edit action should be displayed to the admin.' ); + $this->assertStringContainsString( 'Delete', $actions, 'Delete action should be displayed to the admin.' ); + $this->assertStringContainsString( admin_url( 'term.php' ), $actions, 'Edit term link should be displayed to the admin.' ); + } +} diff --git a/tests/phpunit/tests/admin/wpUserSearch.php b/tests/phpunit/tests/admin/wpUserSearch.php new file mode 100644 index 0000000000000..e24b4d0c6a6e1 --- /dev/null +++ b/tests/phpunit/tests/admin/wpUserSearch.php @@ -0,0 +1,14 @@ + 'techno', ), 'expected' => 'A new category added.', - 'callback' => static function( array $messages ) { + 'callback' => static function ( array $messages ) { $messages['category'][1] = 'A new category added.'; return $messages; }, diff --git a/tests/phpunit/tests/ajax/wpAjaxAjaxTagSearch.php b/tests/phpunit/tests/ajax/wpAjaxAjaxTagSearch.php index fa41463c62a61..dbcc4cbe0f62b 100644 --- a/tests/phpunit/tests/ajax/wpAjaxAjaxTagSearch.php +++ b/tests/phpunit/tests/ajax/wpAjaxAjaxTagSearch.php @@ -176,7 +176,7 @@ public function test_ajax_term_search_results_filter() { // Add the ajax_term_search_results filter. add_filter( 'ajax_term_search_results', - static function( $results, $tax, $s ) { + static function ( $results, $tax, $s ) { return array( 'ajax_term_search_results was applied' ); }, 10, diff --git a/tests/phpunit/tests/ajax/wpCustomizeNavMenus.php b/tests/phpunit/tests/ajax/wpCustomizeNavMenus.php index db34c1c5d0383..40f2dd1f6f514 100644 --- a/tests/phpunit/tests/ajax/wpCustomizeNavMenus.php +++ b/tests/phpunit/tests/ajax/wpCustomizeNavMenus.php @@ -107,7 +107,6 @@ public function test_ajax_load_available_items_cap_check( $role, $expected_resul $this->assertSame( $expected_results, $response ); } - } /** @@ -291,7 +290,6 @@ public function test_ajax_load_available_items_success_status( $post_args, $succ // Get the results. $response = json_decode( $this->_last_response, true ); $this->assertSame( $success_status, $response['success'] ); - } /** diff --git a/tests/phpunit/tests/attachment/slashes.php b/tests/phpunit/tests/attachment/slashes.php index b6c009957ce6e..3fb0e58db6728 100644 --- a/tests/phpunit/tests/attachment/slashes.php +++ b/tests/phpunit/tests/attachment/slashes.php @@ -68,5 +68,4 @@ public function test_wp_insert_attachment() { $this->assertSame( wp_unslash( self::SLASH_4 ), $post->post_content_filtered ); $this->assertSame( wp_unslash( self::SLASH_6 ), $post->post_excerpt ); } - } diff --git a/tests/phpunit/tests/auth.php b/tests/phpunit/tests/auth.php index 1a2bd9a92df99..facd456dd0227 100644 --- a/tests/phpunit/tests/auth.php +++ b/tests/phpunit/tests/auth.php @@ -5,6 +5,11 @@ * @group auth */ class Tests_Auth extends WP_UnitTestCase { + // Class User values assigned to constants. + const USER_EMAIL = 'test@password.com'; + const USER_LOGIN = 'password-user'; + const USER_PASS = 'password'; + protected $user; /** @@ -22,7 +27,9 @@ class Tests_Auth extends WP_UnitTestCase { public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) { self::$_user = $factory->user->create_and_get( array( - 'user_login' => 'password-tests', + 'user_login' => self::USER_LOGIN, + 'user_email' => self::USER_EMAIL, + 'user_pass' => self::USER_PASS, ) ); @@ -46,6 +53,10 @@ public function tear_down() { // Cleanup all the global state. unset( $_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'], $GLOBALS['wp_rest_application_password_status'], $GLOBALS['wp_rest_application_password_uuid'] ); + // Cleanup manual auth cookie test. + unset( $_COOKIE[ AUTH_COOKIE ] ); + unset( $_COOKIE[ SECURE_AUTH_COOKIE ] ); + parent::tear_down(); } @@ -429,6 +440,129 @@ public function test_log_in_using_email() { $this->assertInstanceOf( 'WP_User', wp_authenticate( $user_args['user_login'], $user_args['user_pass'] ) ); } + /** + * @ticket 36476 + */ + public function test_wp_authenticate_username_password_with_wp_user_object() { + $result = wp_authenticate_username_password( self::$_user, '', '' ); + $this->assertSame( $result->ID, self::$user_id ); + } + + /** + * @ticket 36476 + */ + public function test_wp_authenticate_username_password_with_login_and_password() { + $result = wp_authenticate_username_password( null, self::USER_LOGIN, self::USER_PASS ); + $this->assertSame( self::$user_id, $result->ID ); + } + + /** + * @ticket 36476 + */ + public function test_wp_authenticate_username_password_with_null_password() { + $result = wp_authenticate_username_password( null, self::USER_LOGIN, null ); + $this->assertInstanceOf( 'WP_Error', $result ); + } + + /** + * @ticket 36476 + */ + public function test_wp_authenticate_username_password_with_null_login() { + $result = wp_authenticate_username_password( null, null, self::USER_PASS ); + $this->assertInstanceOf( 'WP_Error', $result ); + } + + /** + * @ticket 36476 + */ + public function test_wp_authenticate_username_password_with_invalid_login() { + $result = wp_authenticate_username_password( null, 'invalidlogin', self::USER_PASS ); + $this->assertInstanceOf( 'WP_Error', $result ); + } + + /** + * @ticket 36476 + */ + public function test_wp_authenticate_username_password_with_invalid_password() { + $result = wp_authenticate_username_password( null, self::USER_LOGIN, 'invalidpassword' ); + $this->assertInstanceOf( 'WP_Error', $result ); + } + + /** + * @ticket 36476 + */ + public function test_wp_authenticate_email_password_with_wp_user_object() { + $result = wp_authenticate_email_password( self::$_user, '', '' ); + $this->assertSame( self::$user_id, $result->ID ); + } + + /** + * @ticket 36476 + */ + public function test_wp_authenticate_email_password_with_login_and_password() { + $result = wp_authenticate_email_password( null, self::USER_EMAIL, self::USER_PASS ); + $this->assertSame( self::$user_id, $result->ID ); + } + + /** + * @ticket 36476 + */ + public function test_wp_authenticate_email_password_with_null_password() { + $result = wp_authenticate_email_password( null, self::USER_EMAIL, null ); + $this->assertInstanceOf( 'WP_Error', $result ); + } + + /** + * @ticket 36476 + */ + public function test_wp_authenticate_email_password_with_null_email() { + $result = wp_authenticate_email_password( null, null, self::USER_PASS ); + $this->assertInstanceOf( 'WP_Error', $result ); + } + + /** + * @ticket 36476 + */ + public function test_wp_authenticate_email_password_with_invalid_email() { + $result = wp_authenticate_email_password( null, 'invalid@example.com', self::USER_PASS ); + $this->assertInstanceOf( 'WP_Error', $result ); + } + + /** + * @ticket 36476 + */ + public function test_wp_authenticate_email_password_with_invalid_password() { + $result = wp_authenticate_email_password( null, self::USER_EMAIL, 'invalidpassword' ); + $this->assertInstanceOf( 'WP_Error', $result ); + } + + /** + * @ticket 36476 + */ + public function test_wp_authenticate_cookie_with_wp_user_object() { + $result = wp_authenticate_cookie( $this->user, null, null ); + $this->assertSame( self::$user_id, $result->ID ); + } + + /** + * @ticket 36476 + */ + public function test_wp_authenticate_cookie_with_null_params() { + $result = wp_authenticate_cookie( null, null, null ); + $this->assertNull( $result ); + } + + /** + * @ticket 36476 + */ + public function test_wp_authenticate_cookie_with_invalid_cookie() { + $_COOKIE[ AUTH_COOKIE ] = 'invalid_cookie'; + $_COOKIE[ SECURE_AUTH_COOKIE ] = 'secure_invalid_cookie'; + + $result = wp_authenticate_cookie( null, null, null ); + $this->assertInstanceOf( 'WP_Error', $result ); + } + /** * @ticket 38744 */ diff --git a/tests/phpunit/tests/avatar.php b/tests/phpunit/tests/avatar.php index 026809b4a1b56..32ff9ac648f8d 100644 --- a/tests/phpunit/tests/avatar.php +++ b/tests/phpunit/tests/avatar.php @@ -279,5 +279,4 @@ public function test_get_avatar_data_should_return_invalid_url_when_input_not_av $this->assertFalse( is_avatar_comment_type( $comment_type ) ); $this->assertFalse( $actual_data['url'] ); } - } diff --git a/tests/phpunit/tests/block-supports/border.php b/tests/phpunit/tests/block-supports/border.php index aae4d4d2cc03b..2d437599fcebd 100644 --- a/tests/phpunit/tests/block-supports/border.php +++ b/tests/phpunit/tests/block-supports/border.php @@ -18,7 +18,7 @@ public function set_up() { public function tear_down() { unregister_block_type( $this->test_block_name ); $this->test_block_name = null; - parent::set_up(); + parent::tear_down(); } /** diff --git a/tests/phpunit/tests/block-supports/colors.php b/tests/phpunit/tests/block-supports/colors.php index f9d302a741fa7..86dd8de38d0b0 100644 --- a/tests/phpunit/tests/block-supports/colors.php +++ b/tests/phpunit/tests/block-supports/colors.php @@ -18,7 +18,7 @@ public function set_up() { public function tear_down() { unregister_block_type( $this->test_block_name ); $this->test_block_name = null; - parent::set_up(); + parent::tear_down(); } /** diff --git a/tests/phpunit/tests/block-supports/elements.php b/tests/phpunit/tests/block-supports/elements.php index 02c29dd6e6788..0b1f720b5a72e 100644 --- a/tests/phpunit/tests/block-supports/elements.php +++ b/tests/phpunit/tests/block-supports/elements.php @@ -106,4 +106,68 @@ public function test_anchor_paragraph_link_color() { '

Hello WordPress!

' ); } + + /** + * Test wp_render_elements_support() with a group block that has a button + * element color set. + * + * @ticket 59309 + */ + public function test_group_with_button_element_style() { + $result = self::make_unique_id_one( + wp_render_elements_support( + '', + array( + 'blockName' => 'core/group', + 'attrs' => array( + 'style' => array( + 'elements' => array( + 'button' => array( + 'color' => array( + 'text' => 'var:preset|color|vivid-red', + ), + ), + ), + ), + ), + ) + ) + ); + $this->assertSame( + $result, + '' + ); + } + + /** + * Test wp_render_elements_support() with a group block that has a heading + * element color set. + * + * @ticket 59309 + */ + public function test_group_with_heading_element_style() { + $result = self::make_unique_id_one( + wp_render_elements_support( + '

Test

', + array( + 'blockName' => 'core/group', + 'attrs' => array( + 'style' => array( + 'elements' => array( + 'heading' => array( + 'color' => array( + 'text' => 'var:preset|color|vivid-red', + ), + ), + ), + ), + ), + ) + ) + ); + $this->assertSame( + $result, + '

Test

' + ); + } } diff --git a/tests/phpunit/tests/block-supports/shadow.php b/tests/phpunit/tests/block-supports/shadow.php index b2e9dc80f6f1d..0ccc5f08e45b2 100644 --- a/tests/phpunit/tests/block-supports/shadow.php +++ b/tests/phpunit/tests/block-supports/shadow.php @@ -18,7 +18,7 @@ public function set_up() { public function tear_down() { unregister_block_type( $this->test_block_name ); $this->test_block_name = null; - parent::set_up(); + parent::tear_down(); } /** diff --git a/tests/phpunit/tests/block-supports/spacing.php b/tests/phpunit/tests/block-supports/spacing.php index 4b5ada3798740..7b1f8e957e89d 100644 --- a/tests/phpunit/tests/block-supports/spacing.php +++ b/tests/phpunit/tests/block-supports/spacing.php @@ -18,7 +18,7 @@ public function set_up() { public function tear_down() { unregister_block_type( $this->test_block_name ); $this->test_block_name = null; - parent::set_up(); + parent::tear_down(); } /** diff --git a/tests/phpunit/tests/block-supports/typography.php b/tests/phpunit/tests/block-supports/typography.php index 1b47ea379beeb..9c547b4e5c6b4 100644 --- a/tests/phpunit/tests/block-supports/typography.php +++ b/tests/phpunit/tests/block-supports/typography.php @@ -622,6 +622,7 @@ public function data_generate_font_size_preset_fixtures() { * @ticket 57529 * @ticket 58522 * @ticket 58523 + * @ticket 59048 * * @covers ::wp_register_typography_support * @@ -692,13 +693,18 @@ public function data_generate_block_supports_font_size_fixtures() { 'returns clamp value using custom fluid config' => array( 'font_size_value' => '17px', 'theme_slug' => 'block-theme-child-with-fluid-typography-config', - 'expected_output' => 'font-size:clamp(16px, 1rem + ((1vw - 3.2px) * 0.147), 17px);', + 'expected_output' => 'font-size:clamp(16px, 1rem + ((1vw - 6.4px) * 0.179), 17px);', ), 'returns value when font size <= custom min font size bound' => array( 'font_size_value' => '15px', 'theme_slug' => 'block-theme-child-with-fluid-typography-config', 'expected_output' => 'font-size:15px;', ), + 'returns clamp value using default config if layout is fluid' => array( + 'font_size_value' => '15px', + 'theme_slug' => 'block-theme-child-with-fluid-layout', + 'expected_output' => 'font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.078), 15px);', + ), ); } @@ -988,4 +994,3 @@ public function data_wp_get_computed_fluid_typography_value() { ); } } - diff --git a/tests/phpunit/tests/block-supports/wpRenderBackgroundSupport.php b/tests/phpunit/tests/block-supports/wpRenderBackgroundSupport.php new file mode 100644 index 0000000000000..4f38db87ab317 --- /dev/null +++ b/tests/phpunit/tests/block-supports/wpRenderBackgroundSupport.php @@ -0,0 +1,188 @@ +test_block_name = null; + $this->theme_root = realpath( DIR_TESTDATA . '/themedir1' ); + $this->orig_theme_dir = $GLOBALS['wp_theme_directories']; + + // /themes is necessary as theme.php functions assume /themes is the root if there is only one root. + $GLOBALS['wp_theme_directories'] = array( WP_CONTENT_DIR . '/themes', $this->theme_root ); + + add_filter( 'theme_root', array( $this, 'filter_set_theme_root' ) ); + add_filter( 'stylesheet_root', array( $this, 'filter_set_theme_root' ) ); + add_filter( 'template_root', array( $this, 'filter_set_theme_root' ) ); + + // Clear caches. + wp_clean_themes_cache(); + unset( $GLOBALS['wp_themes'] ); + WP_Style_Engine_CSS_Rules_Store::remove_all_stores(); + } + + public function tear_down() { + $GLOBALS['wp_theme_directories'] = $this->orig_theme_dir; + + // Clear up the filters to modify the theme root. + remove_filter( 'theme_root', array( $this, 'filter_set_theme_root' ) ); + remove_filter( 'stylesheet_root', array( $this, 'filter_set_theme_root' ) ); + remove_filter( 'template_root', array( $this, 'filter_set_theme_root' ) ); + + wp_clean_themes_cache(); + unset( $GLOBALS['wp_themes'] ); + WP_Style_Engine_CSS_Rules_Store::remove_all_stores(); + unregister_block_type( $this->test_block_name ); + $this->test_block_name = null; + parent::tear_down(); + } + + public function filter_set_theme_root() { + return $this->theme_root; + } + + /** + * Tests that background image block support works as expected. + * + * @ticket 59357 + * + * @covers ::wp_render_background_support + * + * @dataProvider data_background_block_support + * + * @param string $theme_name The theme to switch to. + * @param string $block_name The test block name to register. + * @param mixed $background_settings The background block support settings. + * @param mixed $background_style The background styles within the block attributes. + * @param string $expected_wrapper Expected markup for the block wrapper. + * @param string $wrapper Existing markup for the block wrapper. + */ + public function test_background_block_support( $theme_name, $block_name, $background_settings, $background_style, $expected_wrapper, $wrapper ) { + switch_theme( $theme_name ); + $this->test_block_name = $block_name; + + register_block_type( + $this->test_block_name, + array( + 'api_version' => 2, + 'attributes' => array( + 'style' => array( + 'type' => 'object', + ), + ), + 'supports' => array( + 'background' => $background_settings, + ), + ) + ); + + $block = array( + 'blockName' => $block_name, + 'attrs' => array( + 'style' => array( + 'background' => $background_style, + ), + ), + ); + + $actual = wp_render_background_support( $wrapper, $block ); + + $this->assertEquals( + $expected_wrapper, + $actual, + 'Background block wrapper markup should be correct' + ); + } + + /** + * Data provider. + * + * @return array + */ + public function data_background_block_support() { + return array( + 'background image style is applied' => array( + 'theme_name' => 'block-theme-child-with-fluid-typography', + 'block_name' => 'test/background-rules-are-output', + 'background_settings' => array( + 'backgroundImage' => true, + ), + 'background_style' => array( + 'backgroundImage' => array( + 'url' => 'https://example.com/image.jpg', + 'source' => 'file', + ), + ), + 'expected_wrapper' => '
Content
', + 'wrapper' => '
Content
', + ), + 'background image style is appended if a style attribute already exists' => array( + 'theme_name' => 'block-theme-child-with-fluid-typography', + 'block_name' => 'test/background-rules-are-output', + 'background_settings' => array( + 'backgroundImage' => true, + ), + 'background_style' => array( + 'backgroundImage' => array( + 'url' => 'https://example.com/image.jpg', + 'source' => 'file', + ), + ), + 'expected_wrapper' => '
Content
', + 'wrapper' => '
Content
', + ), + 'background image style is appended if a style attribute containing multiple styles already exists' => array( + 'theme_name' => 'block-theme-child-with-fluid-typography', + 'block_name' => 'test/background-rules-are-output', + 'background_settings' => array( + 'backgroundImage' => true, + ), + 'background_style' => array( + 'backgroundImage' => array( + 'url' => 'https://example.com/image.jpg', + 'source' => 'file', + ), + ), + 'expected_wrapper' => '
Content
', + 'wrapper' => '
Content
', + ), + 'background image style is not applied if the block does not support background image' => array( + 'theme_name' => 'block-theme-child-with-fluid-typography', + 'block_name' => 'test/background-rules-are-not-output', + 'background_settings' => array( + 'backgroundImage' => false, + ), + 'background_style' => array( + 'backgroundImage' => array( + 'url' => 'https://example.com/image.jpg', + 'source' => 'file', + ), + ), + 'expected_wrapper' => '
Content
', + 'wrapper' => '
Content
', + ), + ); + } +} diff --git a/tests/phpunit/tests/block-template-utils.php b/tests/phpunit/tests/block-template-utils.php index b5587def995a0..bb8a25cba60b9 100644 --- a/tests/phpunit/tests/block-template-utils.php +++ b/tests/phpunit/tests/block-template-utils.php @@ -161,6 +161,154 @@ public function test_build_block_template_result_from_file() { $this->assertEmpty( $template_part->modified ); } + /** + * @ticket 59325 + * + * @covers ::_build_block_template_result_from_file + * + * @dataProvider data_build_block_template_result_from_file_injects_theme_attribute + * + * @param string $filename The template's filename. + * @param string $expected The expected block markup. + */ + public function test_build_block_template_result_from_file_injects_theme_attribute( $filename, $expected ) { + $template = _build_block_template_result_from_file( + array( + 'slug' => 'single', + 'path' => DIR_TESTDATA . "/templates/$filename", + ), + 'wp_template' + ); + $this->assertSame( $expected, $template->content ); + } + + /** + * Data provider. + * + * @return array[] + */ + public function data_build_block_template_result_from_file_injects_theme_attribute() { + $theme = 'block-theme'; + return array( + 'a template with a template part block' => array( + 'filename' => 'template-with-template-part.html', + 'expected' => sprintf( + '', + $theme + ), + ), + 'a template with a template part block nested inside another block' => array( + 'filename' => 'template-with-nested-template-part.html', + 'expected' => sprintf( + ' + +', + $theme + ), + ), + 'a template with a template part block with an existing theme attribute' => array( + 'filename' => 'template-with-template-part-with-existing-theme-attribute.html', + 'expected' => '', + ), + 'a template with no template part block' => array( + 'filename' => 'template.html', + 'expected' => ' +

Just a paragraph

+', + ), + ); + } + + /** + * @ticket 59338 + * + * @covers ::_inject_theme_attribute_in_template_part_block + */ + public function test_inject_theme_attribute_in_template_part_block() { + $template_part_block_without_theme_attribute = array( + 'blockName' => 'core/template-part', + 'attrs' => array( + 'slug' => 'header', + 'align' => 'full', + 'tagName' => 'header', + 'className' => 'site-header', + ), + 'innerHTML' => '', + 'innerContent' => array(), + 'innerBlocks' => array(), + ); + + $actual = _inject_theme_attribute_in_template_part_block( $template_part_block_without_theme_attribute ); + $expected = array( + 'blockName' => 'core/template-part', + 'attrs' => array( + 'slug' => 'header', + 'align' => 'full', + 'tagName' => 'header', + 'className' => 'site-header', + 'theme' => get_stylesheet(), + ), + 'innerHTML' => '', + 'innerContent' => array(), + 'innerBlocks' => array(), + ); + $this->assertSame( + $expected, + $actual, + '`theme` attribute was not correctly injected in template part block.' + ); + } + + /** + * @ticket 59338 + * + * @covers ::_inject_theme_attribute_in_template_part_block + */ + public function test_not_inject_theme_attribute_in_template_part_block_theme_attribute_exists() { + $template_part_block_with_existing_theme_attribute = array( + 'blockName' => 'core/template-part', + 'attrs' => array( + 'slug' => 'header', + 'align' => 'full', + 'tagName' => 'header', + 'className' => 'site-header', + 'theme' => 'fake-theme', + ), + 'innerHTML' => '', + 'innerContent' => array(), + 'innerBlocks' => array(), + ); + + $actual = _inject_theme_attribute_in_template_part_block( $template_part_block_with_existing_theme_attribute ); + $this->assertSame( + $template_part_block_with_existing_theme_attribute, + $actual, + 'Existing `theme` attribute in template part block was not respected by attribute injection.' + ); + } + + /** + * @ticket 59338 + * + * @covers ::_inject_theme_attribute_in_template_part_block + */ + public function test_not_inject_theme_attribute_non_template_part_block() { + $non_template_part_block = array( + 'blockName' => 'core/post-content', + 'attrs' => array(), + 'innerHTML' => '', + 'innerContent' => array(), + 'innerBlocks' => array(), + ); + + $actual = _inject_theme_attribute_in_template_part_block( $non_template_part_block ); + $this->assertSame( + $non_template_part_block, + $actual, + '`theme` attribute injection modified non-template-part block.' + ); + } + public function test_inject_theme_attribute_in_block_template_content() { $theme = get_stylesheet(); $content_without_theme_attribute = ''; diff --git a/tests/phpunit/tests/block-template.php b/tests/phpunit/tests/block-template.php index 16c0978813ff1..7b4cbf33220a7 100644 --- a/tests/phpunit/tests/block-template.php +++ b/tests/phpunit/tests/block-template.php @@ -184,4 +184,194 @@ public function test_template_remains_unchanged_if_templates_array_is_empty() { $resolved_template_path = locate_block_template( '', 'search', array() ); $this->assertSame( '', $resolved_template_path ); } + + /** + * Tests that `get_the_block_template_html()` wraps block parsing into the query loop when on a singular template. + * + * This is necessary since block themes do not include the necessary blocks to trigger the main query loop, and + * since there is only a single post in the main query loop in such cases anyway. + * + * @ticket 58154 + * @covers ::get_the_block_template_html + */ + public function test_get_the_block_template_html_enforces_singular_query_loop() { + global $_wp_current_template_content, $wp_query, $wp_the_query; + + // Register test block to log `in_the_loop()` results. + $in_the_loop_logs = array(); + $this->register_in_the_loop_logger_block( $in_the_loop_logs ); + + // Set main query to single post. + $post_id = self::factory()->post->create( array( 'post_title' => 'A single post' ) ); + $wp_query = new WP_Query( array( 'p' => $post_id ) ); + $wp_the_query = $wp_query; + + // Use block template that just renders post title and the above test block. + $_wp_current_template_content = ''; + + $expected = '
'; + $expected .= '

A single post

'; + $expected .= '
'; + + $output = get_the_block_template_html(); + $this->unregister_in_the_loop_logger_block(); + $this->assertSame( $expected, $output, 'Unexpected block template output' ); + $this->assertSame( array( true ), $in_the_loop_logs, 'Main query loop was not triggered' ); + } + + /** + * Tests that `get_the_block_template_html()` does not start the main query loop generally. + * + * @ticket 58154 + * @covers ::get_the_block_template_html + */ + public function test_get_the_block_template_html_does_not_generally_enforce_loop() { + global $_wp_current_template_content, $wp_query, $wp_the_query; + + // Register test block to log `in_the_loop()` results. + $in_the_loop_logs = array(); + $this->register_in_the_loop_logger_block( $in_the_loop_logs ); + + // Set main query to a general post query (i.e. not for a specific post). + $post_id = self::factory()->post->create( + array( + 'post_title' => 'A single post', + 'post_content' => 'The content.', + ) + ); + $wp_query = new WP_Query( + array( + 'post_type' => 'post', + 'post_status' => 'publish', + ) + ); + $wp_the_query = $wp_query; + + /* + * Use block template that renders the above test block, followed by a main query loop. + * `get_the_block_template_html()` should not start the loop, but the `core/query` and `core/post-template` + * blocks should. + */ + $_wp_current_template_content = ''; + $_wp_current_template_content .= ''; + $_wp_current_template_content .= ''; + $_wp_current_template_content .= ''; + $_wp_current_template_content .= ''; + $_wp_current_template_content .= ''; + $_wp_current_template_content .= ''; + + $expected = '
'; + $expected .= '
    '; + $expected .= '
  • '; + $expected .= '

    A single post

    '; + $expected .= '
    ' . wpautop( 'The content.' ) . '
    '; + $expected .= '
  • '; + $expected .= '
'; + $expected .= '
'; + + $output = get_the_block_template_html(); + $this->unregister_in_the_loop_logger_block(); + $this->assertSame( $expected, $output, 'Unexpected block template output' ); + $this->assertSame( array( false, true ), $in_the_loop_logs, 'Main query loop was triggered incorrectly' ); + } + + /** + * @ticket 58319 + * + * @covers ::get_block_theme_folders + * + * @dataProvider data_get_block_theme_folders + * + * @param string $theme The theme's stylesheet. + * @param string[] $expected The expected associative array of block theme folders. + */ + public function test_get_block_theme_folders( $theme, $expected ) { + $wp_theme = wp_get_theme( $theme ); + $wp_theme->cache_delete(); // Clear cache. + + $this->assertSame( $expected, get_block_theme_folders( $theme ), 'Incorrect block theme folders were retrieved.' ); + $reflection = new ReflectionMethod( $wp_theme, 'cache_get' ); + $reflection->setAccessible( true ); + $theme_cache = $reflection->invoke( $wp_theme, 'theme' ); + $cached_value = $theme_cache['block_template_folders']; + $reflection->setAccessible( false ); + + $this->assertSame( $expected, $cached_value, 'The cached value is incorrect.' ); + } + + /** + * Data provider. + * + * @return array[] + */ + public function data_get_block_theme_folders() { + return array( + 'block-theme' => array( + 'block-theme', + array( + 'wp_template' => 'templates', + 'wp_template_part' => 'parts', + ), + ), + 'block-theme-deprecated-path' => array( + 'block-theme-deprecated-path', + array( + 'wp_template' => 'block-templates', + 'wp_template_part' => 'block-template-parts', + ), + ), + 'block-theme-child' => array( + 'block-theme-child', + array( + 'wp_template' => 'templates', + 'wp_template_part' => 'parts', + ), + ), + 'block-theme-child-deprecated-path' => array( + 'block-theme-child-deprecated-path', + array( + 'wp_template' => 'block-templates', + 'wp_template_part' => 'block-template-parts', + ), + ), + 'this-is-an-invalid-theme' => array( + 'this-is-an-invalid-theme', + array( + 'wp_template' => 'templates', + 'wp_template_part' => 'parts', + ), + ), + 'null' => array( + null, + array( + 'wp_template' => 'templates', + 'wp_template_part' => 'parts', + ), + ), + ); + } + + /** + * Registers a test block to log `in_the_loop()` results. + * + * @param array $in_the_loop_logs Array to log function results in. Passed by reference. + */ + private function register_in_the_loop_logger_block( array &$in_the_loop_logs ) { + register_block_type( + 'test/in-the-loop-logger', + array( + 'render_callback' => function () use ( &$in_the_loop_logs ) { + $in_the_loop_logs[] = in_the_loop(); + return ''; + }, + ) + ); + } + + /** + * Unregisters the test block registered by the `register_in_the_loop_logger_block()` method. + */ + private function unregister_in_the_loop_logger_block() { + unregister_block_type( 'test/in-the-loop-logger' ); + } } diff --git a/tests/phpunit/tests/blocks/blockHooks.php b/tests/phpunit/tests/blocks/blockHooks.php new file mode 100644 index 0000000000000..2d5fbb6e9bd85 --- /dev/null +++ b/tests/phpunit/tests/blocks/blockHooks.php @@ -0,0 +1,100 @@ +is_registered( $block_name ) ) { + $registry->unregister( $block_name ); + } + } + + parent::tear_down(); + } + + /** + * @ticket 59383 + * + * @covers ::get_hooked_blocks + */ + public function test_get_hooked_blocks_no_match_found() { + $result = get_hooked_blocks( 'tests/no-hooked-blocks' ); + + $this->assertSame( array(), $result ); + } + + /** + * @ticket 59383 + * + * @covers ::get_hooked_blocks + */ + public function test_get_hooked_blocks_matches_found() { + register_block_type( + 'tests/injected-one', + array( + 'block_hooks' => array( + 'tests/hooked-at-before' => 'before', + 'tests/hooked-at-after' => 'after', + ), + ) + ); + register_block_type( + 'tests/injected-two', + array( + 'block_hooks' => array( + 'tests/hooked-at-before' => 'before', + 'tests/hooked-at-after' => 'after', + 'tests/hooked-at-first-child' => 'first_child', + 'tests/hooked-at-last-child' => 'last_child', + ), + ) + ); + + $this->assertSame( + array( + 'tests/injected-one' => 'before', + 'tests/injected-two' => 'before', + ), + get_hooked_blocks( 'tests/hooked-at-before' ), + 'block hooked at the before position' + ); + $this->assertSame( + array( + 'tests/injected-one' => 'after', + 'tests/injected-two' => 'after', + ), + get_hooked_blocks( 'tests/hooked-at-after' ), + 'block hooked at the after position' + ); + $this->assertSame( + array( + 'tests/injected-two' => 'first_child', + ), + get_hooked_blocks( 'tests/hooked-at-first-child' ), + 'block hooked at the first child position' + ); + $this->assertSame( + array( + 'tests/injected-two' => 'last_child', + ), + get_hooked_blocks( 'tests/hooked-at-last-child' ), + 'block hooked at the last child position' + ); + } +} diff --git a/tests/phpunit/tests/blocks/context.php b/tests/phpunit/tests/blocks/context.php index 76603b7b37a2a..3edddcf8ef6e5 100644 --- a/tests/phpunit/tests/blocks/context.php +++ b/tests/phpunit/tests/blocks/context.php @@ -109,7 +109,7 @@ public function test_provides_block_context() { 'gutenberg/contextWithAssigned', 'gutenberg/contextWithoutDefault', ), - 'render_callback' => static function( $attributes, $content, $block ) use ( &$provided_context ) { + 'render_callback' => static function ( $attributes, $content, $block ) use ( &$provided_context ) { $provided_context[] = $block->context; return ''; @@ -149,7 +149,7 @@ public function test_provides_default_context() { 'gutenberg/test-context-consumer', array( 'uses_context' => array( 'postId', 'postType' ), - 'render_callback' => static function( $attributes, $content, $block ) use ( &$provided_context ) { + 'render_callback' => static function ( $attributes, $content, $block ) use ( &$provided_context ) { $provided_context[] = $block->context; return ''; @@ -182,7 +182,7 @@ public function test_default_context_is_filterable() { 'gutenberg/test-context-consumer', array( 'uses_context' => array( 'example' ), - 'render_callback' => static function( $attributes, $content, $block ) use ( &$provided_context ) { + 'render_callback' => static function ( $attributes, $content, $block ) use ( &$provided_context ) { $provided_context[] = $block->context; return ''; @@ -190,7 +190,7 @@ public function test_default_context_is_filterable() { ) ); - $filter_block_context = static function( $context ) { + $filter_block_context = static function ( $context ) { $context['example'] = 'ok'; return $context; }; @@ -205,5 +205,4 @@ public function test_default_context_is_filterable() { $this->assertSame( array( 'example' => 'ok' ), $provided_context[0] ); } - } diff --git a/tests/phpunit/tests/blocks/editor.php b/tests/phpunit/tests/blocks/editor.php index 1d008560e90b5..a6f400e1678bf 100644 --- a/tests/phpunit/tests/blocks/editor.php +++ b/tests/phpunit/tests/blocks/editor.php @@ -65,7 +65,7 @@ public function filter_set_allowed_block_types_post( $allowed_block_types, $post public function filter_set_block_editor_settings_post( $editor_settings, $post ) { if ( empty( $post ) ) { - return $allowed_block_types; + return $editor_settings; } return array( @@ -307,7 +307,7 @@ public function test_get_default_block_editor_settings_max_upload_file_size() { // Force the return value of wp_max_upload_size() to be 500. add_filter( 'upload_size_limit', - static function() { + static function () { return 500; } ); @@ -446,14 +446,20 @@ public function test_wp_get_post_content_block_attributes() { 'type' => 'constrained', ), ); - // With no block theme, expect an empty array. - $this->assertSame( array(), wp_get_post_content_block_attributes() ); + // With no block theme, expect null. + $this->assertNull( wp_get_post_content_block_attributes() ); switch_theme( 'block-theme' ); $this->assertSame( $attributes_with_layout, wp_get_post_content_block_attributes() ); } + public function test_wp_get_post_content_block_attributes_no_layout() { + switch_theme( 'block-theme-post-content-default' ); + + $this->assertSame( array(), wp_get_post_content_block_attributes() ); + } + /** * @ticket 53458 */ @@ -527,6 +533,19 @@ public function test_get_block_editor_settings_theme_json_settings() { switch_theme( WP_DEFAULT_THEME ); } + /** + * @ticket 59358 + */ + public function test_get_block_editor_settings_without_post_content_block() { + + $post_editor_context = new WP_Block_Editor_Context( array( 'post' => get_post() ) ); + + $settings = get_block_editor_settings( array(), $post_editor_context ); + + $this->assertArrayNotHasKey( 'postContentAttributes', $settings ); + + } + /** * @ticket 52920 * @expectedDeprecated block_editor_settings diff --git a/tests/phpunit/tests/blocks/getBlockTemplates.php b/tests/phpunit/tests/blocks/getBlockTemplates.php index 50554479d0591..91f202a0b0119 100644 --- a/tests/phpunit/tests/blocks/getBlockTemplates.php +++ b/tests/phpunit/tests/blocks/getBlockTemplates.php @@ -101,7 +101,7 @@ public function set_up() { */ private function get_template_ids( $templates ) { return array_map( - static function( $template ) { + static function ( $template ) { return $template->id; }, $templates diff --git a/tests/phpunit/tests/blocks/register.php b/tests/phpunit/tests/blocks/register.php index 0a5047c6d1ce2..3e55206037e40 100644 --- a/tests/phpunit/tests/blocks/register.php +++ b/tests/phpunit/tests/blocks/register.php @@ -270,6 +270,21 @@ public function test_success_register_block_script_handle() { $result = register_block_script_handle( $metadata, 'script' ); $this->assertSame( 'unit-tests-test-block-script', $result ); + + // Test the behavior directly within the unit test + $this->assertFalse( + strpos( + wp_normalize_path( realpath( dirname( $metadata['file'] ) . '/' . $metadata['script'] ) ), + trailingslashit( wp_normalize_path( get_template_directory() ) ) + ) === 0 + ); + + $this->assertFalse( + strpos( + wp_normalize_path( realpath( dirname( $metadata['file'] ) . '/' . $metadata['script'] ) ), + trailingslashit( wp_normalize_path( get_stylesheet_directory() ) ) + ) === 0 + ); } /** @@ -438,6 +453,21 @@ public function test_success_register_block_style_handle() { wp_normalize_path( realpath( DIR_TESTDATA . '/blocks/notice/block.css' ) ), wp_normalize_path( wp_styles()->get_data( 'unit-tests-test-block-style', 'path' ) ) ); + + // Test the behavior directly within the unit test + $this->assertFalse( + strpos( + wp_normalize_path( realpath( dirname( $metadata['file'] ) . '/' . $metadata['style'] ) ), + trailingslashit( wp_normalize_path( get_template_directory() ) ) + ) === 0 + ); + + $this->assertFalse( + strpos( + wp_normalize_path( realpath( dirname( $metadata['file'] ) . '/' . $metadata['style'] ) ), + trailingslashit( wp_normalize_path( get_stylesheet_directory() ) ) + ) === 0 + ); } /** @@ -614,6 +644,17 @@ public function test_block_registers_with_metadata_fixture() { $result->selectors, 'Block type should contain selectors from metadata.' ); + // @ticket 59346 + $this->assertSameSets( + array( + 'tests/before' => 'before', + 'tests/after' => 'after', + 'tests/first-child' => 'first_child', + 'tests/last-child' => 'last_child', + ), + $result->block_hooks, + 'Block type should contain block hooks from metadata.' + ); $this->assertSame( array( 'align' => true, @@ -927,7 +968,7 @@ public function test_has_blocks_with_invalid_post() { * @ticket 49615 */ public function test_filter_block_registration() { - $filter_registration = static function( $args, $name ) { + $filter_registration = static function ( $args, $name ) { $args['attributes'] = array( $name => array( 'type' => 'boolean' ) ); return $args; }; @@ -945,7 +986,7 @@ public function test_filter_block_registration() { * @ticket 52138 */ public function test_filter_block_registration_metadata() { - $filter_metadata_registration = static function( $metadata ) { + $filter_metadata_registration = static function ( $metadata ) { $metadata['apiVersion'] = 3; return $metadata; }; @@ -963,7 +1004,7 @@ public function test_filter_block_registration_metadata() { * @ticket 52138 */ public function test_filter_block_registration_metadata_settings() { - $filter_metadata_registration = static function( $settings, $metadata ) { + $filter_metadata_registration = static function ( $settings, $metadata ) { $settings['api_version'] = $metadata['apiVersion'] + 1; return $settings; }; @@ -1033,4 +1074,22 @@ public function test_register_block_style_name_without_spaces() { $actual = register_block_style( 'core/query', $block_styles ); $this->assertTrue( $actual ); } + + /** + * @ticket 59346 + * + * @covers ::register_block_type + * + * @expectedIncorrectUsage register_block_type_from_metadata + */ + public function test_register_block_hooks_targeting_itself() { + $block_type = register_block_type( + DIR_TESTDATA . '/blocks/hooked-block-error' + ); + + $this->assertSame( + array( 'tests/other-block' => 'after' ), + $block_type->block_hooks + ); + } } diff --git a/tests/phpunit/tests/blocks/render.php b/tests/phpunit/tests/blocks/render.php index 56905956df7bb..632298186eaa0 100644 --- a/tests/phpunit/tests/blocks/render.php +++ b/tests/phpunit/tests/blocks/render.php @@ -521,5 +521,4 @@ public function render_test_block_wp_query() { return $content; } - } diff --git a/tests/phpunit/tests/blocks/renderCommentTemplate.php b/tests/phpunit/tests/blocks/renderCommentTemplate.php index 796bbcef8692f..0e29dc2241eec 100644 --- a/tests/phpunit/tests/blocks/renderCommentTemplate.php +++ b/tests/phpunit/tests/blocks/renderCommentTemplate.php @@ -536,7 +536,7 @@ public function test_rendering_comment_template_sets_comment_id_context() { add_filter( 'render_block', - static function( $block_content, $block ) use ( $parsed_comment_author_name_block ) { + static function ( $block_content, $block ) use ( $parsed_comment_author_name_block ) { /* * Insert a Comment Author Name block (which requires `commentId` * block context to work) after the Comment Content block. @@ -591,7 +591,7 @@ public function test_inner_block_inserted_by_render_block_data_is_retained() { $render_block_callback = new MockAction(); add_filter( 'render_block', array( $render_block_callback, 'filter' ), 10, 3 ); - $render_block_data_callback = static function( $parsed_block ) { + $render_block_data_callback = static function ( $parsed_block ) { // Add a Social Links block to a Comment Template block's inner blocks. if ( 'core/comment-template' === $parsed_block['blockName'] ) { $inserted_block_markup = <<assertSame( $expected, $actual ); + $this->assertSame( $original, $actual ); } public function data_serialize_identity_from_parsed() { @@ -55,4 +56,49 @@ public function test_serialized_block_name() { $this->assertSame( 'plugin/example', strip_core_block_namespace( 'plugin/example' ) ); } + /** + * @ticket 59327 + * + * @covers ::traverse_and_serialize_blocks + */ + public function test_traverse_and_serialize_blocks() { + $markup = "Example.\n\nExample.\n\n"; + $blocks = parse_blocks( $markup ); + + $actual = traverse_and_serialize_blocks( $blocks, array( __CLASS__, 'add_attribute_to_inner_block' ) ); + + $this->assertSame( + "Example.\n\nExample.\n\n", + $actual + ); + } + + public static function add_attribute_to_inner_block( $block ) { + if ( 'core/inner' === $block['blockName'] ) { + $block['attrs']['myattr'] = 'myvalue'; + } + return $block; + } + + /** + * @ticket 59327 + * + * @covers ::traverse_and_serialize_blocks + * + * @dataProvider data_serialize_identity_from_parsed + * + * @param string $original Original block markup. + */ + public function test_traverse_and_serialize_identity_from_parsed( $original ) { + $blocks = parse_blocks( $original ); + + $actual = traverse_and_serialize_blocks( + $blocks, + function ( $block ) { + return $block; + } + ); + + $this->assertSame( $original, $actual ); + } } diff --git a/tests/phpunit/tests/blocks/wpBlock.php b/tests/phpunit/tests/blocks/wpBlock.php index 9fb31206c03d8..dcafe53378ef3 100644 --- a/tests/phpunit/tests/blocks/wpBlock.php +++ b/tests/phpunit/tests/blocks/wpBlock.php @@ -275,7 +275,7 @@ public function test_render_static_block_type_returns_own_content() { $this->registry->register( 'core/dynamic', array( - 'render_callback' => static function() { + 'render_callback' => static function () { return 'b'; }, ) @@ -296,7 +296,7 @@ public function test_render_passes_block_for_render_callback() { $this->registry->register( 'core/greeting', array( - 'render_callback' => static function( $attributes, $content, $block ) { + 'render_callback' => static function ( $attributes, $content, $block ) { return sprintf( 'Hello from %s', $block->name ); }, ) @@ -366,7 +366,7 @@ public function test_passes_attributes_to_render_callback() { 'default' => '!', ), ), - 'render_callback' => static function( $block_attributes ) { + 'render_callback' => static function ( $block_attributes ) { return sprintf( 'Hello %s%s', $block_attributes['toWhom'], @@ -391,7 +391,7 @@ public function test_passes_content_to_render_callback() { $this->registry->register( 'core/outer', array( - 'render_callback' => static function( $block_attributes, $content ) { + 'render_callback' => static function ( $block_attributes, $content ) { return $content; }, ) @@ -399,7 +399,7 @@ public function test_passes_content_to_render_callback() { $this->registry->register( 'core/inner', array( - 'render_callback' => static function() { + 'render_callback' => static function () { return 'b'; }, ) @@ -601,7 +601,7 @@ public function test_query_loop_block_query_vars_filter() { add_filter( 'query_loop_block_query_vars', - static function( $query, $block, $page ) { + static function ( $query, $block, $page ) { $query['post_type'] = 'book'; return $query; }, @@ -768,7 +768,7 @@ public function test_block_filters_for_inner_blocks() { $this->registry->register( 'core/outer', array( - 'render_callback' => static function( $block_attributes, $content ) { + 'render_callback' => static function ( $block_attributes, $content ) { return $content; }, ) @@ -777,7 +777,7 @@ public function test_block_filters_for_inner_blocks() { $this->registry->register( 'core/inner', array( - 'render_callback' => static function() { + 'render_callback' => static function () { return 'b'; }, ) diff --git a/tests/phpunit/tests/blocks/wpBlockList.php b/tests/phpunit/tests/blocks/wpBlockList.php index 6dd2979e7087b..48b040e918f82 100644 --- a/tests/phpunit/tests/blocks/wpBlockList.php +++ b/tests/phpunit/tests/blocks/wpBlockList.php @@ -71,10 +71,10 @@ public function test_iterable() { foreach ( $blocks as $block ) { $this->assertSame( 'core/example', $block->name ); - $assertions++; + ++$assertions; foreach ( $block->inner_blocks as $inner_block ) { $this->assertSame( 'core/example', $inner_block->name ); - $assertions++; + ++$assertions; } } @@ -83,9 +83,9 @@ public function test_iterable() { $key = $blocks->key(); $block = $blocks->current(); $this->assertSame( 0, $key ); - $assertions++; + ++$assertions; $this->assertSame( 'core/example', $block->name ); - $assertions++; + ++$assertions; $blocks->next(); } @@ -102,5 +102,4 @@ public function test_countable() { $this->assertCount( 1, $blocks ); } - } diff --git a/tests/phpunit/tests/canonical.php b/tests/phpunit/tests/canonical.php index 6d16402112c21..10edea42bf517 100644 --- a/tests/phpunit/tests/canonical.php +++ b/tests/phpunit/tests/canonical.php @@ -247,7 +247,7 @@ public function test_pre_redirect_guess_404_permalink() { // Test short-circuit filter. add_filter( 'pre_redirect_guess_404_permalink', - static function() { + static function () { return 'wp'; } ); diff --git a/tests/phpunit/tests/canonical/https.php b/tests/phpunit/tests/canonical/https.php index fe6eeaed5edff..4b02f087651f2 100644 --- a/tests/phpunit/tests/canonical/https.php +++ b/tests/phpunit/tests/canonical/https.php @@ -65,5 +65,4 @@ public function test_https_request_with_https_home() { remove_filter( 'home_url', array( $this, 'set_https' ) ); } - } diff --git a/tests/phpunit/tests/canonical/paged.php b/tests/phpunit/tests/canonical/paged.php index 62786b28f9de9..d2440ef18bf48 100644 --- a/tests/phpunit/tests/canonical/paged.php +++ b/tests/phpunit/tests/canonical/paged.php @@ -26,5 +26,4 @@ public function test_redirect_canonical_with_nextpage_pagination() { // Non-existing page should redirect to the permalink. $this->assertCanonical( $link . '4/', $link ); } - } diff --git a/tests/phpunit/tests/canonical/robots.php b/tests/phpunit/tests/canonical/robots.php index c7851a062ee19..f8034a8a10022 100644 --- a/tests/phpunit/tests/canonical/robots.php +++ b/tests/phpunit/tests/canonical/robots.php @@ -12,5 +12,4 @@ public function test_remove_trailing_slashes_for_robots_requests() { $this->assertCanonical( '/robots.txt', '/robots.txt' ); $this->assertCanonical( '/robots.txt/', '/robots.txt' ); } - } diff --git a/tests/phpunit/tests/category/getCatId.php b/tests/phpunit/tests/category/getCatId.php index b5118d823304e..33709a68d3f39 100644 --- a/tests/phpunit/tests/category/getCatId.php +++ b/tests/phpunit/tests/category/getCatId.php @@ -24,6 +24,5 @@ public function test_get_cat_ID() { $this->assertSame( $testcat->term_id, get_cat_ID( $testcat->name ) ); $this->assertSame( 0, get_cat_ID( 'NO CAT' ) ); $this->assertSame( 0, get_cat_ID( 12 ) ); - } } diff --git a/tests/phpunit/tests/category/getCatName.php b/tests/phpunit/tests/category/getCatName.php index bc333a2b4600e..1a0364abbce42 100644 --- a/tests/phpunit/tests/category/getCatName.php +++ b/tests/phpunit/tests/category/getCatName.php @@ -24,6 +24,5 @@ public function test_get_cat_name() { $this->assertSame( $testcat->name, get_cat_name( $testcat->term_id ) ); $this->assertSame( '', get_cat_name( -1 ) ); $this->assertSame( '', get_cat_name( $testcat->term_id + 100 ) ); - } } diff --git a/tests/phpunit/tests/category/getCategoryBySlug.php b/tests/phpunit/tests/category/getCategoryBySlug.php index f7c0a3b886d51..58ff5bfb27f7d 100644 --- a/tests/phpunit/tests/category/getCategoryBySlug.php +++ b/tests/phpunit/tests/category/getCategoryBySlug.php @@ -34,6 +34,5 @@ public function test_get_category_by_slug() { // Validate unknown category returns false. $this->assertFalse( get_category_by_slug( 'testcat3' ) ); - } } diff --git a/tests/phpunit/tests/category/walkerCategory.php b/tests/phpunit/tests/category/walkerCategory.php index 2728b11131168..9e1ff4e094525 100644 --- a/tests/phpunit/tests/category/walkerCategory.php +++ b/tests/phpunit/tests/category/walkerCategory.php @@ -40,7 +40,7 @@ public function test_start_el_with_empty_attributes( $value, $expected ) { add_filter( 'category_list_link_attributes', - static function( $atts ) use ( $value ) { + static function ( $atts ) use ( $value ) { $atts['data-test'] = $value; return $atts; } diff --git a/tests/phpunit/tests/comment.php b/tests/phpunit/tests/comment.php index 5be490107f438..d37007d824a06 100644 --- a/tests/phpunit/tests/comment.php +++ b/tests/phpunit/tests/comment.php @@ -1012,7 +1012,6 @@ public function test_wp_new_comment_sends_all_expected_parameters_to_preprocess_ ), $this->preprocess_comment_data ); - } public function filter_preprocess_comment( $commentdata ) { diff --git a/tests/phpunit/tests/comment/checkComment.php b/tests/phpunit/tests/comment/checkComment.php index c23e1d4dc2b76..bf73a9e1be6f7 100644 --- a/tests/phpunit/tests/comment/checkComment.php +++ b/tests/phpunit/tests/comment/checkComment.php @@ -32,7 +32,6 @@ public function test_should_return_false_when_comment_previously_approved_is_ena update_option( 'comment_previously_approved', 1 ); $results = check_comment( $author, $author_email, $author_url, $comment, $author_ip, $user_agent, $comment_type ); $this->assertFalse( $results ); - } public function test_should_return_true_when_comment_previously_approved_is_enabled_and_author_has_approved_comment() { diff --git a/tests/phpunit/tests/comment/commentTime.php b/tests/phpunit/tests/comment/commentTime.php index fd9e8fe6e09c2..a155ec158c203 100644 --- a/tests/phpunit/tests/comment/commentTime.php +++ b/tests/phpunit/tests/comment/commentTime.php @@ -126,5 +126,4 @@ public function test_should_output_an_empty_string_when_global_comment_is_not_se $this->assertSame( '', $actual ); } - } diff --git a/tests/phpunit/tests/comment/commentsTemplate.php b/tests/phpunit/tests/comment/commentsTemplate.php index 7c27bf1d43e7c..cb033a55e3f59 100644 --- a/tests/phpunit/tests/comment/commentsTemplate.php +++ b/tests/phpunit/tests/comment/commentsTemplate.php @@ -9,6 +9,14 @@ */ class Tests_Comment_CommentsTemplate extends WP_UnitTestCase { + /** + * Performs setup tasks for every test. + */ + public function set_up() { + parent::set_up(); + switch_theme( 'default' ); + } + /** * @ticket 8071 */ diff --git a/tests/phpunit/tests/comment/getCommentLink.php b/tests/phpunit/tests/comment/getCommentLink.php index 3f2f2ff504460..8dc0964e0b787 100644 --- a/tests/phpunit/tests/comment/getCommentLink.php +++ b/tests/phpunit/tests/comment/getCommentLink.php @@ -55,7 +55,6 @@ public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) { 'comment_date_gmt' => gmdate( 'Y-m-d H:i:s', $now - 600 ), ) ); - } /** diff --git a/tests/phpunit/tests/comment/getCommentReplyLink.php b/tests/phpunit/tests/comment/getCommentReplyLink.php index 0377a5c0f544c..7bb4e91551d5d 100644 --- a/tests/phpunit/tests/comment/getCommentReplyLink.php +++ b/tests/phpunit/tests/comment/getCommentReplyLink.php @@ -87,5 +87,4 @@ public function test_should_return_null_when_depth_less_than_max_depth_and_comme $this->assertNull( $actual ); } - } diff --git a/tests/phpunit/tests/comment/isAvatarCommentType.php b/tests/phpunit/tests/comment/isAvatarCommentType.php index f45caae93b2d6..aa91a6d6fe806 100644 --- a/tests/phpunit/tests/comment/isAvatarCommentType.php +++ b/tests/phpunit/tests/comment/isAvatarCommentType.php @@ -72,5 +72,4 @@ public function _filter_avatar_comment_types( $types ) { $types[] = 'review'; return $types; } - } diff --git a/tests/phpunit/tests/comment/metaCache.php b/tests/phpunit/tests/comment/metaCache.php index 5a6d716e914e8..828363e580544 100644 --- a/tests/phpunit/tests/comment/metaCache.php +++ b/tests/phpunit/tests/comment/metaCache.php @@ -243,7 +243,7 @@ public function test_comment_meta_should_be_lazy_loaded_in_comment_feed_queries( // First comment will cause the cache to be primed. $num_queries = get_num_queries(); $this->assertSame( 'bar', get_comment_meta( $comments[0], 'foo', 'bar' ) ); - $num_queries++; + ++$num_queries; $this->assertSame( $num_queries, get_num_queries() ); // Second comment from the results should not cause more queries. @@ -252,7 +252,7 @@ public function test_comment_meta_should_be_lazy_loaded_in_comment_feed_queries( // A comment from outside the results will not be primed. $this->assertSame( 'bar', get_comment_meta( $comments[4], 'foo', 'bar' ) ); - $num_queries++; + ++$num_queries; $this->assertSame( $num_queries, get_num_queries() ); } @@ -293,7 +293,7 @@ public function test_comment_meta_should_be_lazy_loaded_in_single_post_comment_f // First comment will cause the cache to be primed. $num_queries = get_num_queries(); $this->assertSame( 'bar', get_comment_meta( $comments[0], 'foo', 'bar' ) ); - $num_queries++; + ++$num_queries; $this->assertSame( $num_queries, get_num_queries() ); // Second comment from the results should not cause more queries. @@ -302,7 +302,7 @@ public function test_comment_meta_should_be_lazy_loaded_in_single_post_comment_f // A comment from outside the results will not be primed. $this->assertSame( 'bar', get_comment_meta( $comments[4], 'foo', 'bar' ) ); - $num_queries++; + ++$num_queries; $this->assertSame( $num_queries, get_num_queries() ); } diff --git a/tests/phpunit/tests/comment/query.php b/tests/phpunit/tests/comment/query.php index 9f6bb14e54072..50cd9107960ca 100644 --- a/tests/phpunit/tests/comment/query.php +++ b/tests/phpunit/tests/comment/query.php @@ -245,7 +245,6 @@ public function test_query_type_pingback() { ); $this->assertSameSets( array( $c2, $c3 ), $found ); - } /** @@ -289,7 +288,6 @@ public function test_query_type_trackback() { ); $this->assertSameSets( array( $c2, $c3 ), $found ); - } /** @@ -1748,7 +1746,6 @@ public function test_get_comments_by_user() { $this->assertEquals( $users[0], $comments[0]->user_id ); $this->assertEquals( $users[0], $comments[1]->user_id ); $this->assertEquals( $users[1], $comments[2]->user_id ); - } /** @@ -3931,7 +3928,6 @@ public function test_orderby_comment__in() { ); $this->assertSame( array( $c2, $c3 ), $ids->comments ); - } /** @@ -4773,7 +4769,7 @@ public function test_updated_comment_should_invalidate_query_cache() { ) ); - $num_queries++; + ++$num_queries; $this->assertSame( $num_queries, get_num_queries() ); $this->assertSameSets( array( $c ), $q->comments ); } @@ -4809,7 +4805,7 @@ public function test_deleted_comment_should_invalidate_query_cache() { ) ); - $num_queries++; + ++$num_queries; $this->assertSame( $num_queries, get_num_queries() ); $this->assertSameSets( array(), $q->comments ); } @@ -4845,7 +4841,7 @@ public function test_trashed_comment_should_invalidate_query_cache() { ) ); - $num_queries++; + ++$num_queries; $this->assertSame( $num_queries, get_num_queries() ); $this->assertSameSets( array(), $q->comments ); } @@ -4883,7 +4879,7 @@ public function test_untrashed_comment_should_invalidate_query_cache() { ) ); - $num_queries++; + ++$num_queries; $this->assertSame( $num_queries, get_num_queries() ); $this->assertSameSets( array( $c ), $q->comments ); } @@ -4919,7 +4915,7 @@ public function test_spammed_comment_should_invalidate_query_cache() { ) ); - $num_queries++; + ++$num_queries; $this->assertSame( $num_queries, get_num_queries() ); $this->assertSameSets( array(), $q->comments ); } @@ -4957,7 +4953,7 @@ public function test_unspammed_comment_should_invalidate_query_cache() { ) ); - $num_queries++; + ++$num_queries; $this->assertSame( $num_queries, get_num_queries() ); $this->assertSameSets( array( $c ), $q->comments ); } diff --git a/tests/phpunit/tests/comment/slashes.php b/tests/phpunit/tests/comment/slashes.php index e58776d8f8b38..65c87ad2305d3 100644 --- a/tests/phpunit/tests/comment/slashes.php +++ b/tests/phpunit/tests/comment/slashes.php @@ -194,5 +194,4 @@ public function test_wp_update_comment() { $this->assertSame( wp_unslash( self::SLASH_2 ), $comment->comment_author ); $this->assertSame( wp_unslash( self::SLASH_4 ), $comment->comment_content ); } - } diff --git a/tests/phpunit/tests/comment/template.php b/tests/phpunit/tests/comment/template.php index 0632a22863279..648e8031323a9 100644 --- a/tests/phpunit/tests/comment/template.php +++ b/tests/phpunit/tests/comment/template.php @@ -69,7 +69,6 @@ public function test_get_comments_number_text_with_post_id() { $comments_number_text = ob_get_clean(); $this->assertSame( sprintf( _n( '%s Comment', '%s Comments', 6 ), '6' ), $comments_number_text ); - } /** @@ -93,7 +92,6 @@ public function test_get_comments_number_text_declension_with_default_args() { $this->go_to( $permalink ); $this->assertSame( sprintf( _n( '%s Comment', '%s Comments', 2 ), '2' ), get_comments_number_text() ); - } /** @@ -199,5 +197,4 @@ public function data_get_comments_number_text_declension() { ), ); } - } diff --git a/tests/phpunit/tests/comment/wpHandleCommentSubmission.php b/tests/phpunit/tests/comment/wpHandleCommentSubmission.php index ff2f3c8b7a256..f97712b1b61ed 100644 --- a/tests/phpunit/tests/comment/wpHandleCommentSubmission.php +++ b/tests/phpunit/tests/comment/wpHandleCommentSubmission.php @@ -54,7 +54,6 @@ public function test_submitting_comment_to_invalid_post_returns_error() { $this->assertSame( 1, did_action( $error ) ); $this->assertWPError( $comment ); $this->assertSame( $error, $comment->get_error_code() ); - } public function test_submitting_comment_to_post_with_closed_comments_returns_error() { @@ -77,7 +76,6 @@ public function test_submitting_comment_to_post_with_closed_comments_returns_err $this->assertSame( 1, did_action( $error ) ); $this->assertWPError( $comment ); $this->assertSame( $error, $comment->get_error_code() ); - } public function test_submitting_comment_to_trashed_post_returns_error() { @@ -98,7 +96,6 @@ public function test_submitting_comment_to_trashed_post_returns_error() { $this->assertSame( 1, did_action( $error ) ); $this->assertWPError( $comment ); $this->assertSame( $error, $comment->get_error_code() ); - } public function test_submitting_comment_to_draft_post_returns_error() { @@ -121,7 +118,6 @@ public function test_submitting_comment_to_draft_post_returns_error() { $this->assertWPError( $comment ); $this->assertSame( $error, $comment->get_error_code() ); $this->assertEmpty( $comment->get_error_message() ); - } /** @@ -175,7 +171,6 @@ public function test_submitting_comment_to_scheduled_post_returns_error() { $this->assertSame( 1, did_action( $error ) ); $this->assertWPError( $comment ); $this->assertSame( $error, $comment->get_error_code() ); - } public function test_submitting_comment_to_password_required_post_returns_error() { @@ -198,7 +193,6 @@ public function test_submitting_comment_to_password_required_post_returns_error( $this->assertSame( 1, did_action( $error ) ); $this->assertWPError( $comment ); $this->assertSame( $error, $comment->get_error_code() ); - } public function test_submitting_comment_to_password_protected_post_succeeds() { @@ -225,7 +219,6 @@ public function test_submitting_comment_to_password_protected_post_succeeds() { $this->assertNotWPError( $comment ); $this->assertInstanceOf( 'WP_Comment', $comment ); - } public function test_submitting_valid_comment_as_logged_in_user_succeeds() { @@ -252,7 +245,6 @@ public function test_submitting_valid_comment_as_logged_in_user_succeeds() { $this->assertSame( $user->user_email, $comment->comment_author_email ); $this->assertSame( $user->user_url, $comment->comment_author_url ); $this->assertSame( $user->ID, (int) $comment->user_id ); - } public function test_submitting_valid_comment_anonymously_succeeds() { @@ -274,7 +266,6 @@ public function test_submitting_valid_comment_anonymously_succeeds() { $this->assertSame( 'comment@example.org', $comment->comment_author_email ); $this->assertSame( 'http://user.example.org', $comment->comment_author_url ); $this->assertSame( '0', $comment->user_id ); - } /** @@ -297,7 +288,6 @@ public function test_submitting_comment_handles_slashes_correctly() { $this->assertSame( 'Comment with 1 slash: \\', $comment->comment_content ); $this->assertSame( 'Comment Author with 1 slash: \\', $comment->comment_author ); $this->assertSame( 'comment@example.org', $comment->comment_author_email ); - } public function test_submitting_comment_anonymously_to_private_post_returns_error() { @@ -318,7 +308,6 @@ public function test_submitting_comment_anonymously_to_private_post_returns_erro $this->assertFalse( is_user_logged_in() ); $this->assertWPError( $comment ); $this->assertSame( $error, $comment->get_error_code() ); - } public function test_submitting_comment_as_logged_in_user_to_inaccessible_private_post_returns_error() { @@ -348,7 +337,6 @@ public function test_submitting_comment_as_logged_in_user_to_inaccessible_privat $this->assertFalse( current_user_can( 'read_post', $post->ID ) ); $this->assertWPError( $comment ); $this->assertSame( $error, $comment->get_error_code() ); - } public function test_submitting_comment_to_private_post_with_closed_comments_returns_correct_error() { @@ -379,7 +367,6 @@ public function test_submitting_comment_to_private_post_with_closed_comments_ret $this->assertFalse( current_user_can( 'read_post', $post->ID ) ); $this->assertWPError( $comment ); $this->assertSame( $error, $comment->get_error_code() ); - } public function test_submitting_comment_to_own_private_post_succeeds() { @@ -402,7 +389,6 @@ public function test_submitting_comment_to_own_private_post_succeeds() { $this->assertTrue( current_user_can( 'read_post', $post->ID ) ); $this->assertNotWPError( $comment ); $this->assertInstanceOf( 'WP_Comment', $comment ); - } public function test_submitting_comment_to_accessible_private_post_succeeds() { @@ -425,7 +411,6 @@ public function test_submitting_comment_to_accessible_private_post_succeeds() { $this->assertTrue( current_user_can( 'read_post', $post->ID ) ); $this->assertNotWPError( $comment ); $this->assertInstanceOf( 'WP_Comment', $comment ); - } public function test_anonymous_user_cannot_comment_unfiltered_html() { @@ -440,7 +425,6 @@ public function test_anonymous_user_cannot_comment_unfiltered_html() { $this->assertNotWPError( $comment ); $this->assertInstanceOf( 'WP_Comment', $comment ); $this->assertStringNotContainsString( 'comment_content ); - } public function test_unprivileged_user_cannot_comment_unfiltered_html() { @@ -458,7 +442,6 @@ public function test_unprivileged_user_cannot_comment_unfiltered_html() { $this->assertNotWPError( $comment ); $this->assertInstanceOf( 'WP_Comment', $comment ); $this->assertStringNotContainsString( 'comment_content ); - } public function test_unprivileged_user_cannot_comment_unfiltered_html_even_with_valid_nonce() { @@ -482,7 +465,6 @@ public function test_unprivileged_user_cannot_comment_unfiltered_html_even_with_ $this->assertNotWPError( $comment ); $this->assertInstanceOf( 'WP_Comment', $comment ); $this->assertStringNotContainsString( 'comment_content ); - } public function test_privileged_user_can_comment_unfiltered_html_with_valid_nonce() { @@ -514,7 +496,6 @@ public function test_privileged_user_can_comment_unfiltered_html_with_valid_nonc $this->assertNotWPError( $comment ); $this->assertInstanceOf( 'WP_Comment', $comment ); $this->assertStringContainsString( 'comment_content ); - } public function test_privileged_user_cannot_comment_unfiltered_html_without_valid_nonce() { @@ -538,7 +519,6 @@ public function test_privileged_user_cannot_comment_unfiltered_html_without_vali $this->assertNotWPError( $comment ); $this->assertInstanceOf( 'WP_Comment', $comment ); $this->assertStringNotContainsString( 'comment_content ); - } public function test_submitting_comment_as_anonymous_user_when_registration_required_returns_error() { @@ -557,7 +537,6 @@ public function test_submitting_comment_as_anonymous_user_when_registration_requ $this->assertWPError( $comment ); $this->assertSame( $error, $comment->get_error_code() ); - } public function test_submitting_comment_with_no_name_when_name_email_required_returns_error() { @@ -578,7 +557,6 @@ public function test_submitting_comment_with_no_name_when_name_email_required_re $this->assertWPError( $comment ); $this->assertSame( $error, $comment->get_error_code() ); - } public function test_submitting_comment_with_no_email_when_name_email_required_returns_error() { @@ -599,7 +577,6 @@ public function test_submitting_comment_with_no_email_when_name_email_required_r $this->assertWPError( $comment ); $this->assertSame( $error, $comment->get_error_code() ); - } public function test_submitting_comment_with_invalid_email_when_name_email_required_returns_error() { @@ -621,7 +598,6 @@ public function test_submitting_comment_with_invalid_email_when_name_email_requi $this->assertWPError( $comment ); $this->assertSame( $error, $comment->get_error_code() ); - } public function test_submitting_comment_with_no_comment_content_returns_error() { @@ -638,7 +614,6 @@ public function test_submitting_comment_with_no_comment_content_returns_error() $this->assertWPError( $comment ); $this->assertSame( $error, $comment->get_error_code() ); - } /** @@ -788,7 +763,6 @@ public function test_comment_submission_sends_all_expected_parameters_to_preproc ), $this->preprocess_comment_data ); - } /** diff --git a/tests/phpunit/tests/comment/wpListComments.php b/tests/phpunit/tests/comment/wpListComments.php index f49ef84561674..8997b681f7756 100644 --- a/tests/phpunit/tests/comment/wpListComments.php +++ b/tests/phpunit/tests/comment/wpListComments.php @@ -6,6 +6,15 @@ * @covers ::wp_list_comments */ class Tests_Comment_WpListComments extends WP_UnitTestCase { + + /** + * Performs setup tasks for every test. + */ + public function set_up() { + parent::set_up(); + switch_theme( 'default' ); + } + /** * @ticket 35175 */ diff --git a/tests/phpunit/tests/compat/arrayKeyFirst.php b/tests/phpunit/tests/compat/arrayKeyFirst.php index 613845aba0b97..b3b97ad464d73 100644 --- a/tests/phpunit/tests/compat/arrayKeyFirst.php +++ b/tests/phpunit/tests/compat/arrayKeyFirst.php @@ -32,7 +32,6 @@ public function test_array_key_first( $expected, $arr ) { array_key_first( $arr ) ); } - } /** diff --git a/tests/phpunit/tests/compat/strContains.php b/tests/phpunit/tests/compat/strContains.php index c49cb19f236a0..ee5bb6e1d3426 100644 --- a/tests/phpunit/tests/compat/strContains.php +++ b/tests/phpunit/tests/compat/strContains.php @@ -34,7 +34,6 @@ public function test_str_contains( $expected, $haystack, $needle ) { str_contains( $haystack, $needle ) ); } - } /** diff --git a/tests/phpunit/tests/compat/strEndsWith.php b/tests/phpunit/tests/compat/strEndsWith.php index 75522d6f49bc6..7cf1e2b15d013 100644 --- a/tests/phpunit/tests/compat/strEndsWith.php +++ b/tests/phpunit/tests/compat/strEndsWith.php @@ -34,7 +34,6 @@ public function test_str_ends_with( $expected, $haystack, $needle ) { str_ends_with( $haystack, $needle ) ); } - } /** diff --git a/tests/phpunit/tests/compat/strStartsWith.php b/tests/phpunit/tests/compat/strStartsWith.php index 9e12ced33b845..6bf72cd621932 100644 --- a/tests/phpunit/tests/compat/strStartsWith.php +++ b/tests/phpunit/tests/compat/strStartsWith.php @@ -34,7 +34,6 @@ public function test_str_starts_with( $expected, $haystack, $needle ) { str_starts_with( $haystack, $needle ) ); } - } /** diff --git a/tests/phpunit/tests/cron.php b/tests/phpunit/tests/cron.php index e5ecee093b1b6..ec97b366d0713 100644 --- a/tests/phpunit/tests/cron.php +++ b/tests/phpunit/tests/cron.php @@ -53,7 +53,6 @@ public function test_schedule_event_single() { // It's a non-recurring event. $this->assertFalse( wp_get_schedule( $hook ) ); - } /** @@ -708,7 +707,6 @@ public function test_get_scheduled_event_false() { $this->assertFalse( wp_get_scheduled_event( $hook, $args, strtotime( '+30 minutes' ) ) ); // - Invalid timestamp. $this->assertFalse( wp_get_scheduled_event( $hook, $args, 'Words Fail!' ) ); - } /** @@ -767,7 +765,6 @@ public function test_duplicate_near_future_event() { $subsequent = wp_schedule_single_event( $ts3, $hook, $args, true ); $this->assertWPError( $subsequent ); $this->assertSame( 'duplicate_event', $subsequent->get_error_code() ); - } /** @@ -913,7 +910,7 @@ public function test_disallowed_event_returns_error_when_wp_error_is_set_to_true * @covers ::wp_reschedule_event */ public function test_schedule_short_circuit_with_error_returns_false_when_wp_error_is_set_to_false() { - $return_error = function( $pre, $event, $wp_error ) { + $return_error = function ( $pre, $event, $wp_error ) { $this->assertFalse( $wp_error ); return new WP_Error( @@ -945,7 +942,7 @@ public function test_schedule_short_circuit_with_error_returns_false_when_wp_err * @covers ::wp_reschedule_event */ public function test_schedule_short_circuit_with_error_returns_error_when_wp_error_is_set_to_true() { - $return_error = function( $pre, $event, $wp_error ) { + $return_error = function ( $pre, $event, $wp_error ) { $this->assertTrue( $wp_error ); return new WP_Error( @@ -1032,7 +1029,7 @@ public function test_schedule_short_circuit_with_false_returns_error_when_wp_err * @covers ::wp_clear_scheduled_hook */ public function test_deprecated_argument_usage_of_wp_clear_scheduled_hook() { - $return_pre = function( $pre, $hook, $args, $wp_error ) { + $return_pre = function ( $pre, $hook, $args, $wp_error ) { $this->assertSame( array( 1, 2, 3 ), $args ); $this->assertFalse( $wp_error ); @@ -1075,7 +1072,7 @@ public function test_clear_scheduled_hook_returns_default_pre_filter_error_when_ * @covers ::wp_clear_scheduled_hook */ public function test_clear_scheduled_hook_returns_custom_pre_filter_error_when_wp_error_is_set_to_true() { - $return_error = function( $pre, $timestamp, $hook, $args, $wp_error ) { + $return_error = function ( $pre, $timestamp, $hook, $args, $wp_error ) { $this->assertTrue( $wp_error ); return new WP_Error( 'error_code', 'error message' ); @@ -1110,7 +1107,7 @@ public function test_clear_scheduled_hook_returns_custom_pre_filter_error_when_w * @covers ::wp_unschedule_hook */ public function test_unschedule_short_circuit_with_error_returns_false_when_wp_error_is_set_to_false() { - $return_error = function( $pre, $hook, $wp_error ) { + $return_error = function ( $pre, $hook, $wp_error ) { $this->assertFalse( $wp_error ); return new WP_Error( @@ -1135,7 +1132,7 @@ public function test_unschedule_short_circuit_with_error_returns_false_when_wp_e * @covers ::wp_unschedule_hook */ public function test_unschedule_short_circuit_with_error_returns_error_when_wp_error_is_set_to_true() { - $return_error = function( $pre, $hook, $wp_error ) { + $return_error = function ( $pre, $hook, $wp_error ) { $this->assertTrue( $wp_error ); return new WP_Error( @@ -1197,7 +1194,7 @@ public function test_cron_array_error_is_returned_when_scheduling_single_event() // Force update_option() to fail by setting the new value to match the existing: add_filter( 'pre_update_option_cron', - static function() { + static function () { return get_option( 'cron' ); } ); @@ -1219,7 +1216,7 @@ public function test_cron_array_error_is_returned_when_scheduling_event() { // Force update_option() to fail by setting the new value to match the existing: add_filter( 'pre_update_option_cron', - static function() { + static function () { return get_option( 'cron' ); } ); @@ -1244,7 +1241,7 @@ public function test_cron_array_error_is_returned_when_unscheduling_hook() { // Force update_option() to fail by setting the new value to match the existing: add_filter( 'pre_update_option_cron', - static function() { + static function () { return get_option( 'cron' ); } ); @@ -1270,7 +1267,7 @@ public function test_cron_array_error_is_returned_when_unscheduling_event() { // Force update_option() to fail by setting the new value to match the existing: add_filter( 'pre_update_option_cron', - static function() { + static function () { return get_option( 'cron' ); } ); @@ -1283,5 +1280,4 @@ static function() { $this->assertWPError( $unscheduled ); $this->assertSame( 'could_not_set', $unscheduled->get_error_code() ); } - } diff --git a/tests/phpunit/tests/customize/manager.php b/tests/phpunit/tests/customize/manager.php index d42133a1ba481..4a64db964d8ee 100644 --- a/tests/phpunit/tests/customize/manager.php +++ b/tests/phpunit/tests/customize/manager.php @@ -3669,5 +3669,4 @@ public function validate( $value ) { } return true; } - } diff --git a/tests/phpunit/tests/customize/nav-menus.php b/tests/phpunit/tests/customize/nav-menus.php index 6cc8f3d08c5b6..e0c80d1a56fec 100644 --- a/tests/phpunit/tests/customize/nav-menus.php +++ b/tests/phpunit/tests/customize/nav-menus.php @@ -655,7 +655,6 @@ public function test_available_item_types() { add_filter( 'customize_nav_menu_available_item_types', array( $this, 'filter_item_types' ) ); $this->assertSame( $expected, $menus->available_item_types() ); remove_filter( 'customize_nav_menu_available_item_types', array( $this, 'filter_item_types' ) ); - } /** diff --git a/tests/phpunit/tests/customize/panel.php b/tests/phpunit/tests/customize/panel.php index ab7859499e57c..40f198675a03a 100644 --- a/tests/phpunit/tests/customize/panel.php +++ b/tests/phpunit/tests/customize/panel.php @@ -237,5 +237,4 @@ protected function content_template() { assertSame( $override_value, $setting->value() ); } } - diff --git a/tests/phpunit/tests/date/query.php b/tests/phpunit/tests/date/query.php index 7fc21f3878462..bf20e01cb0cea 100644 --- a/tests/phpunit/tests/date/query.php +++ b/tests/phpunit/tests/date/query.php @@ -579,7 +579,6 @@ public function test_build_mysql_datetime_with_custom_timezone( $datetime, $expe $message = "Expected {$expected}, got {$found}"; $this->assertEqualsWithDelta( strtotime( $expected ), strtotime( $found ), 10, $message ); - } public function data_build_mysql_datetime_with_custom_timezone() { @@ -1021,7 +1020,6 @@ public function test_validate_date_values_second() { foreach ( $seconds as $second ) { $this->assertFalse( $this->q->validate_date_values( array( 'second' => $second ) ) ); } - } /** diff --git a/tests/phpunit/tests/date/theDate.php b/tests/phpunit/tests/date/theDate.php index 2337ab61ec059..fffcb47ad5665 100644 --- a/tests/phpunit/tests/date/theDate.php +++ b/tests/phpunit/tests/date/theDate.php @@ -80,7 +80,7 @@ public function test_should_call_hooks() { } public function count_hook( $input ) { - $this->hooks_called[ current_filter() ]++; + ++$this->hooks_called[ current_filter() ]; return $input; } diff --git a/tests/phpunit/tests/db.php b/tests/phpunit/tests/db.php index 11e35e45547aa..21c34cbadb856 100644 --- a/tests/phpunit/tests/db.php +++ b/tests/phpunit/tests/db.php @@ -713,9 +713,6 @@ public function test_empty_where_on_update() { */ public function test_mysqli_flush_sync() { global $wpdb; - if ( ! $wpdb->use_mysqli ) { - $this->markTestSkipped( 'mysqli not being used.' ); - } $suppress = $wpdb->suppress_errors( true ); diff --git a/tests/phpunit/tests/db/dbDelta.php b/tests/phpunit/tests/db/dbDelta.php index 03426fa721997..899f85c5d6b85 100644 --- a/tests/phpunit/tests/db/dbDelta.php +++ b/tests/phpunit/tests/db/dbDelta.php @@ -311,7 +311,6 @@ public function test_insert_into_table() { ); $this->assertTableRowHasValue( 'column_1', 'wcphilly2015', $wpdb->prefix . 'dbdelta_test' ); - } /** diff --git a/tests/phpunit/tests/dependencies.php b/tests/phpunit/tests/dependencies.php index e5a7a33a7cb7c..39a2860fc365e 100644 --- a/tests/phpunit/tests/dependencies.php +++ b/tests/phpunit/tests/dependencies.php @@ -27,7 +27,6 @@ public function test_remove() { $this->assertFalse( $dep->query( 'one' ) ); $this->assertInstanceOf( '_WP_Dependency', $dep->query( 'two' ) ); - } public function test_enqueue() { @@ -134,7 +133,6 @@ public function test_query_and_registered_enqueued() { $dep->remove( 'one' ); $this->assertFalse( $dep->query( 'one' ) ); - } public function test_enqueue_before_register() { diff --git a/tests/phpunit/tests/dependencies/scripts.php b/tests/phpunit/tests/dependencies/scripts.php index ca88433713113..37e751b294651 100644 --- a/tests/phpunit/tests/dependencies/scripts.php +++ b/tests/phpunit/tests/dependencies/scripts.php @@ -2917,7 +2917,7 @@ public function test_wp_external_wp_i18n_print_order() { wp_set_script_translations( 'common' ); $print_scripts = get_echo( - static function() { + static function () { wp_print_scripts(); _print_scripts(); } diff --git a/tests/phpunit/tests/dependencies/styles.php b/tests/phpunit/tests/dependencies/styles.php index 4b1e46f21d33b..da79c2812dc84 100644 --- a/tests/phpunit/tests/dependencies/styles.php +++ b/tests/phpunit/tests/dependencies/styles.php @@ -186,7 +186,6 @@ public function test_inline_styles_concat() { wp_print_styles(); $this->assertSame( $expected, $wp_styles->print_html ); - } /** @@ -279,7 +278,6 @@ public function test_multiple_inline_styles() { // No styles left to print. $this->assertSame( $expected, get_echo( 'wp_print_styles' ) ); - } /** @@ -304,7 +302,6 @@ public function test_plugin_doing_inline_styles_wrong() { wp_add_inline_style( 'handle', $style ); $this->assertSame( $expected, get_echo( 'wp_print_styles' ) ); - } /** @@ -319,7 +316,6 @@ public function test_unnecessary_style_tags() { wp_enqueue_style( 'handle', 'http://example.com', array(), 1 ); $this->assertSame( $expected, get_echo( 'wp_print_styles' ) ); - } /** diff --git a/tests/phpunit/tests/dependencies/wpSanitizeScriptAttributes.php b/tests/phpunit/tests/dependencies/wpSanitizeScriptAttributes.php index ef737f239ac7e..3ff79fc5d83d3 100644 --- a/tests/phpunit/tests/dependencies/wpSanitizeScriptAttributes.php +++ b/tests/phpunit/tests/dependencies/wpSanitizeScriptAttributes.php @@ -128,5 +128,4 @@ public function test_sanitize_script_attributes_only_true_boolean_attributes() { remove_theme_support( 'html5' ); } - } diff --git a/tests/phpunit/tests/diff/wpTextDiffRendererTable.php b/tests/phpunit/tests/diff/wpTextDiffRendererTable.php index 4dbbdbbefeb4a..7b85a78582859 100644 --- a/tests/phpunit/tests/diff/wpTextDiffRendererTable.php +++ b/tests/phpunit/tests/diff/wpTextDiffRendererTable.php @@ -43,6 +43,7 @@ public function test_should_get_compat_fields( $property_name, $expected ) { public function test_should_throw_deprecation_when_getting_dynamic_property() { $this->expectDeprecation(); $this->expectDeprecationMessage( + 'WP_Text_Diff_Renderer_Table::__get(): ' . 'The property `undeclared_property` is not declared. Getting a dynamic property is ' . 'deprecated since version 6.4.0! Instead, declare the property on the class.' ); @@ -72,6 +73,7 @@ public function test_should_set_compat_fields( $property_name ) { public function test_should_throw_deprecation_when_setting_dynamic_property() { $this->expectDeprecation(); $this->expectDeprecationMessage( + 'WP_Text_Diff_Renderer_Table::__set(): ' . 'The property `undeclared_property` is not declared. Setting a dynamic property is ' . 'deprecated since version 6.4.0! Instead, declare the property on the class.' ); @@ -104,6 +106,7 @@ public function test_should_isset_compat_fields( $property_name, $expected ) { public function test_should_throw_deprecation_when_isset_of_dynamic_property() { $this->expectDeprecation(); $this->expectDeprecationMessage( + 'WP_Text_Diff_Renderer_Table::__isset(): ' . 'The property `undeclared_property` is not declared. Checking `isset()` on a dynamic property ' . 'is deprecated since version 6.4.0! Instead, declare the property on the class.' ); @@ -131,6 +134,7 @@ public function test_should_unset_compat_fields( $property_name ) { public function test_should_throw_deprecation_when_unset_of_dynamic_property() { $this->expectDeprecation(); $this->expectDeprecationMessage( + 'WP_Text_Diff_Renderer_Table::__unset(): ' . 'A property `undeclared_property` is not declared. Unsetting a dynamic property is ' . 'deprecated since version 6.4.0! Instead, declare the property on the class.' ); diff --git a/tests/phpunit/tests/editor/navigation-fallback.php b/tests/phpunit/tests/editor/navigation-fallback.php index 46befacc3c985..6cdf1b35be6ed 100644 --- a/tests/phpunit/tests/editor/navigation-fallback.php +++ b/tests/phpunit/tests/editor/navigation-fallback.php @@ -191,7 +191,6 @@ public function test_should_return_fallback_navigation_from_existing_classic_men // Check that only a single Navigation fallback was created. $navs_in_db = $this->get_navigations_in_database(); $this->assertCount( 1, $navs_in_db, 'A single Navigation menu should be present in the database.' ); - } /** @@ -348,7 +347,6 @@ public function test_should_not_create_fallback_from_classic_menu_if_a_navigatio $navs_in_db = $this->get_navigations_in_database(); $this->assertCount( 1, $navs_in_db, 'Only the existing Navigation menus should be present in the database.' ); - } private function get_navigations_in_database() { @@ -364,5 +362,4 @@ private function get_navigations_in_database() { return $navs_in_db->posts ? $navs_in_db->posts : array(); } - } diff --git a/tests/phpunit/tests/feed/atom.php b/tests/phpunit/tests/feed/atom.php index c88592ec9aa5f..dae234f51caf5 100644 --- a/tests/phpunit/tests/feed/atom.php +++ b/tests/phpunit/tests/feed/atom.php @@ -56,7 +56,6 @@ public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) { // Assign a tagline option. update_option( 'blogdescription', 'Just another WordPress site' ); - } /** @@ -288,7 +287,7 @@ public function test_atom_enclosure_with_extended_url_length_type_parsing() { $this->assertSame( $enclosures[ $i ]['expected']['href'], $link['attributes']['href'] ); $this->assertEquals( $enclosures[ $i ]['expected']['length'], $link['attributes']['length'] ); $this->assertSame( $enclosures[ $i ]['expected']['type'], $link['attributes']['type'] ); - $i++; + ++$i; } } } diff --git a/tests/phpunit/tests/feed/rss2.php b/tests/phpunit/tests/feed/rss2.php index a3f45e0896fc6..9a45230d3958c 100644 --- a/tests/phpunit/tests/feed/rss2.php +++ b/tests/phpunit/tests/feed/rss2.php @@ -64,7 +64,6 @@ public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) { // Assign a tagline option. update_option( 'blogdescription', 'Just another WordPress site' ); - } /** @@ -506,7 +505,6 @@ public function data_get_feed_build_date() { array( '/?feed=rss2', 'rss' ), array( '/?feed=commentsrss2', 'rss' ), ); - } /** @@ -535,7 +533,7 @@ public function test_feed_last_modified_should_be_a_post_date_when_withcomments_ // The Last-Modified header should have the post's date when "withcomments" is not passed. add_filter( 'wp_headers', - function( $headers ) use ( $last_week ) { + function ( $headers ) use ( $last_week ) { $this->assertSame( strtotime( $headers['Last-Modified'] ), strtotime( $last_week ), @@ -574,7 +572,7 @@ public function test_feed_last_modified_should_be_the_date_of_a_comment_that_is_ // The Last-Modified header should have the comment's date when "withcomments=1" is passed. add_filter( 'wp_headers', - function( $headers ) use ( $yesterday ) { + function ( $headers ) use ( $yesterday ) { $this->assertSame( strtotime( $headers['Last-Modified'] ), strtotime( $yesterday ), @@ -617,7 +615,7 @@ public function test_feed_last_modified_should_be_the_date_of_a_post_that_is_the // The Last-Modified header should have the date from today's post when it is the latest update. add_filter( 'wp_headers', - function( $headers ) use ( $today ) { + function ( $headers ) use ( $today ) { $this->assertSame( strtotime( $headers['Last-Modified'] ), strtotime( $today ), diff --git a/tests/phpunit/tests/file.php b/tests/phpunit/tests/file.php index 5102faab51f16..c99f1baffdd55 100644 --- a/tests/phpunit/tests/file.php +++ b/tests/phpunit/tests/file.php @@ -251,7 +251,7 @@ public function test_wp_tempnam_should_limit_filename_length_to_252_characters_w // Create a conflict by removing the randomness of the generated password. add_filter( 'random_password', - static function() { + static function () { return '123456'; }, 10, @@ -285,7 +285,7 @@ public function test_wp_tempnam_should_limit_filename_length_to_252_characters_w // Force random passwords to 12 characters. add_filter( 'random_password', - static function() { + static function () { return '1a2b3c4d5e6f'; }, 10, @@ -321,7 +321,7 @@ public function test_wp_tempnam_should_limit_filename_length_to_252_characters_w // Make the filter send the filename over the limit. add_filter( 'wp_unique_filename', - static function( $filename ) use ( &$filenames_over_limit ) { + static function ( $filename ) use ( &$filenames_over_limit ) { if ( strlen( $filename ) === 252 ) { $filename .= '1'; ++$filenames_over_limit; @@ -357,7 +357,7 @@ public function test_wp_tempnam_should_limit_filename_length_to_252_characters_w // Force random passwords to 12 characters. add_filter( 'random_password', - static function() { + static function () { return '1a2b3c4d5e6f'; }, 10, @@ -375,7 +375,7 @@ static function() { // Make the filter send the filename over the limit. add_filter( 'wp_unique_filename', - static function( $filename ) use ( &$filenames_over_limit ) { + static function ( $filename ) use ( &$filenames_over_limit ) { if ( strlen( $filename ) === 252 ) { $filename .= '1'; ++$filenames_over_limit; diff --git a/tests/phpunit/tests/filesystem/base.php b/tests/phpunit/tests/filesystem/base.php index 52ab59e3cdf6e..ceefeafa3e5c7 100644 --- a/tests/phpunit/tests/filesystem/base.php +++ b/tests/phpunit/tests/filesystem/base.php @@ -24,7 +24,7 @@ public function filter_fs_method( $method ) { return 'MockFS'; } public function filter_abstraction_file( $file ) { - return dirname( dirname( __DIR__ ) ) . '/includes/mock-fs.php'; + return dirname( __DIR__, 2 ) . '/includes/mock-fs.php'; } public function test_is_MockFS_sane() { diff --git a/tests/phpunit/tests/filesystem/copyDir.php b/tests/phpunit/tests/filesystem/copyDir.php index 7b03ab88e98d5..914e2b867c2b8 100644 --- a/tests/phpunit/tests/filesystem/copyDir.php +++ b/tests/phpunit/tests/filesystem/copyDir.php @@ -79,5 +79,4 @@ public function test_should_create_destination_it_if_does_not_exist() { $this->assertDirectoryExists( $to . 'subfolder1/', 'The destination subfolder was not created.' ); $this->assertFileExists( $to . 'subfolder1/file2.txt', 'The destination subfolder file was not created.' ); } - } diff --git a/tests/phpunit/tests/filesystem/findFolder.php b/tests/phpunit/tests/filesystem/findFolder.php index 3db6107585787..59e9e8c605a74 100644 --- a/tests/phpunit/tests/filesystem/findFolder.php +++ b/tests/phpunit/tests/filesystem/findFolder.php @@ -24,7 +24,6 @@ public function test_ftp_has_root_access() { $path = $fs->find_folder( '/this/directory/doesnt/exist/' ); $this->assertFalse( $path ); - } public function test_sibling_wordpress_in_subdir() { @@ -48,7 +47,6 @@ public function test_sibling_wordpress_in_subdir() { $path = $fs->find_folder( '/var/www/wp.example.com/wordpress/wp-content/' ); $this->assertSame( '/www/wp.example.com/wordpress/wp-content/', $path ); - } /** @@ -76,7 +74,6 @@ public function test_subdir_of_another() { $path = $fs->abspath( '/var/www/example.com/' ); $this->assertSame( '/', $path ); - } /** @@ -113,5 +110,4 @@ public function test_multiple_tokens_in_path1() { $path = $fs->find_folder( '/var/www/example.com/sub/wp-content/plugins/' ); $this->assertSame( '/example.com/sub/wp-content/plugins/', $path ); } - } diff --git a/tests/phpunit/tests/filesystem/moveDir.php b/tests/phpunit/tests/filesystem/moveDir.php index 4cc013453d6c0..d2661fd48d10c 100644 --- a/tests/phpunit/tests/filesystem/moveDir.php +++ b/tests/phpunit/tests/filesystem/moveDir.php @@ -308,5 +308,4 @@ public function test_should_return_wp_error_when_overwriting_is_enabled_the_dest 'An unexpected error code was returned.' ); } - } diff --git a/tests/phpunit/tests/filters.php b/tests/phpunit/tests/filters.php index fed43735fc82c..04a5f9e915030 100644 --- a/tests/phpunit/tests/filters.php +++ b/tests/phpunit/tests/filters.php @@ -42,7 +42,6 @@ public function test_remove_filter() { $this->assertSame( $val, apply_filters( $hook_name, $val ) ); $this->assertSame( 1, $a->get_call_count() ); $this->assertSame( array( $hook_name ), $a->get_hook_names() ); - } public function test_has_filter() { @@ -174,7 +173,6 @@ public function test_did_filter() { // $hook_name1's count hasn't changed, $hook_name2 should be correct. $this->assertSame( 1, did_filter( $hook_name1 ) ); $this->assertSame( $count, did_filter( $hook_name2 ) ); - } public function test_all_filter() { @@ -198,7 +196,6 @@ public function test_all_filter() { remove_filter( 'all', array( $a, 'filterall' ) ); $this->assertFalse( has_filter( 'all', array( $a, 'filterall' ) ) ); - } public function test_remove_all_filter() { @@ -332,7 +329,6 @@ public function test_filter_ref_array_result() { // Just in case we don't trust assertSame(). $obj->foo = true; $this->assertNotEmpty( $args[0][1]->foo ); - } /** diff --git a/tests/phpunit/tests/fonts/font-face/base.php b/tests/phpunit/tests/fonts/font-face/base.php new file mode 100644 index 0000000000000..3b016557728a6 --- /dev/null +++ b/tests/phpunit/tests/fonts/font-face/base.php @@ -0,0 +1,122 @@ +orig_theme_dir = $GLOBALS['wp_theme_directories']; + + // /themes is necessary as theme.php functions assume /themes is the root if there is only one root. + $GLOBALS['wp_theme_directories'] = array( WP_CONTENT_DIR . '/themes', self::$theme_root ); + + // Set up the new root. + add_filter( 'theme_root', array( $this, 'filter_set_theme_root' ) ); + add_filter( 'stylesheet_root', array( $this, 'filter_set_theme_root' ) ); + add_filter( 'template_root', array( $this, 'filter_set_theme_root' ) ); + + // Clear caches. + wp_clean_themes_cache(); + unset( $GLOBALS['wp_themes'] ); + } + } + + public function tear_down() { + $this->property = array(); + + // Reset the error reporting when modified within a test. + if ( is_int( $this->error_reporting_level ) ) { + error_reporting( $this->error_reporting_level ); + $this->error_reporting_level = null; + } + + // Restore themes. + if ( self::$requires_switch_theme_fixtures ) { + $GLOBALS['wp_theme_directories'] = $this->orig_theme_dir; + remove_filter( 'theme_root', array( $this, 'filter_set_theme_root' ) ); + remove_filter( 'stylesheet_root', array( $this, 'filter_set_theme_root' ) ); + remove_filter( 'template_root', array( $this, 'filter_set_theme_root' ) ); + wp_clean_themes_cache(); + wp_clean_theme_json_cache(); + unset( $GLOBALS['wp_themes'] ); + } + + parent::tear_down(); + } + + public function filter_set_theme_root() { + return self::$theme_root; + } +} diff --git a/tests/phpunit/tests/fonts/font-face/wp-font-face-tests-dataset.php b/tests/phpunit/tests/fonts/font-face/wp-font-face-tests-dataset.php new file mode 100644 index 0000000000000..00ae66e865a89 --- /dev/null +++ b/tests/phpunit/tests/fonts/font-face/wp-font-face-tests-dataset.php @@ -0,0 +1,274 @@ + array( + 'fonts' => array( + 'Inter' => + array( + array( + 'src' => + array( + 'https://example.org/assets/fonts/inter/Inter-VariableFont_slnt,wght.ttf', + ), + 'font-family' => 'Inter', + 'font-stretch' => 'normal', + 'font-style' => 'normal', + 'font-weight' => '200', + ), + ), + ), + 'expected' => << array( + 'fonts' => array( + 'Inter' => + array( + array( + 'src' => + array( + 'https://example.org/assets/fonts/inter/Inter-VariableFont_slnt,wght.ttf', + ), + 'font-family' => 'Inter', + 'font-stretch' => 'normal', + 'font-style' => 'normal', + 'font-weight' => '200', + ), + array( + 'src' => + array( + 'https://example.org/assets/fonts/inter/Inter-VariableFont_slnt-Italic,wght.ttf', + ), + 'font-family' => 'Inter', + 'font-stretch' => 'normal', + 'font-style' => 'italic', + 'font-weight' => '900', + ), + ), + ), + 'expected' => << array( + 'fonts' => array( + 'DM Sans' => + array( + array( + 'src' => + array( + 'https://example.org/assets/fonts/dm-sans/DMSans-Regular.woff2', + ), + 'font-family' => 'DM Sans', + 'font-stretch' => 'normal', + 'font-style' => 'normal', + 'font-weight' => '400', + ), + ), + ), + 'expected' => << array( + 'fonts' => array( + 'DM Sans' => + array( + array( + 'src' => + array( + 'https://example.org/assets/fonts/dm-sans/DMSans-Regular.woff2', + ), + 'font-family' => 'DM Sans', + 'font-stretch' => 'normal', + 'font-style' => 'normal', + 'font-weight' => '400', + ), + array( + 'src' => + array( + 'https://example.org/assets/fonts/dm-sans/DMSans-Regular-Italic.woff2', + ), + 'font-family' => 'DM Sans', + 'font-stretch' => 'normal', + 'font-style' => 'italic', + 'font-weight' => '400', + ), + array( + 'src' => + array( + 'https://example.org/assets/fonts/dm-sans/DMSans-Bold.woff2', + ), + 'font-family' => 'DM Sans', + 'font-stretch' => 'normal', + 'font-style' => 'normal', + 'font-weight' => '700', + ), + array( + 'src' => + array( + 'https://example.org/assets/fonts/dm-sans/DMSans-Bold-Italic.woff2', + ), + 'font-family' => 'DM Sans', + 'font-stretch' => 'normal', + 'font-style' => 'italic', + 'font-weight' => '700', + ), + ), + 'IBM Plex Mono' => + array( + array( + 'src' => + array( + 'https://example.org/assets/fonts/ibm-plex-mono/IBMPlexMono-Light.woff2', + ), + 'font-family' => 'IBM Plex Mono', + 'font-display' => 'block', + 'font-stretch' => 'normal', + 'font-style' => 'normal', + 'font-weight' => '300', + ), + array( + 'src' => + array( + 'https://example.org/assets/fonts/ibm-plex-mono/IBMPlexMono-Regular.woff2', + ), + 'font-family' => 'IBM Plex Mono', + 'font-display' => 'block', + 'font-stretch' => 'normal', + 'font-style' => 'normal', + 'font-weight' => '400', + ), + array( + 'src' => + array( + 'https://example.org/assets/fonts/ibm-plex-mono/IBMPlexMono-Italic.woff2', + ), + 'font-family' => 'IBM Plex Mono', + 'font-display' => 'block', + 'font-stretch' => 'normal', + 'font-style' => 'italic', + 'font-weight' => '400', + ), + array( + 'src' => + array( + 'https://example.org/assets/fonts/ibm-plex-mono/IBMPlexMono-Bold.woff2', + ), + 'font-family' => 'IBM Plex Mono', + 'font-display' => 'block', + 'font-stretch' => 'normal', + 'font-style' => 'normal', + 'font-weight' => '700', + ), + ), + ), + 'expected' => << array( + 'DM Sans' => array( + array( + 'src' => array( $uri . 'dm-sans/DMSans-Regular.woff2' ), + 'font-family' => 'DM Sans', + 'font-stretch' => 'normal', + 'font-style' => 'normal', + 'font-weight' => '400', + ), + array( + 'src' => array( $uri . 'dm-sans/DMSans-Regular-Italic.woff2' ), + 'font-family' => 'DM Sans', + 'font-stretch' => 'normal', + 'font-style' => 'italic', + 'font-weight' => '400', + ), + array( + 'src' => array( $uri . 'dm-sans/DMSans-Bold.woff2' ), + 'font-family' => 'DM Sans', + 'font-stretch' => 'normal', + 'font-style' => 'normal', + 'font-weight' => '700', + ), + array( + 'src' => array( $uri . 'dm-sans/DMSans-Bold-Italic.woff2' ), + 'font-family' => 'DM Sans', + 'font-stretch' => 'normal', + 'font-style' => 'italic', + 'font-weight' => '700', + ), + ), + 'Source Serif Pro' => array( + array( + 'src' => array( $uri . 'source-serif-pro/SourceSerif4Variable-Roman.ttf.woff2' ), + 'font-family' => 'Source Serif Pro', + 'font-stretch' => 'normal', + 'font-style' => 'normal', + 'font-weight' => '200 900', + ), + array( + 'src' => array( $uri . 'source-serif-pro/SourceSerif4Variable-Italic.ttf.woff2' ), + 'font-family' => 'Source Serif Pro', + 'font-stretch' => 'normal', + 'font-style' => 'italic', + 'font-weight' => '200 900', + ), + ), + ), + 'font_face_styles' => <<expectOutputString( '' ); + $font_face->generate_and_print( $fonts ); + } + + /** + * @dataProvider data_should_print_given_fonts + * + * @param array $fonts Prepared fonts. + * @param string $expected Expected CSS. + */ + public function test_should_generate_and_print_given_fonts( array $fonts, $expected ) { + $font_face = new WP_Font_Face(); + $style_element = "\n"; + $expected_output = sprintf( $style_element, $expected ); + + $this->expectOutputString( $expected_output ); + $font_face->generate_and_print( $fonts ); + } +} diff --git a/tests/phpunit/tests/fonts/font-face/wpFontFaceResolver/getFontsFromThemeJson.php b/tests/phpunit/tests/fonts/font-face/wpFontFaceResolver/getFontsFromThemeJson.php new file mode 100644 index 0000000000000..54effbdcdc92a --- /dev/null +++ b/tests/phpunit/tests/fonts/font-face/wpFontFaceResolver/getFontsFromThemeJson.php @@ -0,0 +1,99 @@ +assertIsArray( $fonts, 'Should return an array data type' ); + $this->assertEmpty( $fonts, 'Should return an empty array' ); + } + + public function test_should_return_all_fonts_from_theme() { + switch_theme( static::FONTS_THEME ); + + $actual = WP_Font_Face_Resolver::get_fonts_from_theme_json(); + $expected = $this->get_expected_fonts_for_fonts_block_theme( 'fonts' ); + $this->assertSame( $expected, $actual ); + } + + /** + * @dataProvider data_should_replace_src_file_placeholder + * + * @param string $font_name Font's name. + * @param string $font_index Font's index in the $fonts array. + * @param string $expected Expected src. + */ + public function test_should_replace_src_file_placeholder( $font_name, $font_index, $expected ) { + switch_theme( static::FONTS_THEME ); + + $fonts = WP_Font_Face_Resolver::get_fonts_from_theme_json(); + + $actual = $fonts[ $font_name ][ $font_index ]['src'][0]; + $expected = get_stylesheet_directory_uri() . $expected; + + $this->assertStringNotContainsString( 'file:./', $actual, 'Font src should not contain the "file:./" placeholder' ); + $this->assertSame( $expected, $actual, 'Font src should be an URL to its file' ); + } + + /** + * Data provider. + * + * @return array + */ + public function data_should_replace_src_file_placeholder() { + return array( + // Theme's theme.json. + 'DM Sans: 400 normal' => array( + 'font_name' => 'DM Sans', + 'font_index' => 0, + 'expected' => '/assets/fonts/dm-sans/DMSans-Regular.woff2', + ), + 'DM Sans: 400 italic' => array( + 'font_name' => 'DM Sans', + 'font_index' => 1, + 'expected' => '/assets/fonts/dm-sans/DMSans-Regular-Italic.woff2', + ), + 'DM Sans: 700 normal' => array( + 'font_name' => 'DM Sans', + 'font_index' => 2, + 'expected' => '/assets/fonts/dm-sans/DMSans-Bold.woff2', + ), + 'DM Sans: 700 italic' => array( + 'font_name' => 'DM Sans', + 'font_index' => 3, + 'expected' => '/assets/fonts/dm-sans/DMSans-Bold-Italic.woff2', + ), + 'Source Serif Pro: 200-900 normal' => array( + 'font_name' => 'Source Serif Pro', + 'font_index' => 0, + 'expected' => '/assets/fonts/source-serif-pro/SourceSerif4Variable-Roman.ttf.woff2', + ), + 'Source Serif Pro: 200-900 italic' => array( + 'font_name' => 'Source Serif Pro', + 'font_index' => 1, + 'expected' => '/assets/fonts/source-serif-pro/SourceSerif4Variable-Italic.ttf.woff2', + ), + ); + } +} diff --git a/tests/phpunit/tests/fonts/font-face/wpPrintFontFaces.php b/tests/phpunit/tests/fonts/font-face/wpPrintFontFaces.php new file mode 100644 index 0000000000000..9cc67fb39a6bb --- /dev/null +++ b/tests/phpunit/tests/fonts/font-face/wpPrintFontFaces.php @@ -0,0 +1,82 @@ +expectOutputString( '' ); + wp_print_font_faces(); + } + + /** + * @dataProvider data_should_print_given_fonts + * + * @param array $fonts Fonts to process. + * @param string $expected Expected CSS. + */ + public function test_should_print_given_fonts( array $fonts, $expected ) { + $expected_output = $this->get_expected_styles_output( $expected ); + + $this->expectOutputString( $expected_output ); + wp_print_font_faces( $fonts ); + } + + public function test_should_escape_tags() { + $fonts = array( + 'Source Serif Pro' => array( + array( + 'src' => array( 'http://example.com/assets/source-serif-pro/SourceSerif4Variable-Roman.ttf.woff2' ), + 'font-family' => 'Source Serif Pro', + 'font-style' => 'normal', + 'font-weight' => '200 900', + 'font-stretch' => ' + +CSS; + $this->expectOutputString( $expected_output ); + + wp_print_font_faces( $fonts ); + } + + public function test_should_print_fonts_in_merged_data() { + switch_theme( static::FONTS_THEME ); + + $expected = $this->get_expected_fonts_for_fonts_block_theme( 'font_face_styles' ); + $expected_output = $this->get_expected_styles_output( $expected ); + + $this->expectOutputString( $expected_output ); + wp_print_font_faces(); + } + + private function get_expected_styles_output( $styles ) { + $style_element = "\n"; + return sprintf( $style_element, $styles ); + } +} diff --git a/tests/phpunit/tests/formatting/ent2ncr.php b/tests/phpunit/tests/formatting/ent2ncr.php index ea5e2885bfb74..db60ba97ffa45 100644 --- a/tests/phpunit/tests/formatting/ent2ncr.php +++ b/tests/phpunit/tests/formatting/ent2ncr.php @@ -36,4 +36,3 @@ public function data_entities() { return $data_provided; } } - diff --git a/tests/phpunit/tests/formatting/escUrl.php b/tests/phpunit/tests/formatting/escUrl.php index dd37c9ec8d1f2..f23b5269e5b98 100644 --- a/tests/phpunit/tests/formatting/escUrl.php +++ b/tests/phpunit/tests/formatting/escUrl.php @@ -151,7 +151,6 @@ public function test_protocol() { ) ) ); - } /** @@ -276,5 +275,4 @@ public function test_ipv6_hosts() { $this->assertSame( '//[::FFFF::127.0.0.1]/?foo%5Bbar%5D=baz', esc_url( '//[::FFFF::127.0.0.1]/?foo[bar]=baz' ) ); $this->assertSame( 'http://[::FFFF::127.0.0.1]/?foo%5Bbar%5D=baz', esc_url( 'http://[::FFFF::127.0.0.1]/?foo[bar]=baz' ) ); } - } diff --git a/tests/phpunit/tests/formatting/makeClickable.php b/tests/phpunit/tests/formatting/makeClickable.php index 0c6236c8592ca..8620f1efcb15e 100644 --- a/tests/phpunit/tests/formatting/makeClickable.php +++ b/tests/phpunit/tests/formatting/makeClickable.php @@ -11,369 +11,420 @@ public function test_mailto_xss() { $this->assertSame( $in, make_clickable( $in ) ); } - public function test_valid_mailto() { - $valid_emails = array( - 'foo@example.com', - 'foo.bar@example.com', - 'Foo.Bar@a.b.c.d.example.com', - '0@example.com', - 'foo@example-example.com', - ); - foreach ( $valid_emails as $email ) { - $this->assertSame( '' . $email . '', make_clickable( $email ) ); - } - } - - public function test_invalid_mailto() { - $invalid_emails = array( - 'foo', - 'foo@', - 'foo@@example.com', - '@example.com', - 'foo @example.com', - 'foo@example', - ); - foreach ( $invalid_emails as $email ) { - $this->assertSame( $email, make_clickable( $email ) ); - } - } - /** - * Tests that make_clickable() will not link trailing periods, commas, - * and (semi-)colons in URLs with protocol (i.e. http://wordpress.org). + * @dataProvider data_valid_mailto + * + * @param string $email Email to test. */ - public function test_strip_trailing_with_protocol() { - $urls_before = array( - 'http://wordpress.org/hello.html', - 'There was a spoon named http://wordpress.org. Alice!', - 'There was a spoon named http://wordpress.org, said Alice.', - 'There was a spoon named http://wordpress.org; said Alice.', - 'There was a spoon named http://wordpress.org: said Alice.', - 'There was a spoon named (http://wordpress.org) said Alice.', - ); - $urls_expected = array( - 'http://wordpress.org/hello.html', - 'There was a spoon named http://wordpress.org. Alice!', - 'There was a spoon named http://wordpress.org, said Alice.', - 'There was a spoon named http://wordpress.org; said Alice.', - 'There was a spoon named http://wordpress.org: said Alice.', - 'There was a spoon named (http://wordpress.org) said Alice.', - ); - - foreach ( $urls_before as $key => $url ) { - $this->assertSame( $urls_expected[ $key ], make_clickable( $url ) ); - } + public function test_valid_mailto( $email ) { + $this->assertSame( '' . $email . '', make_clickable( $email ) ); } /** - * Tests that make_clickable() will not link trailing periods, commas, - * and (semi-)colons in URLs with protocol (i.e. http://wordpress.org). + * Data provider. + * + * @return array */ - public function test_strip_trailing_with_protocol_nothing_afterwards() { - $urls_before = array( - 'http://wordpress.org/hello.html', - 'There was a spoon named http://wordpress.org.', - 'There was a spoon named http://wordpress.org,', - 'There was a spoon named http://wordpress.org;', - 'There was a spoon named http://wordpress.org:', - 'There was a spoon named (http://wordpress.org)', - 'There was a spoon named (http://wordpress.org)x', - ); - $urls_expected = array( - 'http://wordpress.org/hello.html', - 'There was a spoon named http://wordpress.org.', - 'There was a spoon named http://wordpress.org,', - 'There was a spoon named http://wordpress.org;', - 'There was a spoon named http://wordpress.org:', - 'There was a spoon named (http://wordpress.org)', - 'There was a spoon named (http://wordpress.org)x', + public function data_valid_mailto() { + return array( + array( 'foo@example.com' ), + array( 'foo.bar@example.com' ), + array( 'Foo.Bar@a.b.c.d.example.com' ), + array( '0@example.com' ), + array( 'foo@example-example.com' ), ); - - foreach ( $urls_before as $key => $url ) { - $this->assertSame( $urls_expected[ $key ], make_clickable( $url ) ); - } } /** - * Tests that make_clickable() will not link trailing periods, commas, - * and (semi-)colons in URLs without protocol (i.e. www.wordpress.org). + * @dataProvider data_invalid_mailto + * + * @param string $email Email to test. */ - public function test_strip_trailing_without_protocol() { - $urls_before = array( - 'www.wordpress.org', - 'There was a spoon named www.wordpress.org. Alice!', - 'There was a spoon named www.wordpress.org, said Alice.', - 'There was a spoon named www.wordpress.org; said Alice.', - 'There was a spoon named www.wordpress.org: said Alice.', - 'There was a spoon named www.wordpress.org) said Alice.', - ); - $urls_expected = array( - 'http://www.wordpress.org', - 'There was a spoon named http://www.wordpress.org. Alice!', - 'There was a spoon named http://www.wordpress.org, said Alice.', - 'There was a spoon named http://www.wordpress.org; said Alice.', - 'There was a spoon named http://www.wordpress.org: said Alice.', - 'There was a spoon named http://www.wordpress.org) said Alice.', - ); - - foreach ( $urls_before as $key => $url ) { - $this->assertSame( $urls_expected[ $key ], make_clickable( $url ) ); - } + public function test_invalid_mailto( $email ) { + $this->assertSame( $email, make_clickable( $email ) ); } /** - * Tests that make_clickable() will not link trailing periods, commas, - * and (semi-)colons in URLs without protocol (i.e. www.wordpress.org). + * Data provider. + * + * @return array */ - public function test_strip_trailing_without_protocol_nothing_afterwards() { - $urls_before = array( - 'www.wordpress.org', - 'There was a spoon named www.wordpress.org.', - 'There was a spoon named www.wordpress.org,', - 'There was a spoon named www.wordpress.org;', - 'There was a spoon named www.wordpress.org:', - 'There was a spoon named www.wordpress.org)', - ); - $urls_expected = array( - 'http://www.wordpress.org', - 'There was a spoon named http://www.wordpress.org.', - 'There was a spoon named http://www.wordpress.org,', - 'There was a spoon named http://www.wordpress.org;', - 'There was a spoon named http://www.wordpress.org:', - 'There was a spoon named http://www.wordpress.org)', + public function data_invalid_mailto() { + return array( + array( 'foo' ), + array( 'foo@' ), + array( 'foo@@example.com' ), + array( '@example.com' ), + array( 'foo @example.com' ), + array( 'foo@example' ), ); - - foreach ( $urls_before as $key => $url ) { - $this->assertSame( $urls_expected[ $key ], make_clickable( $url ) ); - } } /** * @ticket 4570 - */ - public function test_iri() { - $urls_before = array( - 'http://www.詹姆斯.com/', - 'http://bg.wikipedia.org/Баба', - 'http://example.com/?a=баба&b=дядо', - ); - $urls_expected = array( - 'http://www.詹姆斯.com/', - 'http://bg.wikipedia.org/Баба', - 'http://example.com/?a=баба&b=дядо', - ); - foreach ( $urls_before as $key => $url ) { - $this->assertSame( $urls_expected[ $key ], make_clickable( $url ) ); - } - } - - /** * @ticket 10990 + * @ticket 11211 + * @ticket 14993 + * @ticket 16892 + * + * @dataProvider data_urls + * + * @param string $text Content to test. + * @param string $expected Expected results. */ - public function test_brackets_in_urls() { - $urls_before = array( - 'http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software)', - '(http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software))', - 'blah http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software) blah', - 'blah (http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software)) blah', - 'blah blah blah http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software) blah blah', - 'blah blah blah http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software)) blah blah', - 'blah blah (http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software)) blah blah', - 'blah blah http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software).) blah blah', - 'blah blah http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software).)moreurl blah blah', - 'In his famous speech “You and Your research” (here: - http://www.cs.virginia.edu/~robins/YouAndYourResearch.html) - Richard Hamming wrote about people getting more done with their doors closed, but', - ); - $urls_expected = array( - 'http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software)', - '(http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software))', - 'blah http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software) blah', - 'blah (http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software)) blah', - 'blah blah blah http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software) blah blah', - 'blah blah blah http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software)) blah blah', - 'blah blah (http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software)) blah blah', - 'blah blah http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software).) blah blah', - 'blah blah http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software).)moreurl blah blah', - 'In his famous speech “You and Your research” (here: - http://www.cs.virginia.edu/~robins/YouAndYourResearch.html) - Richard Hamming wrote about people getting more done with their doors closed, but', - ); - foreach ( $urls_before as $key => $url ) { - $this->assertSame( $urls_expected[ $key ], make_clickable( $url ) ); - } + public function test_urls( $text, $expected ) { + $this->assertSame( $expected, make_clickable( $text ) ); } /** - * Based on real comments which were incorrectly linked. + * Data provider. * - * @ticket 11211 + * @return array */ - public function test_real_world_examples() { - $urls_before = array( - 'Example: WordPress, test (some text), I love example.com (http://example.org), it is brilliant', - 'Example: WordPress, test (some text), I love example.com (http://example.com), it is brilliant', - 'Some text followed by a bracketed link with a trailing elipsis (http://example.com)...', - 'In his famous speech “You and Your research” (here: http://www.cs.virginia.edu/~robins/YouAndYourResearch.html) Richard Hamming wrote about people getting more done with their doors closed...', - ); - $urls_expected = array( - 'Example: WordPress, test (some text), I love example.com (http://example.org), it is brilliant', - 'Example: WordPress, test (some text), I love example.com (http://example.com), it is brilliant', - 'Some text followed by a bracketed link with a trailing elipsis (http://example.com)...', - 'In his famous speech “You and Your research” (here: http://www.cs.virginia.edu/~robins/YouAndYourResearch.html) Richard Hamming wrote about people getting more done with their doors closed...', - ); - foreach ( $urls_before as $key => $url ) { - $this->assertSame( $urls_expected[ $key ], make_clickable( $url ) ); - } - } + public function data_urls() { + return array( + // Does not link trailing periods, commas, and (semi-)colons in URLs with protocol (i.e. http://wordpress.org). + 'URL only' => array( + 'text' => 'http://wordpress.org/hello.html', + 'expected' => 'http://wordpress.org/hello.html', + ), + 'URL. with more content after' => array( + 'text' => 'There was a spoon named http://wordpress.org. Alice!', + 'expected' => 'There was a spoon named http://wordpress.org. Alice!', + ), + 'URL, with more content after' => array( + 'text' => 'There was a spoon named http://wordpress.org, said Alice.', + 'expected' => 'There was a spoon named http://wordpress.org, said Alice.', + ), + 'URL; with more content after' => array( + 'text' => 'There was a spoon named http://wordpress.org; said Alice.', + 'expected' => 'There was a spoon named http://wordpress.org; said Alice.', + ), + 'URL: with more content after' => array( + 'text' => 'There was a spoon named http://wordpress.org: said Alice.', + 'expected' => 'There was a spoon named http://wordpress.org: said Alice.', + ), + 'URL) with more content after' => array( + 'text' => 'There was a spoon named (http://wordpress.org) said Alice.', + 'expected' => 'There was a spoon named (http://wordpress.org) said Alice.', + ), - /** - * @ticket 14993 - */ - public function test_twitter_hash_bang() { - $urls_before = array( - 'http://twitter.com/#!/wordpress/status/25907440233', - 'This is a really good tweet http://twitter.com/#!/wordpress/status/25907440233 !', - 'This is a really good tweet http://twitter.com/#!/wordpress/status/25907440233!', - ); - $urls_expected = array( - 'http://twitter.com/#!/wordpress/status/25907440233', - 'This is a really good tweet http://twitter.com/#!/wordpress/status/25907440233 !', - 'This is a really good tweet http://twitter.com/#!/wordpress/status/25907440233!', - ); - foreach ( $urls_before as $key => $url ) { - $this->assertSame( $urls_expected[ $key ], make_clickable( $url ) ); - } - } + // Does not link trailing periods, commas, and (semi-)colons in URLs with protocol (i.e. http://wordpress.org) with nothing afterwards. + 'URL.' => array( + 'text' => 'There was a spoon named http://wordpress.org.', + 'expected' => 'There was a spoon named http://wordpress.org.', + ), + 'URL,' => array( + 'text' => 'There was a spoon named http://wordpress.org,', + 'expected' => 'There was a spoon named http://wordpress.org,', + ), + 'URL;' => array( + 'text' => 'There was a spoon named http://wordpress.org;', + 'expected' => 'There was a spoon named http://wordpress.org;', + ), + 'URL:' => array( + 'text' => 'There was a spoon named http://wordpress.org:', + 'expected' => 'There was a spoon named http://wordpress.org:', + ), + 'URL)' => array( + 'text' => 'There was a spoon named (http://wordpress.org)', + 'expected' => 'There was a spoon named (http://wordpress.org)', + ), + 'URL)x' => array( + 'text' => 'There was a spoon named (http://wordpress.org)x', + 'expected' => 'There was a spoon named (http://wordpress.org)x', + ), - public function test_wrapped_in_angles() { - $before = array( - 'URL wrapped in angle brackets ', - 'URL wrapped in angle brackets with padding < http://example.com/ >', - 'mailto wrapped in angle brackets ', - ); - $expected = array( - 'URL wrapped in angle brackets <http://example.com/>', - 'URL wrapped in angle brackets with padding < http://example.com/ >', - 'mailto wrapped in angle brackets ', - ); - foreach ( $before as $key => $url ) { - $this->assertSame( $expected[ $key ], make_clickable( $url ) ); - } - } + // Strip trailing without protocol: will not link trailing periods, commas, and (semi-)colons in URLs without protocol (i.e. www.wordpress.org). + 'No protocol www.URL. with content after' => array( + 'text' => 'There was a spoon named www.wordpress.org. Alice!', + 'expected' => 'There was a spoon named http://www.wordpress.org. Alice!', + ), + 'No protocol www.URL, with content after' => array( + 'text' => 'There was a spoon named www.wordpress.org, said Alice.', + 'expected' => 'There was a spoon named http://www.wordpress.org, said Alice.', + ), + 'No protocol www.URL; with content after' => array( + 'text' => 'There was a spoon named www.wordpress.org; said Alice.', + 'expected' => 'There was a spoon named http://www.wordpress.org; said Alice.', + ), + 'No protocol www.URL: with content after' => array( + 'text' => 'There was a spoon named www.wordpress.org: said Alice.', + 'expected' => 'There was a spoon named http://www.wordpress.org: said Alice.', + ), + 'No protocol www.URL) with content after' => array( + 'text' => 'There was a spoon named www.wordpress.org) said Alice.', + 'expected' => 'There was a spoon named http://www.wordpress.org) said Alice.', + ), - public function test_preceded_by_punctuation() { - $before = array( - 'Comma then URL,http://example.com/', - 'Period then URL.http://example.com/', - 'Semi-colon then URL;http://example.com/', - 'Colon then URL:http://example.com/', - 'Exclamation mark then URL!http://example.com/', - 'Question mark then URL?http://example.com/', - ); - $expected = array( - 'Comma then URL,http://example.com/', - 'Period then URL.http://example.com/', - 'Semi-colon then URL;http://example.com/', - 'Colon then URL:http://example.com/', - 'Exclamation mark then URL!http://example.com/', - 'Question mark then URL?http://example.com/', - ); - foreach ( $before as $key => $url ) { - $this->assertSame( $expected[ $key ], make_clickable( $url ) ); - } - } + // Should not link trailing periods, commas, and (semi-)colons in URLs without protocol (i.e. www.wordpress.org). + 'No protocol www.URL' => array( + 'text' => 'www.wordpress.org', + 'expected' => 'http://www.wordpress.org', + ), + 'No protocol www.URL.' => array( + 'text' => 'There was a spoon named www.wordpress.org.', + 'expected' => 'There was a spoon named http://www.wordpress.org.', + ), + 'No protocol www.URL,' => array( + 'text' => 'There was a spoon named www.wordpress.org,', + 'expected' => 'There was a spoon named http://www.wordpress.org,', + ), + 'No protocol www.URL;' => array( + 'text' => 'There was a spoon named www.wordpress.org;', + 'expected' => 'There was a spoon named http://www.wordpress.org;', + ), + 'No protocol www.URL:' => array( + 'text' => 'There was a spoon named www.wordpress.org:', + 'expected' => 'There was a spoon named http://www.wordpress.org:', + ), + 'No protocol www.URL)' => array( + 'text' => 'There was a spoon named www.wordpress.org)', + 'expected' => 'There was a spoon named http://www.wordpress.org)', + ), - public function test_dont_break_attributes() { - $urls_before = array( - ":)", - "(:))", - "http://trunk.domain/testing#something (:))", - "http://trunk.domain/testing#something - (:))", - " ", - 'Look at this image!', - ); - $urls_expected = array( - ":)", - "(:))", - "http://trunk.domain/testing#something (:))", - "http://trunk.domain/testing#something - (:))", - " ", - 'Look at this image!', - ); - foreach ( $urls_before as $key => $url ) { - $this->assertSame( $urls_expected[ $key ], make_clickable( $url ) ); - } - } + // @ticket 4570 + // Test IRI. + 'IRI in domain' => array( + 'text' => 'http://www.詹姆斯.com/', + 'expected' => 'http://www.詹姆斯.com/', + ), + 'IRI in path' => array( + 'text' => 'http://bg.wikipedia.org/Баба', + 'expected' => 'http://bg.wikipedia.org/Баба', + ), + 'IRI in query string' => array( + 'text' => 'http://example.com/?a=баба&b=дядо', + 'expected' => 'http://example.com/?a=баба&b=дядо', + ), - /** - * @ticket 23756 - */ - public function test_no_links_inside_pre_or_code() { - $before = array( - '
http://wordpress.org
', - 'http://wordpress.org', - '
http://wordpress.org
', - 'http://wordpress.org', - 'http://wordpress.org', - 'http://wordpress.org', - 'URL before pre http://wordpress.org
http://wordpress.org
', - 'URL before code http://wordpress.orghttp://wordpress.org', - 'URL after pre
http://wordpress.org
http://wordpress.org', - 'URL after code http://wordpress.orghttp://wordpress.org', - 'URL before and after pre http://wordpress.org
http://wordpress.org
http://wordpress.org', - 'URL before and after code http://wordpress.orghttp://wordpress.orghttp://wordpress.org', - 'code inside pre
http://wordpress.org http://wordpress.org http://wordpress.org
', - ); + // @ticket 10990 + // Test URLS with brackets (within the URL). + 'URL with brackets in path' => array( + 'text' => 'http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software)', + 'expected' => 'http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software)', + ), + '(URL with brackets in path)' => array( + 'text' => '(http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software))', + 'expected' => '(http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software))', + ), + 'URL with brackets in path: word before and after' => array( + 'text' => 'blah http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software) blah', + 'expected' => 'blah http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software) blah', + ), + 'URL with brackets in path: trailing ) blah' => array( + 'text' => 'blah (http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software)) blah', + 'expected' => 'blah (http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software)) blah', + ), + 'URL with brackets in path: within content' => array( + 'text' => 'blah blah blah http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software) blah blah', + 'expected' => 'blah blah blah http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software) blah blah', + ), + 'URL with brackets in path: trailing ) within content' => array( + 'text' => 'blah blah blah http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software)) blah blah', + 'expected' => 'blah blah blah http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software)) blah blah', + ), + '(URL with brackets in path) within content' => array( + 'text' => 'blah blah (http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software)) blah blah', + 'expected' => 'blah blah (http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software)) blah blah', + ), + 'URL with brackets in path: trailing .)' => array( + 'text' => 'blah blah http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software).) blah blah', + 'expected' => 'blah blah http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software).) blah blah', + ), + 'URL with brackets in path: trailing .)moreurl' => array( + 'text' => 'blah blah http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software).)moreurl blah blah', + 'expected' => 'blah blah http://en.wikipedia.org/wiki/PC_Tools_(Central_Point_Software).)moreurl blah blah', + ), + 'multiline content with URL with brackets in path' => array( + 'text' => 'In his famous speech “You and Your research” (here: + http://www.cs.virginia.edu/~robins/YouAndYourResearch.html) + Richard Hamming wrote about people getting more done with their doors closed, but', + 'expected' => 'In his famous speech “You and Your research” (here: + http://www.cs.virginia.edu/~robins/YouAndYourResearch.html) + Richard Hamming wrote about people getting more done with their doors closed, but', + ), - $expected = array( - '
http://wordpress.org
', - 'http://wordpress.org', - '
http://wordpress.org
', - 'http://wordpress.org', - 'http://wordpress.org', - 'http://wordpress.org', - 'URL before pre http://wordpress.org
http://wordpress.org
', - 'URL before code http://wordpress.orghttp://wordpress.org', - 'URL after pre
http://wordpress.org
http://wordpress.org', - 'URL after code http://wordpress.orghttp://wordpress.org', - 'URL before and after pre http://wordpress.org
http://wordpress.org
http://wordpress.org', - 'URL before and after code http://wordpress.orghttp://wordpress.orghttp://wordpress.org', - 'code inside pre
http://wordpress.org http://wordpress.org http://wordpress.org
', - ); + // @ticket 11211 + // Test with real comments which were incorrectly linked. + 'real world: example.com text (.org URL)' => array( + 'text' => 'Example: WordPress, test (some text), I love example.com (http://example.org), it is brilliant', + 'expected' => 'Example: WordPress, test (some text), I love example.com (http://example.org), it is brilliant', + ), + 'real world: example.com text (.com URL)' => array( + 'text' => 'Example: WordPress, test (some text), I love example.com (http://example.com), it is brilliant', + 'expected' => 'Example: WordPress, test (some text), I love example.com (http://example.com), it is brilliant', + ), + 'real world: (URL)...' => array( + 'text' => 'Some text followed by a bracketed link with a trailing elipsis (http://example.com)...', + 'expected' => 'Some text followed by a bracketed link with a trailing elipsis (http://example.com)...', + ), + 'real world: (here: URL)' => array( + 'text' => 'In his famous speech “You and Your research” (here: http://www.cs.virginia.edu/~robins/YouAndYourResearch.html) Richard Hamming wrote about people getting more done with their doors closed...', + 'expected' => 'In his famous speech “You and Your research” (here: http://www.cs.virginia.edu/~robins/YouAndYourResearch.html) Richard Hamming wrote about people getting more done with their doors closed...', + ), - foreach ( $before as $key => $url ) { - $this->assertSame( $expected[ $key ], make_clickable( $url ) ); - } - } + // @ticket 14993 + // Test Twitter hash bang URL. + 'Twitter hash bang URL' => array( + 'text' => 'http://twitter.com/#!/wordpress/status/25907440233', + 'expected' => 'http://twitter.com/#!/wordpress/status/25907440233', + ), + 'Twitter hash bang URL in sentence' => array( + 'text' => 'This is a really good tweet http://twitter.com/#!/wordpress/status/25907440233 !', + 'expected' => 'This is a really good tweet http://twitter.com/#!/wordpress/status/25907440233 !', + ), + 'Twitter hash bang in sentence with trailing !' => array( + 'text' => 'This is a really good tweet http://twitter.com/#!/wordpress/status/25907440233!', + 'expected' => 'This is a really good tweet http://twitter.com/#!/wordpress/status/25907440233!', + ), - /** - * @ticket 16892 - */ - public function test_click_inside_html() { - $urls_before = array( - 'http://example.com', - '

http://example.com/

', - ); - $urls_expected = array( - 'http://example.com', - '

http://example.com/

', - ); - foreach ( $urls_before as $key => $url ) { - $this->assertSame( $urls_expected[ $key ], make_clickable( $url ) ); - } - } + // Test URLs wrapped in angled brackets, i.e. < >. + '' => array( + 'text' => 'URL wrapped in angle brackets ', + 'expected' => 'URL wrapped in angle brackets <http://example.com/>', + ), + '< URL >' => array( + 'text' => 'URL wrapped in angle brackets with padding < http://example.com/ >', + 'expected' => 'URL wrapped in angle brackets with padding < http://example.com/ >', + ), + '' => array( + 'text' => 'mailto wrapped in angle brackets ', + 'expected' => 'mailto wrapped in angle brackets ', + ), + + // Test URLs preceded by punctuation. + ',URL' => array( + 'text' => 'Comma then URL,http://example.com/', + 'expected' => 'Comma then URL,http://example.com/', + ), + '.URL' => array( + 'text' => 'Period then URL.http://example.com/', + 'expected' => 'Period then URL.http://example.com/', + ), + ';URL' => array( + 'text' => 'Semi-colon then URL;http://example.com/', + 'expected' => 'Semi-colon then URL;http://example.com/', + ), + ':URL' => array( + 'text' => 'Colon then URL:http://example.com/', + 'expected' => 'Colon then URL:http://example.com/', + ), + '!URL' => array( + 'text' => 'Exclamation mark then URL!http://example.com/', + 'expected' => 'Exclamation mark then URL!http://example.com/', + ), + '?URL' => array( + 'text' => 'Question mark then URL?http://example.com/', + 'expected' => 'Question mark then URL?http://example.com/', + ), + + // Test it doesn't break tag attributes. + '' => array( + 'text' => ":)", + 'expected' => ":)", + ), + '()' => array( + 'text' => "(:))", + 'expected' => "(:))", + ), + 'URL ()' => array( + 'text' => "http://trunk.domain/testing#something (:))", + 'expected' => "http://trunk.domain/testing#something (:))", + ), + 'multiline URL ()' => array( + 'text' => "http://trunk.domain/testing#something + (:))", + 'expected' => "http://trunk.domain/testing#something + (:))", + ), + '' => array( + 'text' => " ", + 'expected' => " ", + ), + '' => array( + 'text' => 'Look at this image!', + 'expected' => 'Look at this image!', + ), + + // Test doesn't add links within
 or  elements.
+			'Does not add link within 
'             => array(
+				'text'     => '
http://wordpress.org
', + 'expected' => '
http://wordpress.org
', + ), + 'Does not add link within ' => array( + 'text' => 'http://wordpress.org', + 'expected' => 'http://wordpress.org', + ), + 'Does not add link within
' => array(
+				'text'     => '
http://wordpress.org
', + 'expected' => '
http://wordpress.org
', + ), + 'Does not add link within ' => array( + 'text' => 'http://wordpress.org', + 'expected' => 'http://wordpress.org', + ), + 'Adds link within ' => array( + 'text' => 'http://wordpress.org', + 'expected' => 'http://wordpress.org', + ), + 'Adds link within ' => array( + 'text' => 'http://wordpress.org', + 'expected' => 'http://wordpress.org', + ), + 'Adds link to URL before
, but does not add link within 
' => array(
+				'text'     => 'URL before pre http://wordpress.org
http://wordpress.org
', + 'expected' => 'URL before pre http://wordpress.org
http://wordpress.org
', + ), + 'Adds link to URL before , but does not add link within ' => array( + 'text' => 'URL before code http://wordpress.orghttp://wordpress.org', + 'expected' => 'URL before code http://wordpress.orghttp://wordpress.org', + ), + 'Does not add link to
, but does add link to URL after 
' => array(
+				'text'     => 'URL after pre 
http://wordpress.org
http://wordpress.org', + 'expected' => 'URL after pre
http://wordpress.org
http://wordpress.org', + ), + 'Does not add link within , but does add link to URL after ' => array( + 'text' => 'URL after code http://wordpress.orghttp://wordpress.org', + 'expected' => 'URL after code http://wordpress.orghttp://wordpress.org', + ), + 'Adds link to before and after URLs, but does not add link within
' => array(
+				'text'     => 'URL before and after pre http://wordpress.org
http://wordpress.org
http://wordpress.org', + 'expected' => 'URL before and after pre http://wordpress.org
http://wordpress.org
http://wordpress.org', + ), + 'Adds link to before and after URLs, but does not add link within ' => array( + 'text' => 'URL before and after code http://wordpress.orghttp://wordpress.orghttp://wordpress.org', + 'expected' => 'URL before and after code http://wordpress.orghttp://wordpress.orghttp://wordpress.org', + ), + 'Does not add links within nested
URL URL 
' => array( + 'text' => 'code inside pre
http://wordpress.org http://wordpress.org http://wordpress.org
', + 'expected' => 'code inside pre
http://wordpress.org http://wordpress.org http://wordpress.org
', + ), - public function test_no_links_within_links() { - $in = array( - 'Some text with a link http://example.com', - // 'This is already a link www.wordpress.org', // Fails in 3.3.1 too. + // @ticket 16892 + // Test adds link inside of HTML elements. + 'URL' => array( + 'text' => 'http://example.com', + 'expected' => 'http://example.com', + ), + '

URL

' => array( + 'text' => '

http://example.com/

', + 'expected' => '

http://example.com/

', + ), + + // Test does not add links within the element. + 'URL' => array( + 'text' => 'Some text with a link http://example.com', + 'expected' => 'Some text with a link http://example.com', + ), + /* + Fails in 3.3.1 too. + 'text www.URL' => array( + 'text' => 'This is already a link www.wordpress.org', + 'expected' => 'This is already a link www.wordpress.org', + ), + */ ); - foreach ( $in as $text ) { - $this->assertSame( $text, make_clickable( $text ) ); - } } /** @@ -467,5 +518,4 @@ public function data_add_rel_ugc_in_comments() { ), ); } - } diff --git a/tests/phpunit/tests/formatting/mapDeep.php b/tests/phpunit/tests/formatting/mapDeep.php index 0b60ae99bff11..0d46ea852377f 100644 --- a/tests/phpunit/tests/formatting/mapDeep.php +++ b/tests/phpunit/tests/formatting/mapDeep.php @@ -171,5 +171,4 @@ public function test_map_deep_should_map_array_elements_passed_by_reference() { public function append_baba( $value ) { return $value . 'baba'; } - } diff --git a/tests/phpunit/tests/formatting/sanitizeTextField.php b/tests/phpunit/tests/formatting/sanitizeTextField.php index 2d184ebb1373f..d7a58486d1ba5 100644 --- a/tests/phpunit/tests/formatting/sanitizeTextField.php +++ b/tests/phpunit/tests/formatting/sanitizeTextField.php @@ -22,7 +22,6 @@ public function test_sanitize_text_field( $str, $expected ) { } $this->assertSame( $expected_oneline, sanitize_text_field( $str ) ); $this->assertSameIgnoreEOL( $expected_multiline, sanitize_textarea_field( $str ) ); - } public function data_sanitize_text_field() { diff --git a/tests/phpunit/tests/formatting/seemsUtf8.php b/tests/phpunit/tests/formatting/seemsUtf8.php index b6a67950e9870..97ec6ff0c9cd3 100644 --- a/tests/phpunit/tests/formatting/seemsUtf8.php +++ b/tests/phpunit/tests/formatting/seemsUtf8.php @@ -43,4 +43,3 @@ public function data_seems_utf8_returns_false_for_non_utf8_strings() { return $big5_strings; } } - diff --git a/tests/phpunit/tests/formatting/urlencodeDeep.php b/tests/phpunit/tests/formatting/urlencodeDeep.php index 632f4083c09bf..9436ba09afc16 100644 --- a/tests/phpunit/tests/formatting/urlencodeDeep.php +++ b/tests/phpunit/tests/formatting/urlencodeDeep.php @@ -44,5 +44,4 @@ public function test_urlencode_deep_should_encode_all_values_in_array() { $this->assertSame( $expected, urlencode_deep( $actual ) ); } - } diff --git a/tests/phpunit/tests/formatting/utf8UriEncode.php b/tests/phpunit/tests/formatting/utf8UriEncode.php index e82e973e2944b..45d370d1da6e5 100644 --- a/tests/phpunit/tests/formatting/utf8UriEncode.php +++ b/tests/phpunit/tests/formatting/utf8UriEncode.php @@ -35,4 +35,3 @@ public function data() { return $data_provided; } } - diff --git a/tests/phpunit/tests/formatting/wpMakeLinkRelative.php b/tests/phpunit/tests/formatting/wpMakeLinkRelative.php index 0b293c9c89747..4c21381a420de 100644 --- a/tests/phpunit/tests/formatting/wpMakeLinkRelative.php +++ b/tests/phpunit/tests/formatting/wpMakeLinkRelative.php @@ -45,5 +45,4 @@ public function test_wp_make_link_relative_with_no_path() { $relative_link = wp_make_link_relative( $link ); $this->assertSame( '', $relative_link ); } - } diff --git a/tests/phpunit/tests/formatting/wpReplaceInHtmlTags.php b/tests/phpunit/tests/formatting/wpReplaceInHtmlTags.php index b16fd5e7f1c0b..b461e3bfe8e3c 100644 --- a/tests/phpunit/tests/formatting/wpReplaceInHtmlTags.php +++ b/tests/phpunit/tests/formatting/wpReplaceInHtmlTags.php @@ -36,4 +36,3 @@ public function data_wp_replace_in_html_tags() { ); } } - diff --git a/tests/phpunit/tests/formatting/wpSlash.php b/tests/phpunit/tests/formatting/wpSlash.php index a1ac591c7ae02..aa0664d791b92 100644 --- a/tests/phpunit/tests/formatting/wpSlash.php +++ b/tests/phpunit/tests/formatting/wpSlash.php @@ -101,5 +101,4 @@ public function test_add_even_more_slashes() { $this->assertSame( array( 'a' => $new ), wp_slash( array( 'a' => $old ) ) ); // Keyed array. $this->assertSame( array( $new ), wp_slash( array( $old ) ) ); // Non-keyed. } - } diff --git a/tests/phpunit/tests/formatting/wpStripAllTags.php b/tests/phpunit/tests/formatting/wpStripAllTags.php index 3efe479deca07..703d334858764 100644 --- a/tests/phpunit/tests/formatting/wpStripAllTags.php +++ b/tests/phpunit/tests/formatting/wpStripAllTags.php @@ -103,4 +103,3 @@ public function data_wp_strip_all_tags_should_cast_scalar_values_to_string() { ); } } - diff --git a/tests/phpunit/tests/formatting/wpTargetedLinkRel.php b/tests/phpunit/tests/formatting/wpTargetedLinkRel.php index 75a247e212caa..365f42dddb64c 100644 --- a/tests/phpunit/tests/formatting/wpTargetedLinkRel.php +++ b/tests/phpunit/tests/formatting/wpTargetedLinkRel.php @@ -136,5 +136,4 @@ public function test_wp_targeted_link_rel_tab_separated_values_are_split() { $expected = '

Links: No rel

'; $this->assertSame( $expected, wp_targeted_link_rel( $content ) ); } - } diff --git a/tests/phpunit/tests/formatting/wpTexturize.php b/tests/phpunit/tests/formatting/wpTexturize.php index ee7ce5f7795b3..3202db4ba760f 100644 --- a/tests/phpunit/tests/formatting/wpTexturize.php +++ b/tests/phpunit/tests/formatting/wpTexturize.php @@ -32,7 +32,6 @@ public function test_disable() { $invalid_nest = '
"baba"
'; $this->assertSame( $invalid_nest, wptexturize( $invalid_nest ) ); - } /** diff --git a/tests/phpunit/tests/formatting/wpTrimExcerpt.php b/tests/phpunit/tests/formatting/wpTrimExcerpt.php index 1cb4389ee9a35..faa67d904a900 100644 --- a/tests/phpunit/tests/formatting/wpTrimExcerpt.php +++ b/tests/phpunit/tests/formatting/wpTrimExcerpt.php @@ -108,7 +108,7 @@ public function test_wp_trim_excerpt_unhooks_wp_filter_content_tags() { $has_filter = true; add_filter( 'the_content', - static function( $content ) use ( &$has_filter ) { + static function ( $content ) use ( &$has_filter ) { $has_filter = has_filter( 'the_content', 'wp_filter_content_tags' ); return $content; } @@ -148,4 +148,77 @@ public function test_wp_trim_excerpt_does_not_restore_wp_filter_content_tags_if_ // Assert that the filter callback was not restored after running 'the_content'. $this->assertFalse( has_filter( 'the_content', 'wp_filter_content_tags' ) ); } + + /** + * Tests that `wp_trim_excerpt()` does process valid blocks. + * + * @ticket 58682 + */ + public function test_wp_trim_excerpt_check_if_block_renders() { + $post = self::factory()->post->create( + array( + 'post_content' => '

A test paragraph

', + ) + ); + + $output_text = wp_trim_excerpt( '', $post ); + + $this->assertSame( 'A test paragraph', $output_text, 'wp_trim_excerpt() did not process paragraph block.' ); + } + + /** + * Tests that `wp_trim_excerpt()` unhooks `do_blocks()` from 'the_content' filter. + * + * @ticket 58682 + */ + public function test_wp_trim_excerpt_unhooks_do_blocks() { + $post = self::factory()->post->create(); + + /* + * Record that during 'the_content' filter run by wp_trim_excerpt() the + * do_blocks() callback is not used. + */ + $has_filter = true; + add_filter( + 'the_content', + static function ( $content ) use ( &$has_filter ) { + $has_filter = has_filter( 'the_content', 'do_blocks' ); + return $content; + } + ); + + wp_trim_excerpt( '', $post ); + + $this->assertFalse( $has_filter, 'do_blocks() was not unhooked in wp_trim_excerpt()' ); + } + + /** + * Tests that `wp_trim_excerpt()` doesn't permanently unhook `do_blocks()` from 'the_content' filter. + * + * @ticket 58682 + */ + public function test_wp_trim_excerpt_should_not_permanently_unhook_do_blocks() { + $post = self::factory()->post->create(); + + wp_trim_excerpt( '', $post ); + + $this->assertSame( 9, has_filter( 'the_content', 'do_blocks' ), 'do_blocks() was not restored in wp_trim_excerpt()' ); + } + + /** + * Tests that `wp_trim_excerpt()` doesn't restore `do_blocks()` if it was previously unhooked. + * + * @ticket 58682 + */ + public function test_wp_trim_excerpt_does_not_restore_do_blocks_if_previously_unhooked() { + $post = self::factory()->post->create(); + + // Remove do_blocks() from 'the_content' filter generally. + remove_filter( 'the_content', 'do_blocks', 9 ); + + wp_trim_excerpt( '', $post ); + + // Assert that the filter callback was not restored after running 'the_content'. + $this->assertFalse( has_filter( 'the_content', 'do_blocks' ) ); + } } diff --git a/tests/phpunit/tests/functions.php b/tests/phpunit/tests/functions.php index 32fa2bd1e64aa..5c8a1aa25fa26 100644 --- a/tests/phpunit/tests/functions.php +++ b/tests/phpunit/tests/functions.php @@ -1643,6 +1643,16 @@ public function data_wp_check_filetype_and_ext() { 'proper_filename' => false, ), ), + // Google Docs file for which finfo_file() returns a duplicate mime type. + array( + DIR_TESTDATA . '/uploads/double-mime-type.docx', + 'double-mime-type.docx', + array( + 'ext' => 'docx', + 'type' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', + 'proper_filename' => false, + ), + ), // Non-image file with wrong sub-type. array( DIR_TESTDATA . '/uploads/pages-to-word.docx', @@ -1716,7 +1726,7 @@ public function test_wp_check_filetype_and_ext_with_filtered_svg() { add_filter( 'upload_mimes', - static function( $mimes ) { + static function ( $mimes ) { $mimes['svg'] = 'image/svg+xml'; return $mimes; } @@ -1754,7 +1764,7 @@ public function test_wp_check_filetype_and_ext_with_filtered_woff() { add_filter( 'upload_mimes', - static function( $mimes ) use ( $woff_mime_type ) { + static function ( $mimes ) use ( $woff_mime_type ) { $mimes['woff'] = $woff_mime_type; return $mimes; } @@ -2150,5 +2160,4 @@ public function test_wp_recursive_ksort() { ); $this->assertSameSetsWithIndex( $theme_json, $expected_theme_json ); } - } diff --git a/tests/phpunit/tests/functions/addMagicQuotes.php b/tests/phpunit/tests/functions/addMagicQuotes.php index f42b601e09816..47085efe76460 100644 --- a/tests/phpunit/tests/functions/addMagicQuotes.php +++ b/tests/phpunit/tests/functions/addMagicQuotes.php @@ -61,5 +61,4 @@ public function data_add_magic_quotes() { ), ); } - } diff --git a/tests/phpunit/tests/functions/anonymization.php b/tests/phpunit/tests/functions/anonymization.php index a7849ddf46152..7a4ff6a26be5f 100644 --- a/tests/phpunit/tests/functions/anonymization.php +++ b/tests/phpunit/tests/functions/anonymization.php @@ -320,5 +320,4 @@ public function filter_wp_privacy_anonymize_data( $anonymous, $type, $data ) { } return $anonymous; } - } diff --git a/tests/phpunit/tests/functions/canonicalCharset.php b/tests/phpunit/tests/functions/canonicalCharset.php index 973562c6a993c..4a11e9c7648bb 100644 --- a/tests/phpunit/tests/functions/canonicalCharset.php +++ b/tests/phpunit/tests/functions/canonicalCharset.php @@ -88,5 +88,4 @@ public function test_update_option_blog_charset() { update_option( 'blog_charset', $orig_blog_charset ); } - } diff --git a/tests/phpunit/tests/functions/doEnclose.php b/tests/phpunit/tests/functions/doEnclose.php index 5611878bd258b..d906ed6f610bc 100644 --- a/tests/phpunit/tests/functions/doEnclose.php +++ b/tests/phpunit/tests/functions/doEnclose.php @@ -289,5 +289,4 @@ public function mock_http_request( $response, $parsed_args, $url ) { ), ); } - } diff --git a/tests/phpunit/tests/functions/isNewDay.php b/tests/phpunit/tests/functions/isNewDay.php index f852c8908faba..b1993e09e1082 100644 --- a/tests/phpunit/tests/functions/isNewDay.php +++ b/tests/phpunit/tests/functions/isNewDay.php @@ -33,5 +33,4 @@ public function data_is_new_date() { array( '21.05.19', false, 1 ), ); } - } diff --git a/tests/phpunit/tests/functions/wp.php b/tests/phpunit/tests/functions/wp.php index 04df43b3489d5..14356a4ebc91b 100644 --- a/tests/phpunit/tests/functions/wp.php +++ b/tests/phpunit/tests/functions/wp.php @@ -16,5 +16,4 @@ public function test_wp_sets_global_vars() { $this->assertInstanceOf( 'WP_Query', $wp_query ); $this->assertInstanceOf( 'WP_Query', $wp_the_query ); } - } diff --git a/tests/phpunit/tests/functions/wpFilesize.php b/tests/phpunit/tests/functions/wpFilesize.php index f0e510ddc5943..250f7e79c7724 100644 --- a/tests/phpunit/tests/functions/wpFilesize.php +++ b/tests/phpunit/tests/functions/wpFilesize.php @@ -25,7 +25,7 @@ public function test_wp_filesize_filters() { add_filter( 'wp_filesize', - static function() { + static function () { return 999; } ); @@ -34,7 +34,7 @@ static function() { add_filter( 'pre_wp_filesize', - static function() { + static function () { return 111; } ); diff --git a/tests/phpunit/tests/functions/wpFuzzyNumberMatch.php b/tests/phpunit/tests/functions/wpFuzzyNumberMatch.php index 85034165cecdd..77a06e2bb7ffb 100644 --- a/tests/phpunit/tests/functions/wpFuzzyNumberMatch.php +++ b/tests/phpunit/tests/functions/wpFuzzyNumberMatch.php @@ -108,5 +108,4 @@ public function data_wp_fuzzy_number_match() { ), ); } - } diff --git a/tests/phpunit/tests/functions/wpListUtil.php b/tests/phpunit/tests/functions/wpListUtil.php index 752ea1382caee..dba0a127973e3 100644 --- a/tests/phpunit/tests/functions/wpListUtil.php +++ b/tests/phpunit/tests/functions/wpListUtil.php @@ -1161,5 +1161,4 @@ public function data_wp_list_util_sort_non_existent_orderby_fields() { ), ); } - } diff --git a/tests/phpunit/tests/functions/wpTriggerError.php b/tests/phpunit/tests/functions/wpTriggerError.php new file mode 100644 index 0000000000000..40582bc24a993 --- /dev/null +++ b/tests/phpunit/tests/functions/wpTriggerError.php @@ -0,0 +1,101 @@ +expectError(); + $this->expectErrorMessage( $expected_message ); + + wp_trigger_error( $function_name, $message, E_USER_ERROR ); + } + + /** + * @ticket 57686 + * + * @dataProvider data_should_trigger_error + * + * @param string $function_name The function name to test. + * @param string $message The message to test. + * @param string $expected_message The expected error message. + */ + public function test_should_trigger_warning( $function_name, $message, $expected_message ) { + $this->expectWarning(); + $this->expectWarningMessage( $expected_message ); + + wp_trigger_error( $function_name, $message, E_USER_WARNING ); + } + + /** + * @ticket 57686 + * + * @dataProvider data_should_trigger_error + * + * @param string $function_name The function name to test. + * @param string $message The message to test. + * @param string $expected_message The expected error message. + */ + public function test_should_trigger_notice( $function_name, $message, $expected_message ) { + $this->expectNotice(); + $this->expectNoticeMessage( $expected_message ); + + wp_trigger_error( $function_name, $message ); + } + + /** + * @ticket 57686 + * + * @dataProvider data_should_trigger_error + * + * @param string $function_name The function name to test. + * @param string $message The message to test. + * @param string $expected_message The expected error message. + */ + public function test_should_trigger_deprecation( $function_name, $message, $expected_message ) { + $this->expectDeprecation(); + $this->expectDeprecationMessage( $expected_message ); + + wp_trigger_error( $function_name, $message, E_USER_DEPRECATED ); + } + + /** + * Data provider. + * + * @return array + */ + public function data_should_trigger_error() { + return array( + 'function name and message are given' => array( + 'function_name' => 'some_function', + 'message' => 'expected the function name and message', + 'expected_message' => 'some_function(): expected the function name and message', + ), + 'message is given' => array( + 'function_name' => '', + 'message' => 'expect only the message', + 'expected_message' => 'expect only the message', + ), + 'function name is given' => array( + 'function_name' => 'some_function', + 'message' => '', + 'expected_message' => 'some_function(): ', + ), + ); + } +} diff --git a/tests/phpunit/tests/general/feedLinksExtra.php b/tests/phpunit/tests/general/feedLinksExtra.php index ee7f93640f1fe..3bea946e1aff1 100644 --- a/tests/phpunit/tests/general/feedLinksExtra.php +++ b/tests/phpunit/tests/general/feedLinksExtra.php @@ -491,14 +491,14 @@ public function test_feed_links_extra_should_return_empty_when_comments_and_ping public function test_feed_links_extra_should_respect_feed_type() { add_filter( 'default_feed', - static function() { + static function () { return 'foo'; } ); add_filter( 'feed_content_type', - static function() { + static function () { return 'testing/foo'; } ); diff --git a/tests/phpunit/tests/general/template.php b/tests/phpunit/tests/general/template.php index 8a29853526960..e5b88d7d4dc73 100644 --- a/tests/phpunit/tests/general/template.php +++ b/tests/phpunit/tests/general/template.php @@ -10,6 +10,7 @@ require_once ABSPATH . 'wp-admin/includes/class-wp-site-icon.php'; class Tests_General_Template extends WP_UnitTestCase { + protected $wp_site_icon; public $site_icon_id; public $site_icon_url; @@ -41,6 +42,7 @@ public static function wpTearDownAfterClass() { public function set_up() { parent::set_up(); + switch_theme( 'default' ); $this->wp_site_icon = new WP_Site_Icon(); } diff --git a/tests/phpunit/tests/general/wpPreloadResources.php b/tests/phpunit/tests/general/wpPreloadResources.php index fe2a4e6fa51c0..8648da8949c09 100644 --- a/tests/phpunit/tests/general/wpPreloadResources.php +++ b/tests/phpunit/tests/general/wpPreloadResources.php @@ -249,5 +249,4 @@ public function data_preload_resources() { ), ); } - } diff --git a/tests/phpunit/tests/general/wpResourceHints.php b/tests/phpunit/tests/general/wpResourceHints.php index 03a4c024e0747..d0ece5d9ac874 100644 --- a/tests/phpunit/tests/general/wpResourceHints.php +++ b/tests/phpunit/tests/general/wpResourceHints.php @@ -147,7 +147,6 @@ public function test_dns_prefetch_styles() { wp_dequeue_style( 'googlefonts' ); $this->assertSame( $expected, $actual ); - } public function test_dns_prefetch_scripts() { diff --git a/tests/phpunit/tests/hooks/addFilter.php b/tests/phpunit/tests/hooks/addFilter.php index df4db364c5877..b870fdce51256 100644 --- a/tests/phpunit/tests/hooks/addFilter.php +++ b/tests/phpunit/tests/hooks/addFilter.php @@ -35,6 +35,7 @@ public function test_add_filter_with_function() { $accepted_args = 2; $hook->add_filter( $hook_name, $callback, $priority, $accepted_args ); + $this->check_priority_exists( $hook, $priority ); $function_index = _wp_filter_build_unique_id( $hook_name, $callback, $priority ); $this->assertSame( $callback, $hook->callbacks[ $priority ][ $function_index ]['function'] ); @@ -50,6 +51,7 @@ public function test_add_filter_with_object() { $accepted_args = 2; $hook->add_filter( $hook_name, $callback, $priority, $accepted_args ); + $this->check_priority_exists( $hook, $priority ); $function_index = _wp_filter_build_unique_id( $hook_name, $callback, $priority ); $this->assertSame( $callback, $hook->callbacks[ $priority ][ $function_index ]['function'] ); @@ -64,6 +66,7 @@ public function test_add_filter_with_static_method() { $accepted_args = 2; $hook->add_filter( $hook_name, $callback, $priority, $accepted_args ); + $this->check_priority_exists( $hook, $priority ); $function_index = _wp_filter_build_unique_id( $hook_name, $callback, $priority ); $this->assertSame( $callback, $hook->callbacks[ $priority ][ $function_index ]['function'] ); @@ -79,6 +82,7 @@ public function test_add_two_filters_with_same_priority() { $accepted_args = 2; $hook->add_filter( $hook_name, $callback_one, $priority, $accepted_args ); + $this->check_priority_exists( $hook, $priority ); $this->assertCount( 1, $hook->callbacks[ $priority ] ); $hook->add_filter( $hook_name, $callback_two, $priority, $accepted_args ); @@ -94,9 +98,11 @@ public function test_add_two_filters_with_different_priority() { $accepted_args = 2; $hook->add_filter( $hook_name, $callback_one, $priority, $accepted_args ); + $this->check_priority_exists( $hook, $priority ); $this->assertCount( 1, $hook->callbacks[ $priority ] ); $hook->add_filter( $hook_name, $callback_two, $priority + 1, $accepted_args ); + $this->check_priority_exists( $hook, $priority + 1 ); $this->assertCount( 1, $hook->callbacks[ $priority ] ); $this->assertCount( 1, $hook->callbacks[ $priority + 1 ] ); } @@ -109,6 +115,7 @@ public function test_readd_filter() { $accepted_args = 2; $hook->add_filter( $hook_name, $callback, $priority, $accepted_args ); + $this->check_priority_exists( $hook, $priority ); $this->assertCount( 1, $hook->callbacks[ $priority ] ); $hook->add_filter( $hook_name, $callback, $priority, $accepted_args ); @@ -123,9 +130,11 @@ public function test_readd_filter_with_different_priority() { $accepted_args = 2; $hook->add_filter( $hook_name, $callback, $priority, $accepted_args ); + $this->check_priority_exists( $hook, $priority ); $this->assertCount( 1, $hook->callbacks[ $priority ] ); $hook->add_filter( $hook_name, $callback, $priority + 1, $accepted_args ); + $this->check_priority_exists( $hook, $priority + 1 ); $this->assertCount( 1, $hook->callbacks[ $priority ] ); $this->assertCount( 1, $hook->callbacks[ $priority + 1 ] ); } @@ -141,20 +150,22 @@ public function test_sort_after_add_filter() { $hook->add_filter( $hook_name, array( $b, 'action' ), 5, 1 ); $hook->add_filter( $hook_name, array( $c, 'action' ), 8, 1 ); - $this->assertSame( array( 5, 8, 10 ), array_keys( $hook->callbacks ) ); + $this->assertSame( array( 5, 8, 10 ), $this->get_priorities( $hook ) ); } public function test_remove_and_add() { $this->hook = new WP_Hook(); $this->hook->add_filter( 'remove_and_add', '__return_empty_string', 10, 0 ); - + $this->check_priority_exists( $this->hook, 10 ); $this->hook->add_filter( 'remove_and_add', array( $this, '_filter_remove_and_add2' ), 11, 1 ); - + $this->check_priority_exists( $this->hook, 11 ); $this->hook->add_filter( 'remove_and_add', array( $this, '_filter_remove_and_add4' ), 12, 1 ); - + $this->check_priority_exists( $this->hook, 12 ); $value = $this->hook->apply_filters( '', array() ); + $this->assertSameSets( array( 10, 11, 12 ), $this->get_priorities( $this->hook ), 'The priorities should match this array' ); + $this->assertSame( '24', $value ); } @@ -162,13 +173,15 @@ public function test_remove_and_add_last_filter() { $this->hook = new WP_Hook(); $this->hook->add_filter( 'remove_and_add', '__return_empty_string', 10, 0 ); - + $this->check_priority_exists( $this->hook, 10 ); $this->hook->add_filter( 'remove_and_add', array( $this, '_filter_remove_and_add1' ), 11, 1 ); - + $this->check_priority_exists( $this->hook, 11 ); $this->hook->add_filter( 'remove_and_add', array( $this, '_filter_remove_and_add2' ), 12, 1 ); - + $this->check_priority_exists( $this->hook, 12 ); $value = $this->hook->apply_filters( '', array() ); + $this->assertSameSets( array( 10, 11, 12 ), $this->get_priorities( $this->hook ), 'The priorities should match this array' ); + $this->assertSame( '12', $value ); } @@ -183,6 +196,8 @@ public function test_remove_and_recurse_and_add() { $this->hook->add_filter( 'remove_and_add', array( $this, '_filter_remove_and_add4' ), 12, 1 ); + $this->assertSameSets( array( 10, 11, 12 ), $this->get_priorities( $this->hook ), 'The priorities should match this array' ); + $value = $this->hook->apply_filters( '', array() ); $this->assertSame( '1-134-234', $value ); @@ -195,7 +210,7 @@ public function _filter_remove_and_add1( $value ) { public function _filter_remove_and_add2( $value ) { $this->hook->remove_filter( 'remove_and_add', array( $this, '_filter_remove_and_add2' ), 11 ); $this->hook->add_filter( 'remove_and_add', array( $this, '_filter_remove_and_add2' ), 11, 1 ); - + $this->check_priority_exists( $this->hook, 11 ); return $value . '2'; } @@ -205,7 +220,7 @@ public function _filter_remove_and_recurse_and_add2( $value ) { $value .= '-' . $this->hook->apply_filters( '', array() ) . '-'; $this->hook->add_filter( 'remove_and_add', array( $this, '_filter_remove_and_recurse_and_add2' ), 11, 1 ); - + $this->check_priority_exists( $this->hook, 11 ); return $value . '2'; } @@ -291,4 +306,18 @@ public function _action_remove_and_add3() { public function _action_remove_and_add4() { $this->action_output .= '4'; } + + protected function check_priority_exists( $hook, $priority ) { + $priorities = $this->get_priorities( $hook ); + + $this->assertContains( $priority, $priorities ); + } + + protected function get_priorities( $hook ) { + $reflection = new ReflectionClass( $hook ); + $reflection_property = $reflection->getProperty( 'priorities' ); + $reflection_property->setAccessible( true ); + + return $reflection_property->getValue( $hook ); + } } diff --git a/tests/phpunit/tests/hooks/applyFilters.php b/tests/phpunit/tests/hooks/applyFilters.php index f25bd0858243a..4c3a594aa98e0 100644 --- a/tests/phpunit/tests/hooks/applyFilters.php +++ b/tests/phpunit/tests/hooks/applyFilters.php @@ -42,5 +42,4 @@ public function test_apply_filters_with_multiple_calls() { $this->assertSame( $returned_two, $arg ); $this->assertSame( 2, $a->get_call_count() ); } - } diff --git a/tests/phpunit/tests/hooks/removeAllFilters.php b/tests/phpunit/tests/hooks/removeAllFilters.php index e4b0e784082b4..99c93ee37a2aa 100644 --- a/tests/phpunit/tests/hooks/removeAllFilters.php +++ b/tests/phpunit/tests/hooks/removeAllFilters.php @@ -18,6 +18,7 @@ public function test_remove_all_filters() { $hook->add_filter( $hook_name, $callback, $priority, $accepted_args ); $hook->remove_all_filters(); + $this->check_priority_non_existent( $hook, $priority ); $this->assertFalse( $hook->has_filters() ); } @@ -34,9 +35,30 @@ public function test_remove_all_filters_with_priority() { $hook->add_filter( $hook_name, $callback_two, $priority + 1, $accepted_args ); $hook->remove_all_filters( $priority ); + $this->check_priority_non_existent( $hook, $priority ); $this->assertFalse( $hook->has_filter( $hook_name, $callback_one ) ); $this->assertTrue( $hook->has_filters() ); $this->assertSame( $priority + 1, $hook->has_filter( $hook_name, $callback_two ) ); + $this->check_priority_exists( $hook, $priority + 1 ); + } + + protected function check_priority_non_existent( $hook, $priority ) { + $priorities = $this->get_priorities( $hook ); + + $this->assertNotContains( $priority, $priorities ); + } + + protected function check_priority_exists( $hook, $priority ) { + $priorities = $this->get_priorities( $hook ); + + $this->assertContains( $priority, $priorities ); + } + protected function get_priorities( $hook ) { + $reflection = new ReflectionClass( $hook ); + $reflection_property = $reflection->getProperty( 'priorities' ); + $reflection_property->setAccessible( true ); + + return $reflection_property->getValue( $hook ); } } diff --git a/tests/phpunit/tests/hooks/removeFilter.php b/tests/phpunit/tests/hooks/removeFilter.php index 9a6f290bdec52..d4b11ee9e3f67 100644 --- a/tests/phpunit/tests/hooks/removeFilter.php +++ b/tests/phpunit/tests/hooks/removeFilter.php @@ -17,6 +17,7 @@ public function test_remove_filter_with_function() { $hook->add_filter( $hook_name, $callback, $priority, $accepted_args ); $hook->remove_filter( $hook_name, $callback, $priority ); + $this->check_priority_non_existent( $hook, $priority ); $this->assertArrayNotHasKey( $priority, $hook->callbacks ); } @@ -31,6 +32,7 @@ public function test_remove_filter_with_object() { $hook->add_filter( $hook_name, $callback, $priority, $accepted_args ); $hook->remove_filter( $hook_name, $callback, $priority ); + $this->check_priority_non_existent( $hook, $priority ); $this->assertArrayNotHasKey( $priority, $hook->callbacks ); } @@ -44,6 +46,7 @@ public function test_remove_filter_with_static_method() { $hook->add_filter( $hook_name, $callback, $priority, $accepted_args ); $hook->remove_filter( $hook_name, $callback, $priority ); + $this->check_priority_non_existent( $hook, $priority ); $this->assertArrayNotHasKey( $priority, $hook->callbacks ); } @@ -62,6 +65,7 @@ public function test_remove_filters_with_another_at_same_priority() { $hook->remove_filter( $hook_name, $callback_one, $priority ); $this->assertCount( 1, $hook->callbacks[ $priority ] ); + $this->check_priority_exists( $hook, $priority, 'Has priority of 2' ); } public function test_remove_filter_with_another_at_different_priority() { @@ -76,7 +80,29 @@ public function test_remove_filter_with_another_at_different_priority() { $hook->add_filter( $hook_name, $callback_two, $priority + 1, $accepted_args ); $hook->remove_filter( $hook_name, $callback_one, $priority ); + $this->check_priority_non_existent( $hook, $priority ); $this->assertArrayNotHasKey( $priority, $hook->callbacks ); $this->assertCount( 1, $hook->callbacks[ $priority + 1 ] ); + $this->check_priority_exists( $hook, $priority + 1, 'Should priority of 3' ); + } + + protected function check_priority_non_existent( $hook, $priority ) { + $priorities = $this->get_priorities( $hook ); + + $this->assertNotContains( $priority, $priorities ); + } + + protected function check_priority_exists( $hook, $priority ) { + $priorities = $this->get_priorities( $hook ); + + $this->assertContains( $priority, $priorities ); + } + + protected function get_priorities( $hook ) { + $reflection = new ReflectionClass( $hook ); + $reflection_property = $reflection->getProperty( 'priorities' ); + $reflection_property->setAccessible( true ); + + return $reflection_property->getValue( $hook ); } } diff --git a/tests/phpunit/tests/html-api/wpHtmlProcessor.php b/tests/phpunit/tests/html-api/wpHtmlProcessor.php index 6a666c19cf27c..d6b818dd44c34 100644 --- a/tests/phpunit/tests/html-api/wpHtmlProcessor.php +++ b/tests/phpunit/tests/html-api/wpHtmlProcessor.php @@ -42,6 +42,40 @@ public function test_warns_that_the_static_creator_methods_should_be_called_inst ); } + /** + * Once stepping to the end of the document, WP_HTML_Processor::get_tag + * should no longer report a tag. It should report `null` because there + * is no tag matched or open. + * + * @ticket 59167 + * + * @covers WP_HTML_Processor::get_tag + */ + public function test_get_tag_is_null_once_document_is_finished() { + $p = WP_HTML_Processor::createFragment( '
Test
' ); + $p->next_tag(); + $this->assertSame( 'DIV', $p->get_tag() ); + + $this->assertFalse( $p->next_tag() ); + $this->assertNull( $p->get_tag() ); + } + + /** + * Ensures that if the HTML Processor encounters inputs that it can't properly handle, + * that it stops processing the rest of the document. This prevents data corruption. + * + * @ticket 59167 + * + * @covers WP_HTML_Processor::next_tag + */ + public function test_stops_processing_after_unsupported_elements() { + $p = WP_HTML_Processor::createFragment( '

' ); + $p->next_tag( 'P' ); + $this->assertFalse( $p->next_tag(), 'Stepped into a tag after encountering X-NOT-SUPPORTED element when it should have aborted.' ); + $this->assertNull( $p->get_tag(), "Should have aborted processing, but still reported tag {$p->get_tag()} after properly failing to step into tag." ); + $this->assertFalse( $p->next_tag( 'P' ), 'Stepped into normal P element after X-NOT-SUPPORTED element when it should have aborted.' ); + } + /** * Ensures that the HTML Processor maintains its internal state through seek calls. * diff --git a/tests/phpunit/tests/html-api/wpHtmlTagProcessor.php b/tests/phpunit/tests/html-api/wpHtmlTagProcessor.php index 659ffb848ecb8..31430d07a9e02 100644 --- a/tests/phpunit/tests/html-api/wpHtmlTagProcessor.php +++ b/tests/phpunit/tests/html-api/wpHtmlTagProcessor.php @@ -1871,6 +1871,43 @@ public function data_next_tag_ignores_contents_of_rcdata_tag() { ); } + /** + * @ticket 59292 + * + * @covers WP_HTML_Tag_Processor::next_tag + * + * @dataProvider data_next_tag_ignores_contents_of_rawtext_tags + * + * @param string $rawtext_element_then_target_node HTML starting with a RAWTEXT-specifying element such as STYLE, + * then an element afterward containing the "target" attribute. + */ + public function test_next_tag_ignores_contents_of_rawtext_tags( $rawtext_element_then_target_node ) { + $processor = new WP_HTML_Tag_Processor( $rawtext_element_then_target_node ); + $processor->next_tag(); + + $processor->next_tag(); + $this->assertNotNull( + $processor->get_attribute( 'target' ), + "Expected to find element with target attribute but found {$processor->get_tag()} instead." + ); + } + + /** + * Data provider. + * + * @return array[]. + */ + public function data_next_tag_ignores_contents_of_rawtext_tags() { + return array( + 'IFRAME' => array( '
' ), + 'NOEMBED' => array( '<p></p>
' ), + 'NOFRAMES' => array( '<p>Check the rules here.</p>
' ), + 'NOSCRIPT' => array( '

' ), + 'STYLE' => array( '

' ), + 'STYLE hiding DIV' => array( '
' ), + ); + } + /** * Ensures that the invalid comment closing syntax "--!>" properly closes a comment. * diff --git a/tests/phpunit/tests/http/base.php b/tests/phpunit/tests/http/base.php index 00abf1655bacd..8a6ce3b3b001a 100644 --- a/tests/phpunit/tests/http/base.php +++ b/tests/phpunit/tests/http/base.php @@ -314,7 +314,6 @@ public function test_file_stream_limited_size() { $this->skipTestOnTimeout( $res ); $this->assertNotWPError( $res ); $this->assertSame( $size, $filesize ); // Check that the file is written to disk correctly without any extra characters. - } /** @@ -408,7 +407,6 @@ public function test_ip_url_with_host_header() { $this->skipTestOnTimeout( $res ); $this->assertSame( 'PASS', wp_remote_retrieve_body( $res ) ); - } /** @@ -487,6 +485,4 @@ public function test_url_with_double_slashes_path() { $this->skipTestOnTimeout( $res ); $this->assertNotWPError( $res ); } - - } diff --git a/tests/phpunit/tests/http/http.php b/tests/phpunit/tests/http/http.php index 47d169e619326..1648cca4eaf9f 100644 --- a/tests/phpunit/tests/http/http.php +++ b/tests/phpunit/tests/http/http.php @@ -292,7 +292,6 @@ public function test_http_response_code_constants() { get_status_header_desc( 200 ); $this->assertSame( array_keys( $wp_header_to_desc ), array_values( $constants ) ); - } /** @@ -594,7 +593,7 @@ public function test_multiple_location_headers() { // Filter the response made by WP_Http::handle_redirects(). add_filter( 'pre_http_request', - function( $response, $parsed_args, $url ) use ( &$pre_http_request_filter_has_run ) { + function ( $response, $parsed_args, $url ) use ( &$pre_http_request_filter_has_run ) { $pre_http_request_filter_has_run = true; // Assert the redirect URL is correct. diff --git a/tests/phpunit/tests/https-detection.php b/tests/phpunit/tests/https-detection.php index 820f39fc6e47a..80f16846994a9 100644 --- a/tests/phpunit/tests/https-detection.php +++ b/tests/phpunit/tests/https-detection.php @@ -117,7 +117,7 @@ public function test_pre_wp_update_https_detection_errors() { // Override to enforce no errors being detected. add_filter( 'pre_wp_update_https_detection_errors', - static function() { + static function () { return new WP_Error(); } ); @@ -127,7 +127,7 @@ static function() { // Override to enforce an error being detected. add_filter( 'pre_wp_update_https_detection_errors', - static function() { + static function () { return new WP_Error( 'ssl_verification_failed', 'Bad SSL certificate.' @@ -316,7 +316,7 @@ private function get_sample_html_string( $head_tag = '' ) { * @return callable Filter callback. */ private function filter_set_url_scheme( $scheme ) { - return static function( $url ) use ( $scheme ) { + return static function ( $url ) use ( $scheme ) { return set_url_scheme( $url, $scheme ); }; } diff --git a/tests/phpunit/tests/https-migration.php b/tests/phpunit/tests/https-migration.php index d06e1f0fba053..ae66738603e13 100644 --- a/tests/phpunit/tests/https-migration.php +++ b/tests/phpunit/tests/https-migration.php @@ -161,7 +161,7 @@ public function test_wp_should_replace_insecure_home_url_integration() { private function force_wp_is_using_https( $enabled ) { $scheme = $enabled ? 'https' : 'http'; - $replace_scheme = static function( $url ) use ( $scheme ) { + $replace_scheme = static function ( $url ) use ( $scheme ) { return str_replace( array( 'http://', 'https://' ), $scheme . '://', $url ); }; @@ -172,7 +172,7 @@ private function force_wp_is_using_https( $enabled ) { private function force_option( $option, $value ) { add_filter( "option_$option", - static function() use ( $value ) { + static function () use ( $value ) { return $value; } ); diff --git a/tests/phpunit/tests/image/dimensions.php b/tests/phpunit/tests/image/dimensions.php index 5820f64ae7206..a80c4ece3e646 100644 --- a/tests/phpunit/tests/image/dimensions.php +++ b/tests/phpunit/tests/image/dimensions.php @@ -181,5 +181,4 @@ public function test_crop_anchors() { // dst_x, dst_y, src_x, src_y, dst_w, dst_h, src_w, src_h. $this->assertSame( array( 0, 0, 0, 40, 400, 500, 480, 600 ), $out ); } - } diff --git a/tests/phpunit/tests/image/editor.php b/tests/phpunit/tests/image/editor.php index 6e800deb7af12..bd54b803e2897 100644 --- a/tests/phpunit/tests/image/editor.php +++ b/tests/phpunit/tests/image/editor.php @@ -363,5 +363,4 @@ public function data_wp_get_webp_info() { ), ); } - } diff --git a/tests/phpunit/tests/image/editorImagick.php b/tests/phpunit/tests/image/editorImagick.php index 1209203904033..30747f69f1b62 100644 --- a/tests/phpunit/tests/image/editorImagick.php +++ b/tests/phpunit/tests/image/editorImagick.php @@ -683,7 +683,7 @@ public function test_remove_pdf_alpha_channel_should_remove_the_alpha_channel_in $check_file = path_join( dirname( $attached_file ), $check['file'] ); $imagick = new Imagick( $check_file ); $output = array_map( - static function( $value ) { + static function ( $value ) { return (int) round( $value ); }, array_intersect_key( $imagick->getImagePixelColor( 100, 100 )->getColor( true /* normalized */ ), $rgb ) diff --git a/tests/phpunit/tests/image/functions.php b/tests/phpunit/tests/image/functions.php index 356b2dceacd8c..f55b164496a84 100644 --- a/tests/phpunit/tests/image/functions.php +++ b/tests/phpunit/tests/image/functions.php @@ -692,7 +692,7 @@ public function test_wp_crop_image_should_fail_with_wp_error_object_if_there_was add_filter( 'wp_image_editors', - static function( $editors ) { + static function ( $editors ) { return array( 'WP_Image_Editor_Mock' ); } ); @@ -718,7 +718,7 @@ static function( $editors ) { public function test_wp_crop_image_should_return_correct_file_extension_if_output_format_was_modified() { add_filter( 'image_editor_output_format', - static function() { + static function () { return array_fill_keys( array( 'image/jpg', 'image/jpeg', 'image/png' ), 'image/webp' ); } ); diff --git a/tests/phpunit/tests/image/header.php b/tests/phpunit/tests/image/header.php index 6b480a953c46e..afb9feb61fb4e 100644 --- a/tests/phpunit/tests/image/header.php +++ b/tests/phpunit/tests/image/header.php @@ -30,7 +30,6 @@ public function test_header_image_has_correct_dimensions_with_max_width() { ); $this->assertSame( 1200, $dimensions['dst_width'] ); $this->assertSame( 230, $dimensions['dst_height'] ); - } public function test_header_image_has_correct_dimensions_with_fixed() { @@ -50,7 +49,6 @@ public function test_header_image_has_correct_dimensions_with_fixed() { ); $this->assertSame( 1200, $dimensions['dst_width'] ); $this->assertSame( 230, $dimensions['dst_height'] ); - } public function test_header_image_has_correct_dimensions_with_flex_height() { @@ -70,7 +68,6 @@ public function test_header_image_has_correct_dimensions_with_flex_height() { ); $this->assertSame( 1200, $dimensions['dst_width'] ); $this->assertSame( 900, $dimensions['dst_height'] ); - } public function test_header_image_has_correct_dimensions_with_flex_width() { @@ -90,7 +87,6 @@ public function test_header_image_has_correct_dimensions_with_flex_width() { ); $this->assertSame( 1500, $dimensions['dst_width'] ); // Max width. $this->assertSame( 230, $dimensions['dst_height'] ); - } public function test_header_image_has_correct_dimensions_with_flex_width_and_height() { @@ -110,7 +106,6 @@ public function test_header_image_has_correct_dimensions_with_flex_width_and_hei ); $this->assertSame( 1600, $dimensions['dst_width'] ); $this->assertSame( 1200, $dimensions['dst_height'] ); - } public function test_create_attachment_object() { diff --git a/tests/phpunit/tests/image/intermediateSize.php b/tests/phpunit/tests/image/intermediateSize.php index 830359427a8fd..e297bf8427219 100644 --- a/tests/phpunit/tests/image/intermediateSize.php +++ b/tests/phpunit/tests/image/intermediateSize.php @@ -69,7 +69,7 @@ public function test_make_intermediate_size_successful() { public function test_image_editor_output_format_filter() { add_filter( 'image_editor_output_format', - static function() { + static function () { return array( 'image/jpeg' => 'image/webp' ); } ); diff --git a/tests/phpunit/tests/image/resizeGd.php b/tests/phpunit/tests/image/resizeGd.php index 40a3faebfc4b1..a990c0a126bbd 100644 --- a/tests/phpunit/tests/image/resizeGd.php +++ b/tests/phpunit/tests/image/resizeGd.php @@ -38,5 +38,4 @@ public function test_resize_bad_image() { $this->assertInstanceOf( 'WP_Error', $image ); $this->assertSame( 'invalid_image', $image->get_error_code() ); } - } diff --git a/tests/phpunit/tests/image/size.php b/tests/phpunit/tests/image/size.php index 60819b41b5500..c8c6234b23742 100644 --- a/tests/phpunit/tests/image/size.php +++ b/tests/phpunit/tests/image/size.php @@ -208,5 +208,4 @@ public function test_constrain_size_for_editor_full() { $content_width = $_content_width; } - } diff --git a/tests/phpunit/tests/import/base.php b/tests/phpunit/tests/import/base.php index db83296c0afcb..d0fefb1a925ec 100644 --- a/tests/phpunit/tests/import/base.php +++ b/tests/phpunit/tests/import/base.php @@ -42,7 +42,7 @@ protected function _import_wp( $filename, $users = array(), $fetch_files = true $new[ $i ] = $map; } - $i++; + ++$i; } $_POST = array( diff --git a/tests/phpunit/tests/kses.php b/tests/phpunit/tests/kses.php index a19df38626a7a..45f2862d14b78 100644 --- a/tests/phpunit/tests/kses.php +++ b/tests/phpunit/tests/kses.php @@ -1341,6 +1341,11 @@ public function data_safecss_filter_attr() { 'css' => 'grid-template-columns: repeat(4, unsupported(0, 1fr)', 'expected' => '', ), + // `writing-mode` introduced in 6.4. + array( + 'css' => 'writing-mode: vertical-rl', + 'expected' => 'writing-mode: vertical-rl', + ), ); } diff --git a/tests/phpunit/tests/l10n/determineLocale.php b/tests/phpunit/tests/l10n/determineLocale.php index a2c3febd4a0ab..51ab1c28b95f6 100644 --- a/tests/phpunit/tests/l10n/determineLocale.php +++ b/tests/phpunit/tests/l10n/determineLocale.php @@ -33,7 +33,7 @@ public function test_short_circuit_empty() { public function test_short_circuit_no_string() { add_filter( 'pre_determine_locale', - static function() { + static function () { return 1234; } ); @@ -43,7 +43,7 @@ static function() { public function test_short_circuit_string() { add_filter( 'pre_determine_locale', - static function() { + static function () { return 'myNewLocale'; } ); @@ -53,7 +53,7 @@ static function() { public function test_defaults_to_site_locale() { add_filter( 'locale', - static function() { + static function () { return 'siteLocale'; } ); @@ -64,7 +64,7 @@ static function() { public function test_is_admin_no_user() { add_filter( 'locale', - static function() { + static function () { return 'siteLocale'; } ); @@ -77,7 +77,7 @@ static function() { public function test_is_admin_user_locale() { add_filter( 'locale', - static function() { + static function () { return 'siteLocale'; } ); @@ -91,7 +91,7 @@ static function() { public function test_json_request_user_locale() { add_filter( 'locale', - static function() { + static function () { return 'siteLocale'; } ); @@ -107,7 +107,7 @@ static function() { public function test_json_request_user_locale_no_user() { add_filter( 'locale', - static function() { + static function () { return 'siteLocale'; } ); @@ -121,7 +121,7 @@ static function() { public function test_json_request_missing_get_param() { add_filter( 'locale', - static function() { + static function () { return 'siteLocale'; } ); @@ -136,7 +136,7 @@ static function() { public function test_json_request_incorrect_get_param() { add_filter( 'locale', - static function() { + static function () { return 'siteLocale'; } ); @@ -152,7 +152,7 @@ static function() { public function test_get_param_but_no_json_request() { add_filter( 'locale', - static function() { + static function () { return 'siteLocale'; } ); @@ -167,7 +167,7 @@ static function() { public function test_wp_login_get_param_not_on_login_page() { add_filter( 'locale', - static function() { + static function () { return 'siteLocale'; } ); @@ -182,7 +182,7 @@ static function() { public function test_wp_login_get_param_on_login_page() { add_filter( 'locale', - static function() { + static function () { return 'siteLocale'; } ); @@ -198,7 +198,7 @@ static function() { public function test_wp_login_get_param_on_login_page_empty_string() { add_filter( 'locale', - static function() { + static function () { return 'siteLocale'; } ); @@ -214,7 +214,7 @@ static function() { public function test_wp_login_get_param_on_login_page_incorrect_string() { add_filter( 'locale', - static function() { + static function () { return 'siteLocale'; } ); @@ -230,7 +230,7 @@ static function() { public function test_wp_login_cookie_not_on_login_page() { add_filter( 'locale', - static function() { + static function () { return 'siteLocale'; } ); @@ -245,7 +245,7 @@ static function() { public function test_wp_login_cookie_on_login_page() { add_filter( 'locale', - static function() { + static function () { return 'siteLocale'; } ); @@ -261,7 +261,7 @@ static function() { public function test_wp_login_cookie_on_login_page_empty_string() { add_filter( 'locale', - static function() { + static function () { return 'siteLocale'; } ); diff --git a/tests/phpunit/tests/l10n/getLocale.php b/tests/phpunit/tests/l10n/getLocale.php index 5044e6ea87bab..1f16448318cf1 100644 --- a/tests/phpunit/tests/l10n/getLocale.php +++ b/tests/phpunit/tests/l10n/getLocale.php @@ -74,7 +74,6 @@ public function test_option_should_be_respected_on_nonmultisite() { $locale = $old_locale; $this->assertSame( 'es_ES', $found ); - } public function test_should_fall_back_on_en_US() { diff --git a/tests/phpunit/tests/link/editTermLink.php b/tests/phpunit/tests/link/editTermLink.php index 3128ddfe0eb09..2e0145e5967c2 100644 --- a/tests/phpunit/tests/link/editTermLink.php +++ b/tests/phpunit/tests/link/editTermLink.php @@ -101,7 +101,7 @@ public function test_edit_term_link_filter_should_receive_term_id( $taxonomy, $u add_filter( 'edit_term_link', - function( $location, $term ) { + function ( $location, $term ) { $this->assertIsInt( $term ); }, 10, diff --git a/tests/phpunit/tests/link/getEditTermLink.php b/tests/phpunit/tests/link/getEditTermLink.php index 2df1aa7aac111..d0303f1b1a403 100644 --- a/tests/phpunit/tests/link/getEditTermLink.php +++ b/tests/phpunit/tests/link/getEditTermLink.php @@ -187,7 +187,7 @@ public function test_get_edit_term_link_filter_should_receive_term_id( $taxonomy add_filter( 'get_edit_term_link', - function( $location, $term ) { + function ( $location, $term ) { $this->assertIsInt( $term ); }, 10, diff --git a/tests/phpunit/tests/link/getNextCommentsLink.php b/tests/phpunit/tests/link/getNextCommentsLink.php index 459ad9d176fde..fc18dc3f4c627 100644 --- a/tests/phpunit/tests/link/getNextCommentsLink.php +++ b/tests/phpunit/tests/link/getNextCommentsLink.php @@ -37,5 +37,4 @@ public function test_page_should_default_to_1_when_no_cpage_query_var_is_found() set_query_var( 'cpage', $cpage ); } - } diff --git a/tests/phpunit/tests/link/getPostPermalink.php b/tests/phpunit/tests/link/getPostPermalink.php index 16d1da0beacdd..fa36e8bfea7cc 100644 --- a/tests/phpunit/tests/link/getPostPermalink.php +++ b/tests/phpunit/tests/link/getPostPermalink.php @@ -14,5 +14,4 @@ public function test_get_post_permalink_should_return_string_on_success() { public function test_get_post_permalink_should_return_false_for_non_existing_post() { $this->assertFalse( get_post_permalink( -1 ) ); } - } diff --git a/tests/phpunit/tests/link/getPreviewPostLink.php b/tests/phpunit/tests/link/getPreviewPostLink.php index a689cb31f397e..ce4dcf2c4a432 100644 --- a/tests/phpunit/tests/link/getPreviewPostLink.php +++ b/tests/phpunit/tests/link/getPreviewPostLink.php @@ -83,5 +83,4 @@ public function test_get_preview_post_link_should_return_empty_string_for_non_vi $this->assertSame( '', get_preview_post_link( $post ) ); } - } diff --git a/tests/phpunit/tests/link/getPreviousCommentsLink.php b/tests/phpunit/tests/link/getPreviousCommentsLink.php index cda521a204569..596a6eaca0ed1 100644 --- a/tests/phpunit/tests/link/getPreviousCommentsLink.php +++ b/tests/phpunit/tests/link/getPreviousCommentsLink.php @@ -35,5 +35,4 @@ public function test_page_should_default_to_1_when_no_cpage_query_var_is_found() set_query_var( 'cpage', $cpage ); } - } diff --git a/tests/phpunit/tests/link/getThePostsNavigation.php b/tests/phpunit/tests/link/getThePostsNavigation.php index 83c262d911bae..d7d3846b9a1fd 100644 --- a/tests/phpunit/tests/link/getThePostsNavigation.php +++ b/tests/phpunit/tests/link/getThePostsNavigation.php @@ -104,5 +104,4 @@ public function data_get_the_posts_navigation() { ), ); } - } diff --git a/tests/phpunit/tests/link/themeFile.php b/tests/phpunit/tests/link/themeFile.php index f988dc100621f..5d8fe66442238 100644 --- a/tests/phpunit/tests/link/themeFile.php +++ b/tests/phpunit/tests/link/themeFile.php @@ -129,7 +129,6 @@ public function test_theme_file_existance( $file, $expected_theme, $existence ) } else { $this->assertFileDoesNotExist( WP_CONTENT_DIR . "/themes/theme-file-parent/{$file}" ); } - } /** @@ -182,5 +181,4 @@ public function data_theme_files() { ), ); } - } diff --git a/tests/phpunit/tests/media.php b/tests/phpunit/tests/media.php index 54ac0b71b5158..1ef1b93d4e91a 100644 --- a/tests/phpunit/tests/media.php +++ b/tests/phpunit/tests/media.php @@ -202,7 +202,6 @@ public function test_img_caption_shortcode_with_old_format_and_class() { ) ); $this->assertSame( 1, substr_count( $result, 'wp-caption alignnone some-class another-class' ) ); - } public function test_new_img_caption_shortcode_with_html_caption() { @@ -553,8 +552,8 @@ public function test_post_galleries_images() { $ids2_srcs[] = 'http://' . WP_TESTS_DOMAIN . '/wp-content/uploads/' . "image$i.jpg"; } - $ids1_joined = join( ',', array_slice( $ids1, 0, 3 ) ); - $ids2_joined = join( ',', array_slice( $ids2, 3, 3 ) ); + $ids1_joined = implode( ',', array_slice( $ids1, 0, 3 ) ); + $ids2_joined = implode( ',', array_slice( $ids2, 3, 3 ) ); $blob = <<'; } - $imgs1_joined = join( "\n", array_slice( $imgs, 0, 3 ) ); - $imgs2_joined = join( "\n", array_slice( $imgs, 3, 3 ) ); + $imgs1_joined = implode( "\n", array_slice( $imgs, 0, 3 ) ); + $imgs2_joined = implode( "\n", array_slice( $imgs, 3, 3 ) ); $blob = << @@ -678,8 +677,8 @@ public function test_block_post_gallery_images_json() { } - $ids1_joined = join( ',', array_slice( $ids, 0, 3 ) ); - $ids2_joined = join( ',', array_slice( $ids, 3, 3 ) ); + $ids1_joined = implode( ',', array_slice( $ids, 0, 3 ) ); + $ids2_joined = implode( ',', array_slice( $ids, 3, 3 ) ); $blob = << @@ -719,9 +718,9 @@ public function test_mixed_post_gallery_images() { $imgs[] = '
'; } - $ids1_joined = join( "\n", array_slice( $ids, 0, 3 ) ); - $ids2_joined = join( "\n", array_slice( $ids, 3, 3 ) ); - $imgs2_joined = join( "\n", array_slice( $imgs, 3, 3 ) ); + $ids1_joined = implode( "\n", array_slice( $ids, 0, 3 ) ); + $ids2_joined = implode( "\n", array_slice( $ids, 3, 3 ) ); + $imgs2_joined = implode( "\n", array_slice( $imgs, 3, 3 ) ); $blob = << @@ -806,7 +805,7 @@ public function test_block_post_gallery_innerblock_images() { } - $imgs_joined = join( "\n", $imgs ); + $imgs_joined = implode( "\n", $imgs ); $blob = << @@ -1743,7 +1742,6 @@ public function test_wp_calculate_image_srcset_no_date_uploads() { $expected_srcset = $this->src_first( $_expected, $image_url, $size_array[0] ); $this->assertSame( $expected_srcset, wp_calculate_image_srcset( $size_array, $image_url, $image_meta ) ); } - } /** @@ -2359,7 +2357,7 @@ public function test_wp_filter_content_tags_filter_with_identical_image_tags_cus add_filter( 'wp_content_img_tag', - static function( $filtered_image ) { + static function ( $filtered_image ) { return "$filtered_image"; } ); @@ -2383,7 +2381,7 @@ public function test_wp_filter_content_tags_filter_with_identical_image_tags_dis add_filter( 'wp_content_img_tag', - static function( $filtered_image ) { + static function ( $filtered_image ) { return "$filtered_image"; } ); @@ -4022,7 +4020,7 @@ public function test_wp_filter_content_tags_does_not_lazy_load_first_featured_im add_filter( 'wp_img_tag_add_decoding_attr', '__return_false' ); add_filter( 'wp_get_attachment_image_attributes', - static function( $attr ) { + static function ( $attr ) { unset( $attr['srcset'], $attr['sizes'], $attr['decoding'] ); return $attr; } @@ -4156,7 +4154,7 @@ public function test_wp_filter_content_tags_does_not_apply_loading_optimization_ // Overwrite post content with an image. add_filter( 'the_content', - static function() use ( &$image_within_content ) { + static function () use ( &$image_within_content ) { // Replace content with an image tag, i.e. the 'wp_get_attachment_image' context is used while running 'the_content' filter. $image_within_content = wp_get_attachment_image( self::$large_id, 'large', false ); return $image_within_content; @@ -4223,7 +4221,7 @@ public function test_wp_get_loading_attr_default_should_return_false_for_special $result = null; add_filter( 'the_content', - static function( $content ) use ( &$result, $context ) { + static function ( $content ) use ( &$result, $context ) { $result = wp_get_loading_attr_default( $context ); return $content; } @@ -4303,15 +4301,6 @@ public function test_wp_get_loading_optimization_attributes( $context ) { // Set as main query. $this->set_main_query( $query ); - /* - * For contexts other than for the main content, still return 'lazy' even in the loop - * and in the main query, and do not increase the content media count. - */ - $this->assertSame( - array( 'loading' => 'lazy' ), - wp_get_loading_optimization_attributes( 'img', $attr, 'wp_get_attachment_image' ) - ); - // First three element are not lazy loaded. However, first image is loaded with fetchpriority high. $this->assertSame( array( 'fetchpriority' => 'high' ), @@ -4341,6 +4330,184 @@ public function test_wp_get_loading_optimization_attributes( $context ) { } } + /** + * Tests that wp_get_loading_optimization_attributes() returns fetchpriority=high and increases the count for arbitrary contexts in the main loop. + * + * @ticket 58894 + * + * @covers ::wp_get_loading_optimization_attributes + * + * @dataProvider data_wp_get_loading_optimization_attributes_arbitrary_contexts + * + * @param string $context Context for the element for which the loading optimization attribute is requested. + */ + public function test_wp_get_loading_optimization_attributes_with_arbitrary_contexts_in_main_loop( $context ) { + $attr = $this->get_width_height_for_high_priority(); + + $this->assertSame( + array( 'loading' => 'lazy' ), + wp_get_loading_optimization_attributes( 'img', $attr, $context ), + 'The "loading" attribute should be "lazy" when not in the loop or the main query.' + ); + + $query = $this->get_new_wp_query_for_published_post(); + + // Set as main query. + $this->set_main_query( $query ); + + while ( have_posts() ) { + the_post(); + + $this->assertSame( + array( 'fetchpriority' => 'high' ), + wp_get_loading_optimization_attributes( 'img', $attr, $context ), + 'The "fetchpriority" attribute should be "high" while in the loop and the main query.' + ); + + // Images with a certain minimum size in the arbitrary contexts of the page are also counted towards the threshold. + $this->assertSame( 1, wp_increase_content_media_count( 0 ), 'The content media count should be 1.' ); + } + } + + /** + * Tests that wp_get_loading_optimization_attributes() does not return lazy loading attributes when arbitrary contexts are used before the main query loop. + * + * @ticket 58894 + * + * @covers ::wp_get_loading_optimization_attributes + * + * @dataProvider data_wp_get_loading_optimization_attributes_arbitrary_contexts + * + * @param string $context Context for the element for which the loading optimization attribute is requested. + */ + public function test_wp_get_loading_optimization_attributes_with_arbitrary_contexts_before_main_query_loop( $context ) { + $attr = $this->get_width_height_for_high_priority(); + + $query = $this->get_new_wp_query_for_published_post(); + + // Set as main query. + $this->set_main_query( $query ); + + $this->assertSame( + array( 'loading' => 'lazy' ), + wp_get_loading_optimization_attributes( 'img', $attr, $context ), + 'The "loading" attribute should be "lazy" before the main query loop.' + ); + + while ( have_posts() ) { + the_post(); + + $this->assertSame( + array( 'fetchpriority' => 'high' ), + wp_get_loading_optimization_attributes( 'img', $attr, $context ), + 'The "fetchpriority" attribute should be "high" while in the loop and the main query.' + ); + + $this->assertArrayNotHasKey( + 'loading', + wp_get_loading_optimization_attributes( 'img', $attr, $context ), + 'No "loading" attribute should be present on the second image in the main query loop.' + ); + } + } + + /** + * Data provider. + * + * @return array[] + */ + public function data_wp_get_loading_optimization_attributes_arbitrary_contexts() { + return array( + array( 'wp_get_attachment_image' ), + array( 'something_completely_arbitrary' ), + ); + } + + /** + * Tests that wp_get_loading_optimization_attributes() returns empty array for arbitrary context. + * + * @ticket 58894 + * + * @covers ::wp_get_loading_optimization_attributes + */ + public function test_wp_get_loading_optimization_attributes_should_return_empty_array_for_any_arbitrary_context() { + remove_all_filters( 'the_content' ); + + $result = null; + add_filter( + 'the_content', + function( $content ) use ( &$result ) { + $attr = $this->get_width_height_for_high_priority(); + $result = wp_get_loading_optimization_attributes( 'img', $attr, 'something_completely_arbitrary' ); + return $content; + } + ); + apply_filters( 'the_content', '' ); + + $this->assertSame( array(), $result ); + } + + /** + * @ticket 58894 + * + * @covers ::wp_get_loading_optimization_attributes + * + * @dataProvider data_wp_get_loading_optimization_attributes_header_context + * + * @param string $context The context for the header. + */ + public function test_wp_get_loading_optimization_attributes_header_contexts( $context ) { + $attr = $this->get_width_height_for_high_priority(); + + $this->assertArrayNotHasKey( + 'loading', + wp_get_loading_optimization_attributes( 'img', $attr, $context ), + 'Images in the header context should not be lazy-loaded.' + ); + + add_filter( 'wp_loading_optimization_force_header_contexts', '__return_empty_array' ); + + $this->assertSame( + array( 'loading' => 'lazy' ), + wp_get_loading_optimization_attributes( 'img', $attr, $context ), + 'Images in the header context should get lazy-loaded after the wp_loading_optimization_force_header_contexts filter.' + ); + } + + /** + * Data provider. + * + * @return array[] + */ + public function data_wp_get_loading_optimization_attributes_header_context() { + return array( + array( 'template_part_' . WP_TEMPLATE_PART_AREA_HEADER ), + array( 'get_header_image_tag' ), + ); + } + + /** + * @ticket 58894 + * + * @covers ::wp_get_loading_optimization_attributes + */ + public function test_wp_loading_optimization_force_header_contexts_filter() { + $attr = $this->get_width_height_for_high_priority(); + + add_filter( + 'wp_loading_optimization_force_header_contexts', + function( $context ) { + $contexts['something_completely_arbitrary'] = true; + return $contexts; + } + ); + + $this->assertSame( + array( 'fetchpriority' => 'high' ), + wp_get_loading_optimization_attributes( 'img', $attr, 'something_completely_arbitrary' ) + ); + } + /** * Tests that wp_get_loading_optimization_attributes() returns the expected loading attribute value before loop but after get_header if not main query. * @@ -4525,7 +4692,7 @@ public function test_wp_get_loading_optimization_attributes_should_not_modify_im $result = null; add_filter( 'the_content', - function( $content ) use ( &$result, $context ) { + function ( $content ) use ( &$result, $context ) { $attr = $this->get_width_height_for_high_priority(); $result = wp_get_loading_optimization_attributes( 'img', $attr, $context ); return $content; @@ -4807,7 +4974,7 @@ public function test_wp_get_attachment_image_context_filter_value_is_passed_corr // Add a filter that modifies the context. add_filter( 'wp_get_attachment_image_context', - static function() { + static function () { return 'my_custom_context'; } ); @@ -5210,7 +5377,7 @@ public function test_wp_maybe_add_fetchpriority_high_attr_min_priority_filter() add_filter( 'wp_min_priority_img_pixels', - static function( $res ) { + static function ( $res ) { return 2500; // 50*50=2500 } ); @@ -5283,7 +5450,7 @@ public function test_wp_get_loading_optimization_attributes_image_before_loop_in private function track_last_attachment_image_context( &$last_context ) { add_filter( 'wp_get_attachment_image_context', - static function( $context ) use ( &$last_context ) { + static function ( $context ) use ( &$last_context ) { $last_context = $context; return $context; }, @@ -5338,7 +5505,7 @@ public function image_editor_change_quality_low_jpeg( $quality, $mime_type ) { public function force_omit_loading_attr_threshold( $threshold ) { add_filter( 'wp_omit_loading_attr_threshold', - static function() use ( $threshold ) { + static function () use ( $threshold ) { return $threshold; } ); diff --git a/tests/phpunit/tests/media/getPostGalleries.php b/tests/phpunit/tests/media/getPostGalleries.php index 363fea8149603..1ba21013e19a9 100644 --- a/tests/phpunit/tests/media/getPostGalleries.php +++ b/tests/phpunit/tests/media/getPostGalleries.php @@ -575,7 +575,7 @@ public function test_respects_post_id_with_block_gallery() { } - $ids_joined = join( ',', $ids ); + $ids_joined = implode( ',', $ids ); $global_post_id = self::factory()->post->create( array( @@ -844,8 +844,8 @@ public function test_respects_shortcode_and_block_id_attributes() { } - $ids1_joined = join( ',', array_slice( $ids, 0, 3 ) ); - $ids2_joined = join( ',', array_slice( $ids, 3, 3 ) ); + $ids1_joined = implode( ',', array_slice( $ids, 0, 3 ) ); + $ids2_joined = implode( ',', array_slice( $ids, 3, 3 ) ); $blob = <<assertSame( $value, $meta_value ); - } /** diff --git a/tests/phpunit/tests/meta/updateMetadata.php b/tests/phpunit/tests/meta/updateMetadata.php index 7f5aff32cdb34..355e53f160ce6 100644 --- a/tests/phpunit/tests/meta/updateMetadata.php +++ b/tests/phpunit/tests/meta/updateMetadata.php @@ -105,5 +105,4 @@ public function test_clear_post_metadata_caches() { $found = get_metadata( 'post', $post_id, 'key', true ); $this->assertSame( 'value2', $found ); } - } diff --git a/tests/phpunit/tests/multisite/getIdFromBlogname.php b/tests/phpunit/tests/multisite/getIdFromBlogname.php index 49b4bf6f85c49..63f8ab79e7df5 100644 --- a/tests/phpunit/tests/multisite/getIdFromBlogname.php +++ b/tests/phpunit/tests/multisite/getIdFromBlogname.php @@ -136,7 +136,6 @@ public function test_get_id_from_blogname_invalid_slug() { $this->assertNull( $result ); } - } endif; diff --git a/tests/phpunit/tests/multisite/getSite.php b/tests/phpunit/tests/multisite/getSite.php index 46a5121247fd9..c87f99649caee 100644 --- a/tests/phpunit/tests/multisite/getSite.php +++ b/tests/phpunit/tests/multisite/getSite.php @@ -47,7 +47,6 @@ public function test_get_site_in_switched_state_returns_switched_site() { $this->assertSame( self::$site_ids['wordpress.org/foo/'], $site->id ); } - } endif; diff --git a/tests/phpunit/tests/multisite/network.php b/tests/phpunit/tests/multisite/network.php index db1f35b6d0466..c7fb78e54778f 100644 --- a/tests/phpunit/tests/multisite/network.php +++ b/tests/phpunit/tests/multisite/network.php @@ -267,7 +267,7 @@ public function test_is_plugin_active_for_network_false() { } public function helper_deactivate_hook() { - $this->plugin_hook_count++; + ++$this->plugin_hook_count; } public function test_wp_schedule_update_network_counts() { diff --git a/tests/phpunit/tests/multisite/site.php b/tests/phpunit/tests/multisite/site.php index 2bcfd89f33a3a..aa04499105464 100644 --- a/tests/phpunit/tests/multisite/site.php +++ b/tests/phpunit/tests/multisite/site.php @@ -422,7 +422,7 @@ public function test_wpmu_update_blogs_date() { public function test_get_blog_details_when_site_does_not_exist() { // Create an unused site so that we can then assume an invalid site ID. $blog_id = self::factory()->blog->create(); - $blog_id++; + ++$blog_id; // Prime the cache for an invalid site. get_blog_details( $blog_id ); @@ -1162,7 +1162,6 @@ public function test_wp_insert_site_with_clean_site_cache() { remove_action( 'clean_site_cache', array( $this, 'action_database_insert_on_clean_site_cache' ) ); $this->assertIsInt( $site_id ); - } public function action_database_insert_on_clean_site_cache() { @@ -2194,7 +2193,6 @@ public function test_get_site_not_found_cache_clear() { $fetched_site = get_site( $new_site_id ); $this->assertInstanceOf( 'WP_Site', $fetched_site ); $this->assertEquals( $new_site_id, $fetched_site->blog_id ); - } /** diff --git a/tests/phpunit/tests/multisite/updateBlogDetails.php b/tests/phpunit/tests/multisite/updateBlogDetails.php index d3249a126165d..d53c2f8c2bdec 100644 --- a/tests/phpunit/tests/multisite/updateBlogDetails.php +++ b/tests/phpunit/tests/multisite/updateBlogDetails.php @@ -127,6 +127,5 @@ public function data_single_directory_path() { array( 'multiple///dirs', '/multiple///dirs/' ), ); } - } endif; diff --git a/tests/phpunit/tests/oembed/controller.php b/tests/phpunit/tests/oembed/controller.php index 238b1faf1fa49..821eeac7e3ab5 100644 --- a/tests/phpunit/tests/oembed/controller.php +++ b/tests/phpunit/tests/oembed/controller.php @@ -171,7 +171,7 @@ public function filter_oembed_result( $data, $url, $args ) { } $this->assertIsString( $url ); $this->assertIsArray( $args ); - $this->oembed_result_filter_count++; + ++$this->oembed_result_filter_count; return $data; } diff --git a/tests/phpunit/tests/option/getOptions.php b/tests/phpunit/tests/option/getOptions.php new file mode 100644 index 0000000000000..7435dce1882d1 --- /dev/null +++ b/tests/phpunit/tests/option/getOptions.php @@ -0,0 +1,91 @@ +assertFalse( wp_cache_get( $option, 'options' ), "$option was not deleted from the cache." ); + } + + // Call the get_options function to retrieve the options. + $options = get_options( array( 'option1', 'option2' ) ); + + // Check that options are now in the cache. + foreach ( $options_to_prime as $option ) { + $this->assertSame( wp_cache_get( $option, 'options' ), get_option( $option ), "$option was not primed." ); + } + + // Check that the retrieved options are correct. + $this->assertSame( get_option( 'option1' ), $options['option1'], 'Retrieved option1 does not match expected value.' ); + $this->assertSame( get_option( 'option2' ), $options['option2'], 'Retrieved option2 does not match expected value.' ); + } + + /** + * Tests get_options() with an empty input array. + * + * @ticket 58962 + */ + public function test_get_options_with_empty_array() { + // Call the get_options function with an empty array. + $options = get_options( array() ); + + // Make sure the result is an empty array. + $this->assertIsArray( $options, 'An array should have been returned.' ); + $this->assertEmpty( $options, 'No options should have been returned.' ); + } + + /** + * Tests get_options() with options that include some nonexistent options. + */ + public function test_get_options_with_nonexistent_options() { + // Create some options to prime. + $options_to_prime = array( + 'option1', + ); + + // Make sure options are not in cache or database initially. + $this->assertFalse( wp_cache_get( 'option1', 'options' ), 'option1 was not deleted from the cache.' ); + $this->assertFalse( wp_cache_get( 'nonexistent_option', 'options' ), 'nonexistent_option was not deleted from the cache.' ); + + // Call the get_options function with an array that includes a nonexistent option. + $options = get_options( array( 'option1', 'nonexistent_option' ) ); + + // Check that the retrieved options are correct. + $this->assertSame( get_option( 'option1' ), $options['option1'], 'Retrieved option1 does not match expected value.' ); + + // Check that options are present in the notoptions cache. + $new_notoptions = wp_cache_get( 'notoptions', 'options' ); + foreach ( $options_to_prime as $option ) { + $this->assertTrue( isset( $new_notoptions[ $option ] ), "$option was not added to the notoptions cache." ); + } + + // Check that the nonexistent option is in the result array. + $this->assertArrayHasKey( 'nonexistent_option', $options, 'Result array should not contain nonexistent_option.' ); + + $this->assertFalse( $options['nonexistent_option'], 'nonexistent_option is present in option.' ); + } +} diff --git a/tests/phpunit/tests/option/option.php b/tests/phpunit/tests/option/option.php index d510528e07d71..a16a6431d9de9 100644 --- a/tests/phpunit/tests/option/option.php +++ b/tests/phpunit/tests/option/option.php @@ -100,6 +100,62 @@ public function test_get_option_should_call_pre_option_filter() { $this->assertSame( 1, $filter->get_call_count() ); } + /** + * @ticket 58277 + * + * @covers ::get_option + */ + public function test_get_option_notoptions_cache() { + $notoptions = array( + 'invalid' => true, + ); + wp_cache_set( 'notoptions', $notoptions, 'options' ); + + $before = get_num_queries(); + $value = get_option( 'invalid' ); + $after = get_num_queries(); + + $this->assertSame( 0, $after - $before ); + } + + /** + * @ticket 58277 + * + * @covers ::get_option + */ + public function test_get_option_notoptions_set_cache() { + get_option( 'invalid' ); + + $before = get_num_queries(); + $value = get_option( 'invalid' ); + $after = get_num_queries(); + + $notoptions = wp_cache_get( 'notoptions', 'options' ); + + $this->assertSame( 0, $after - $before, 'The notoptions cache was not hit on the second call to `get_option()`.' ); + $this->assertIsArray( $notoptions, 'The notoptions cache should be set.' ); + $this->assertArrayHasKey( 'invalid', $notoptions, 'The "invalid" option should be in the notoptions cache.' ); + } + + /** + * @ticket 58277 + * + * @covers ::get_option + */ + public function test_get_option_notoptions_do_not_load_cache() { + add_option( 'foo', 'bar', '', 'no' ); + wp_cache_delete( 'notoptions', 'options' ); + + $before = get_num_queries(); + $value = get_option( 'foo' ); + $after = get_num_queries(); + + $notoptions = wp_cache_get( 'notoptions', 'options' ); + + $this->assertSame( 0, $after - $before, 'The options cache was not hit on the second call to `get_option()`.' ); + $this->assertFalse( $notoptions, 'The notoptions cache should not be set.' ); + } + /** * @covers ::get_option * @covers ::add_option diff --git a/tests/phpunit/tests/option/primeOptions.php b/tests/phpunit/tests/option/primeOptions.php new file mode 100644 index 0000000000000..6798d33f04d1d --- /dev/null +++ b/tests/phpunit/tests/option/primeOptions.php @@ -0,0 +1,130 @@ +assertFalse( wp_cache_get( $option, 'options' ), "$option was not deleted from the cache." ); + } + + // Call the prime_options function to prime the options. + prime_options( $options_to_prime ); + + // Store the initial database query count. + $initial_query_count = get_num_queries(); + + // Check that options are only in the 'options' cache group. + foreach ( $options_to_prime as $option ) { + $this->assertSame( + wp_cache_get( $option, 'options' ), + get_option( $option ), + "$option was not primed to the 'options' cache group." + ); + + $this->assertFalse( + wp_cache_get( $option, 'notoptions' ), + get_option( $option ), + "$option was primed to the 'notoptions' cache group." + ); + } + + // Ensure no additional database queries were made. + $this->assertSame( + $initial_query_count, + get_num_queries(), + 'Additional database queries were made.' + ); + } + + /** + * Tests prime_options() with options that do not exist in the database. + * + * @ticket 58962 + */ + public function test_prime_options_with_nonexistent_options() { + // Create some options to prime. + $options_to_prime = array( + 'option1', + 'option2', + ); + + /* + * Set values for the options, + * clear the cache for the options, + * check options are not in cache initially. + */ + foreach ( $options_to_prime as $option ) { + $this->assertFalse( wp_cache_get( $option, 'options' ), "$option was not deleted from the cache." ); + } + + // Call the prime_options function to prime the options. + prime_options( $options_to_prime ); + + // Check that options are not in the cache or database. + foreach ( $options_to_prime as $option ) { + $this->assertFalse( wp_cache_get( $option, 'options' ), "$option was not deleted from the cache." ); + } + + // Check that options are present in the notoptions cache. + $new_notoptions = wp_cache_get( 'notoptions', 'options' ); + $this->assertIsArray( $new_notoptions, 'The notoptions cache should be an array.' ); + foreach ( $options_to_prime as $option ) { + $this->assertArrayHasKey( $option, $new_notoptions, "$option was not added to the notoptions cache." ); + } + } + + /** + * Tests prime_options() with an empty array. + * + * @ticket 58962 + */ + public function test_prime_options_with_empty_array() { + $alloptions = wp_load_alloptions(); + $notoptions = wp_cache_get( 'notoptions', 'options' ); + + prime_options( array() ); + + $this->assertSame( $alloptions, wp_cache_get( 'alloptions', 'options' ), 'The alloptions cache was modified.' ); + $this->assertSame( $notoptions, wp_cache_get( 'notoptions', 'options' ), 'The notoptions cache was modified.' ); + } + + /** + * Tests that prime_options handles an empty "notoptions" cache. + * + * @ticket 58962 + */ + public function test_prime_options_handles_empty_notoptions_cache() { + wp_cache_delete( 'notoptions', 'options' ); + + prime_options( array( 'nonexistent_option' ) ); + + $notoptions = wp_cache_get( 'notoptions', 'options' ); + $this->assertIsArray( $notoptions, 'The notoptions cache should be an array.' ); + $this->assertArrayHasKey( 'nonexistent_option', $notoptions, 'nonexistent_option was not added to notoptions.' ); + } +} diff --git a/tests/phpunit/tests/option/primeOptionsByGroup.php b/tests/phpunit/tests/option/primeOptionsByGroup.php new file mode 100644 index 0000000000000..9d6819664c1bc --- /dev/null +++ b/tests/phpunit/tests/option/primeOptionsByGroup.php @@ -0,0 +1,75 @@ + array( + 'option1', + 'option2', + ), + 'group2' => array( + 'option3', + ), + ); + + $options_to_prime = array( + 'option1', + 'option2', + 'option3', + ); + + /* + * Set values for the options, + * clear the cache for the options, + * check options are not in cache initially. + */ + foreach ( $options_to_prime as $option ) { + update_option( $option, "value_$option", false ); + wp_cache_delete( $option, 'options' ); + $this->assertFalse( wp_cache_get( $option, 'options' ), "$option was not deleted from the cache." ); + } + + // Call the prime_options_by_group function to prime the options. + prime_options_by_group( 'group1' ); + + // Check that options are now in the cache. + $this->assertSame( get_option( 'option1' ), wp_cache_get( 'option1', 'options' ), 'option1 was not primed.' ); + $this->assertSame( get_option( 'option2' ), wp_cache_get( 'option2', 'options' ), 'option2 was not primed.' ); + + // Make sure option3 is still not in cache. + $this->assertFalse( wp_cache_get( 'option3', 'options' ), 'option3 was not deleted from the cache.' ); + } + + /** + * Tests prime_options_by_group() with a nonexistent option group. + * + * @ticket 58962 + */ + public function test_prime_options_by_group_with_nonexistent_group() { + // Make sure options are not in cache or database initially. + $this->assertFalse( wp_cache_get( 'option1', 'options' ), 'option1 was not deleted from the cache.' ); + $this->assertFalse( wp_cache_get( 'option2', 'options' ), 'option2 was not deleted from the cache.' ); + + // Call the prime_options_by_group function with a nonexistent group. + prime_options_by_group( 'nonexistent_group' ); + + // Check that options are still not in the cache or database. + $this->assertFalse( wp_cache_get( 'option1', 'options' ), 'option1 was not deleted from the cache.' ); + $this->assertFalse( wp_cache_get( 'option2', 'options' ), 'option2 was not deleted from the cache.' ); + } +} diff --git a/tests/phpunit/tests/option/sanitizeOption.php b/tests/phpunit/tests/option/sanitizeOption.php index 38fdda1a2187f..b4f8293041e3f 100644 --- a/tests/phpunit/tests/option/sanitizeOption.php +++ b/tests/phpunit/tests/option/sanitizeOption.php @@ -174,5 +174,4 @@ public function data_sanitize_option_permalink_structure() { array( new WP_Error( 'wpdb_get_table_charset_failure' ), false, false ), // @ticket 53986 ); } - } diff --git a/tests/phpunit/tests/option/themeMods.php b/tests/phpunit/tests/option/themeMods.php index b062554a2c4a8..379d7887f656c 100644 --- a/tests/phpunit/tests/option/themeMods.php +++ b/tests/phpunit/tests/option/themeMods.php @@ -129,5 +129,4 @@ public function data_theme_mod_default_value_with_percent_symbols() { ), ); } - } diff --git a/tests/phpunit/tests/option/wpSetOptionAutoload.php b/tests/phpunit/tests/option/wpSetOptionAutoload.php new file mode 100644 index 0000000000000..8736005e32118 --- /dev/null +++ b/tests/phpunit/tests/option/wpSetOptionAutoload.php @@ -0,0 +1,114 @@ +assertTrue( wp_set_option_autoload( $option, 'yes' ), 'Function did not succeed' ); + $this->assertSame( 'yes', $wpdb->get_var( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name = %s", $option ) ), 'Option autoload value not updated in database' ); + $this->assertFalse( wp_cache_get( $option, 'options' ), 'Option not deleted from individual cache' ); + $this->assertFalse( wp_cache_get( 'alloptions', 'options' ), 'Alloptions cache not cleared' ); + } + + /** + * Tests that setting an option's autoload value to 'no' works as expected. + * + * @ticket 58964 + */ + public function test_wp_set_option_autoload_no() { + global $wpdb; + + $option = 'test_option'; + $value = 'value'; + + add_option( $option, $value, '', 'yes' ); + + $this->assertTrue( wp_set_option_autoload( $option, 'no' ), 'Function did not succeed' ); + $this->assertSame( 'no', $wpdb->get_var( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name = %s", $option ) ), 'Option autoload value not updated in database' ); + $this->assertArrayNotHasKey( $option, wp_cache_get( 'alloptions', 'options' ), 'Option not deleted from alloptions cache' ); + } + + /** + * Tests that setting an option's autoload value to the same value as prior works as expected. + * + * @ticket 58964 + */ + public function test_wp_set_option_autoload_same() { + global $wpdb; + + $option = 'test_option'; + $value = 'value'; + + add_option( $option, $value, '', 'yes' ); + + $this->assertFalse( wp_set_option_autoload( $option, 'yes' ), 'Function did unexpectedly succeed' ); + $this->assertSame( 'yes', $wpdb->get_var( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name = %s", $option ) ), 'Option autoload value unexpectedly updated in database' ); + } + + /** + * Tests that setting a missing option's autoload value does not do anything. + * + * @ticket 58964 + */ + public function test_wp_set_option_autoload_missing() { + global $wpdb; + + $option = 'test_option'; + + $this->assertFalse( wp_set_option_autoload( $option, 'yes' ), 'Function did unexpectedly succeed' ); + $this->assertNull( $wpdb->get_var( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name = %s", $option ) ), 'Missing option autoload value was set in database' ); + $this->assertArrayNotHasKey( $option, wp_cache_get( 'alloptions', 'options' ), 'Missing option found in alloptions cache' ); + $this->assertFalse( wp_cache_get( $option, 'options' ), 'Missing option found in individual cache' ); + } + + /** + * Tests setting an option's autoload value to boolean true. + * + * @ticket 58964 + */ + public function test_wp_set_option_autoload_true() { + global $wpdb; + + $option = 'test_option'; + $value = 'value'; + + add_option( $option, $value, '', false ); + + $this->assertTrue( wp_set_option_autoload( $option, true ), 'Function did not succeed' ); + $this->assertSame( 'yes', $wpdb->get_var( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name = %s", $option ) ), 'Option autoload value not updated in database' ); + } + + /** + * Tests setting an option's autoload value to boolean false. + * + * @ticket 58964 + */ + public function test_wp_set_option_autoload_false() { + global $wpdb; + + $option = 'test_option'; + $value = 'value'; + + add_option( $option, $value, '', true ); + + $this->assertTrue( wp_set_option_autoload( $option, false ), 'Function did not succeed' ); + $this->assertSame( 'no', $wpdb->get_var( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name = %s", $option ) ), 'Option autoload value not updated in database' ); + } +} diff --git a/tests/phpunit/tests/option/wpSetOptionAutoloadValues.php b/tests/phpunit/tests/option/wpSetOptionAutoloadValues.php new file mode 100644 index 0000000000000..f474bd1093b3a --- /dev/null +++ b/tests/phpunit/tests/option/wpSetOptionAutoloadValues.php @@ -0,0 +1,240 @@ + 'yes', + 'test_option2' => 'yes', + ); + add_option( 'test_option1', 'value1', '', 'yes' ); + add_option( 'test_option2', 'value2', '', 'no' ); + $expected = array( + 'test_option1' => false, + 'test_option2' => true, + ); + + $num_queries = get_num_queries(); + $this->assertSame( $expected, wp_set_option_autoload_values( $options ), 'Function produced unexpected result' ); + $this->assertSame( $num_queries + 2, get_num_queries(), 'Function made unexpected amount of database queries' ); + $this->assertSame( array( 'yes', 'yes' ), $wpdb->get_col( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name IN (" . implode( ',', array_fill( 0, count( $options ), '%s' ) ) . ')', ...array_keys( $options ) ) ), 'Option autoload values not updated in database' ); + foreach ( $options as $option => $autoload ) { + $this->assertFalse( wp_cache_get( $option, 'options' ), sprintf( 'Option %s not deleted from individual cache', $option ) ); + } + $this->assertFalse( wp_cache_get( 'alloptions', 'options' ), 'Alloptions cache not cleared' ); + } + + /** + * Tests setting options' autoload to 'no' where for some options this is already the case. + * + * In this case, the 'alloptions' cache should not be cleared, but only its options set to 'no' should be deleted. + * + * @ticket 58964 + */ + public function test_wp_set_option_autoload_values_all_no_partial_update() { + global $wpdb; + + $options = array( + 'test_option1' => 'no', + 'test_option2' => 'no', + ); + add_option( 'test_option1', 'value1', '', 'yes' ); + add_option( 'test_option2', 'value2', '', 'no' ); + $expected = array( + 'test_option1' => true, + 'test_option2' => false, + ); + + $num_queries = get_num_queries(); + $this->assertSame( $expected, wp_set_option_autoload_values( $options ), 'Function produced unexpected result' ); + $this->assertSame( $num_queries + 2, get_num_queries(), 'Function made unexpected amount of database queries' ); + $this->assertSame( array( 'no', 'no' ), $wpdb->get_col( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name IN (" . implode( ',', array_fill( 0, count( $options ), '%s' ) ) . ')', ...array_keys( $options ) ) ), 'Option autoload values not updated in database' ); + foreach ( $options as $option => $autoload ) { + $this->assertArrayNotHasKey( $option, wp_cache_get( 'alloptions', 'options' ), sprintf( 'Option %s not deleted from alloptions cache', $option ) ); + } + } + + /** + * Tests setting options' autoload to 'yes' where for all of them this is already the case. + * + * @ticket 58964 + */ + public function test_wp_set_option_autoload_values_all_yes_no_update() { + global $wpdb; + + $options = array( + 'test_option1' => 'yes', + 'test_option2' => 'yes', + ); + add_option( 'test_option1', 'value1', '', 'yes' ); + add_option( 'test_option2', 'value2', '', 'yes' ); + $expected = array( + 'test_option1' => false, + 'test_option2' => false, + ); + + $num_queries = get_num_queries(); + $this->assertSame( $expected, wp_set_option_autoload_values( $options ), 'Function produced unexpected result' ); + $this->assertSame( $num_queries + 1, get_num_queries(), 'Function made unexpected amount of database queries' ); + $this->assertSame( array( 'yes', 'yes' ), $wpdb->get_col( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name IN (" . implode( ',', array_fill( 0, count( $options ), '%s' ) ) . ')', ...array_keys( $options ) ) ), 'Option autoload values not updated in database' ); + foreach ( $options as $option => $autoload ) { + $this->assertArrayHasKey( $option, wp_cache_get( 'alloptions', 'options' ), sprintf( 'Option %s unexpectedly deleted from alloptions cache', $option ) ); + } + } + + /** + * Tests setting options' autoload to either 'yes' or 'no' where for some options this is already the case. + * + * The test also covers one option that is entirely missing. + * + * @ticket 58964 + */ + public function test_wp_set_option_autoload_values_mixed_partial_update() { + global $wpdb; + + $options = array( + 'test_option1' => 'yes', + 'test_option2' => 'no', + 'test_option3' => 'yes', + 'missing_opt' => 'yes', + ); + add_option( 'test_option1', 'value1', '', 'no' ); + add_option( 'test_option2', 'value2', '', 'yes' ); + add_option( 'test_option3', 'value3', '', 'yes' ); + $expected = array( + 'test_option1' => true, + 'test_option2' => true, + 'test_option3' => false, + 'missing_opt' => false, + ); + + $num_queries = get_num_queries(); + $this->assertSame( $expected, wp_set_option_autoload_values( $options ), 'Function produced unexpected result' ); + $this->assertSame( $num_queries + 3, get_num_queries(), 'Function made unexpected amount of database queries' ); + $this->assertSameSets( array( 'yes', 'no', 'yes' ), $wpdb->get_col( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name IN (" . implode( ',', array_fill( 0, count( $options ), '%s' ) ) . ')', ...array_keys( $options ) ) ), 'Option autoload values not updated in database' ); + foreach ( $options as $option => $autoload ) { + $this->assertFalse( wp_cache_get( $option, 'options' ), sprintf( 'Option %s not deleted from individual cache', $option ) ); + } + $this->assertFalse( wp_cache_get( 'alloptions', 'options' ), 'Alloptions cache not cleared' ); + } + + /** + * Tests setting options' autoload to either 'yes' or 'no' while only the 'no' options actually need to be updated. + * + * In this case, the 'alloptions' cache should not be cleared, but only its options set to 'no' should be deleted. + * + * @ticket 58964 + */ + public function test_wp_set_option_autoload_values_mixed_only_update_no() { + global $wpdb; + + $options = array( + 'test_option1' => 'yes', + 'test_option2' => 'no', + 'test_option3' => 'yes', + ); + add_option( 'test_option1', 'value1', '', 'yes' ); + add_option( 'test_option2', 'value2', '', 'yes' ); + add_option( 'test_option3', 'value3', '', 'yes' ); + $expected = array( + 'test_option1' => false, + 'test_option2' => true, + 'test_option3' => false, + ); + + $num_queries = get_num_queries(); + $this->assertSame( $expected, wp_set_option_autoload_values( $options ), 'Function produced unexpected result' ); + $this->assertSame( $num_queries + 2, get_num_queries(), 'Function made unexpected amount of database queries' ); + $this->assertSameSets( array( 'yes', 'no', 'yes' ), $wpdb->get_col( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name IN (" . implode( ',', array_fill( 0, count( $options ), '%s' ) ) . ')', ...array_keys( $options ) ) ), 'Option autoload values not updated in database' ); + foreach ( $options as $option => $autoload ) { + if ( 'no' === $autoload ) { + $this->assertArrayNotHasKey( $option, wp_cache_get( 'alloptions', 'options' ), sprintf( 'Option %s not deleted from alloptions cache', $option ) ); + } else { + $this->assertArrayHasKey( $option, wp_cache_get( 'alloptions', 'options' ), sprintf( 'Option %s unexpectedly deleted from alloptions cache', $option ) ); + } + } + } + + /** + * Tests setting options' autoload with a simulated SQL query failure. + * + * @ticket 58964 + */ + public function test_wp_set_option_autoload_values_with_sql_query_failure() { + global $wpdb; + + $options = array( + 'test_option1' => 'yes', + 'test_option2' => 'yes', + ); + add_option( 'test_option1', 'value1', '', 'no' ); + add_option( 'test_option2', 'value2', '', 'no' ); + + // Force UPDATE queries to fail, leading to no autoload values being updated. + add_filter( + 'query', + static function ( $query ) { + if ( str_starts_with( $query, 'UPDATE ' ) ) { + return ''; + } + return $query; + } + ); + $expected = array( + 'test_option1' => false, + 'test_option2' => false, + ); + + $this->assertSame( $expected, wp_set_option_autoload_values( $options ), 'Function produced unexpected result' ); + $this->assertSame( array( 'no', 'no' ), $wpdb->get_col( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name IN (" . implode( ',', array_fill( 0, count( $options ), '%s' ) ) . ')', ...array_keys( $options ) ) ), 'Option autoload values not updated in database' ); + } + + /** + * Tests setting options' autoload with boolean values. + * + * @ticket 58964 + */ + public function test_wp_set_option_autoload_values_with_bool() { + global $wpdb; + + $options = array( + 'test_option1' => true, + 'test_option2' => false, + ); + add_option( 'test_option1', 'value1', '', false ); + add_option( 'test_option2', 'value2', '', true ); + $expected = array( + 'test_option1' => true, + 'test_option2' => true, + ); + + $num_queries = get_num_queries(); + $this->assertSame( $expected, wp_set_option_autoload_values( $options ), 'Function produced unexpected result' ); + $this->assertSame( $num_queries + 3, get_num_queries(), 'Function made unexpected amount of database queries' ); + $this->assertSameSets( array( 'yes', 'no' ), $wpdb->get_col( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name IN (" . implode( ',', array_fill( 0, count( $options ), '%s' ) ) . ')', ...array_keys( $options ) ) ), 'Option autoload values not updated in database' ); + } + + /** + * Tests calling the function with an empty array (i.e. do nothing). + * + * @ticket 58964 + */ + public function test_wp_set_option_autoload_values_with_empty_array() { + $num_queries = get_num_queries(); + $this->assertSame( array(), wp_set_option_autoload_values( array() ), 'Function produced unexpected result' ); + $this->assertSame( $num_queries, get_num_queries(), 'Function made unexpected amount of database queries' ); + } +} diff --git a/tests/phpunit/tests/option/wpSetOptionsAutoload.php b/tests/phpunit/tests/option/wpSetOptionsAutoload.php new file mode 100644 index 0000000000000..5202283efa0c6 --- /dev/null +++ b/tests/phpunit/tests/option/wpSetOptionsAutoload.php @@ -0,0 +1,190 @@ + 'value1', + 'test_option2' => 'value2', + ); + + $expected = array(); + foreach ( $options as $option => $value ) { + add_option( $option, $value, '', 'no' ); + $expected[ $option ] = true; + } + + $num_queries = get_num_queries(); + $this->assertSame( $expected, wp_set_options_autoload( array_keys( $options ), 'yes' ), 'Function did not succeed' ); + $this->assertSame( $num_queries + 2, get_num_queries(), 'Updating options autoload value ran too many queries' ); + $this->assertSame( array( 'yes', 'yes' ), $wpdb->get_col( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name IN (" . implode( ',', array_fill( 0, count( $options ), '%s' ) ) . ')', ...array_keys( $options ) ) ), 'Option autoload values not updated in database' ); + foreach ( $options as $option => $value ) { + $this->assertFalse( wp_cache_get( $option, 'options' ), sprintf( 'Option %s not deleted from individual cache', $option ) ); + } + $this->assertFalse( wp_cache_get( 'alloptions', 'options' ), 'Alloptions cache not cleared' ); + } + + /** + * Tests that setting options' autoload value to 'no' works as expected. + * + * @ticket 58964 + */ + public function test_wp_set_options_autoload_no() { + global $wpdb; + + $options = array( + 'test_option1' => 'value1', + 'test_option2' => 'value2', + ); + + $expected = array(); + foreach ( $options as $option => $value ) { + add_option( $option, $value, '', 'yes' ); + $expected[ $option ] = true; + } + + $num_queries = get_num_queries(); + $this->assertSame( $expected, wp_set_options_autoload( array_keys( $options ), 'no' ), 'Function did not succeed' ); + $this->assertSame( $num_queries + 2, get_num_queries(), 'Updating options autoload value ran too many queries' ); + $this->assertSame( array( 'no', 'no' ), $wpdb->get_col( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name IN (" . implode( ',', array_fill( 0, count( $options ), '%s' ) ) . ')', ...array_keys( $options ) ) ), 'Option autoload values not updated in database' ); + foreach ( $options as $option => $value ) { + $this->assertArrayNotHasKey( $option, wp_cache_get( 'alloptions', 'options' ), sprintf( 'Option %s not deleted from alloptions cache', $option ) ); + } + } + + /** + * Tests that setting options' autoload value to the same value as prior works as expected. + * + * @ticket 58964 + */ + public function test_wp_set_options_autoload_same() { + global $wpdb; + + $options = array( + 'test_option1' => 'value1', + 'test_option2' => 'value2', + ); + + $expected = array(); + foreach ( $options as $option => $value ) { + add_option( $option, $value, '', 'yes' ); + $expected[ $option ] = false; + } + + $num_queries = get_num_queries(); + $this->assertSame( $expected, wp_set_options_autoload( array_keys( $options ), 'yes' ), 'Function did unexpectedly succeed' ); + $this->assertSame( $num_queries + 1, get_num_queries(), 'Function attempted to update options autoload value in database' ); + $this->assertSame( array( 'yes', 'yes' ), $wpdb->get_col( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name IN (" . implode( ',', array_fill( 0, count( $options ), '%s' ) ) . ')', ...array_keys( $options ) ) ), 'Options autoload value unexpectedly updated in database' ); + } + + /** + * Tests that setting missing option's autoload value does not do anything. + * + * @ticket 58964 + */ + public function test_wp_set_options_autoload_missing() { + global $wpdb; + + $options = array( + 'test_option1', + 'test_option2', + ); + + $expected = array(); + foreach ( $options as $option ) { + $expected[ $option ] = false; + } + + $this->assertSame( $expected, wp_set_options_autoload( $options, 'yes' ), 'Function did unexpectedly succeed' ); + $this->assertSame( array(), $wpdb->get_col( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name IN (" . implode( ',', array_fill( 0, count( $options ), '%s' ) ) . ')', ...array_keys( $options ) ) ), 'Missing options autoload value was set in database' ); + } + + /** + * Tests that setting option's autoload value only updates those that need to be updated. + * + * @ticket 58964 + */ + public function test_wp_set_options_autoload_mixed() { + global $wpdb; + + $options = array( + 'test_option1' => 'value1', + 'test_option2' => 'value2', + ); + + add_option( 'test_option1', $options['test_option1'], '', 'yes' ); + add_option( 'test_option2', $options['test_option2'], '', 'no' ); + $expected = array( + 'test_option1' => false, + 'test_option2' => true, + ); + + $this->assertSame( $expected, wp_set_options_autoload( array_keys( $options ), 'yes' ), 'Function produced unexpected result' ); + $this->assertSame( array( 'yes', 'yes' ), $wpdb->get_col( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name IN (" . implode( ',', array_fill( 0, count( $options ), '%s' ) ) . ')', ...array_keys( $options ) ) ), 'Option autoload values not updated in database' ); + foreach ( $options as $option => $value ) { + $this->assertFalse( wp_cache_get( $option, 'options' ), sprintf( 'Option %s not deleted from individual cache', $option ) ); + } + $this->assertFalse( wp_cache_get( 'alloptions', 'options' ), 'Alloptions cache not cleared' ); + } + + /** + * Tests setting option's autoload value with boolean true. + * + * @ticket 58964 + */ + public function test_wp_set_options_autoload_true() { + global $wpdb; + + $options = array( + 'test_option1' => 'value1', + 'test_option2' => 'value2', + ); + + add_option( 'test_option1', $options['test_option1'], '', false ); + add_option( 'test_option2', $options['test_option2'], '', false ); + $expected = array( + 'test_option1' => true, + 'test_option2' => true, + ); + + $this->assertSame( $expected, wp_set_options_autoload( array_keys( $options ), true ), 'Function produced unexpected result' ); + $this->assertSame( array( 'yes', 'yes' ), $wpdb->get_col( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name IN (" . implode( ',', array_fill( 0, count( $options ), '%s' ) ) . ')', ...array_keys( $options ) ) ), 'Option autoload values not updated in database' ); + } + + /** + * Tests setting option's autoload value with boolean false. + * + * @ticket 58964 + */ + public function test_wp_set_options_autoload_false() { + global $wpdb; + + $options = array( + 'test_option1' => 'value1', + 'test_option2' => 'value2', + ); + + add_option( 'test_option1', $options['test_option1'], '', true ); + add_option( 'test_option2', $options['test_option2'], '', true ); + $expected = array( + 'test_option1' => true, + 'test_option2' => true, + ); + + $this->assertSame( $expected, wp_set_options_autoload( array_keys( $options ), false ), 'Function produced unexpected result' ); + $this->assertSame( array( 'no', 'no' ), $wpdb->get_col( $wpdb->prepare( "SELECT autoload FROM $wpdb->options WHERE option_name IN (" . implode( ',', array_fill( 0, count( $options ), '%s' ) ) . ')', ...array_keys( $options ) ) ), 'Option autoload values not updated in database' ); + } +} diff --git a/tests/phpunit/tests/pluggable/signatures.php b/tests/phpunit/tests/pluggable/signatures.php index c63de073d9942..81fd079621916 100644 --- a/tests/phpunit/tests/pluggable/signatures.php +++ b/tests/phpunit/tests/pluggable/signatures.php @@ -44,10 +44,9 @@ public function test_pluggable_function_signatures_match( $function_name ) { $this->assertSame( $name, $param_ref->getName(), $msg ); - $i++; + ++$i; } - } /** @@ -66,7 +65,6 @@ public function test_all_pluggable_functions_exist() { $this->assertTrue( function_exists( $function ), $msg ); $this->assertContains( $function, $defined, $msg ); } - } /** @@ -113,7 +111,6 @@ public function get_defined_pluggable_functions() { } return $data; - } /** diff --git a/tests/phpunit/tests/pomo/mo.php b/tests/phpunit/tests/pomo/mo.php index e4ce6c4b16d29..7ae73abf6c7ec 100644 --- a/tests/phpunit/tests/pomo/mo.php +++ b/tests/phpunit/tests/pomo/mo.php @@ -70,7 +70,6 @@ public function test_mo_context() { ); $this->assertEquals( $single_entry, $mo->entries[ $single_entry->key() ] ); $this->assertSame( 'not so dragon', $mo->entries[ $single_entry->key() ]->context ); - } public function test_translations_merge() { diff --git a/tests/phpunit/tests/pomo/pluralForms.php b/tests/phpunit/tests/pomo/pluralForms.php index 0343302c689ef..b676735c59bac 100644 --- a/tests/phpunit/tests/pomo/pluralForms.php +++ b/tests/phpunit/tests/pomo/pluralForms.php @@ -21,7 +21,7 @@ protected static function parenthesize_plural_expression( $expression ) { switch ( $char ) { case '?': $res .= ' ? ('; - $depth++; + ++$depth; break; case ':': $res .= ') : ('; @@ -43,7 +43,7 @@ protected static function parenthesize_plural_expression( $expression ) { * @group external-http */ public function test_regression( $lang, $nplurals, $expression ) { - require_once dirname( dirname( __DIR__ ) ) . '/includes/plural-form-function.php'; + require_once dirname( __DIR__, 2 ) . '/includes/plural-form-function.php'; $parenthesized = self::parenthesize_plural_expression( $expression ); $old_style = tests_make_plural_form_function( $nplurals, $parenthesized ); diff --git a/tests/phpunit/tests/pomo/po.php b/tests/phpunit/tests/pomo/po.php index 8c58099b69505..eeaf0aad14fea 100644 --- a/tests/phpunit/tests/pomo/po.php +++ b/tests/phpunit/tests/pomo/po.php @@ -340,4 +340,3 @@ public function test_import_from_file_with_windows_line_endings_should_work_as_w // TODO: Add tests for bad files. } - diff --git a/tests/phpunit/tests/post/filtering.php b/tests/phpunit/tests/post/filtering.php index c4d393be22ce6..5947a29d43cfc 100644 --- a/tests/phpunit/tests/post/filtering.php +++ b/tests/phpunit/tests/post/filtering.php @@ -14,7 +14,6 @@ public function set_up() { parent::set_up(); update_option( 'use_balanceTags', 1 ); kses_init_filters(); - } public function tear_down() { diff --git a/tests/phpunit/tests/post/getBodyClass.php b/tests/phpunit/tests/post/getBodyClass.php index 2872218afb805..25810e6075740 100644 --- a/tests/phpunit/tests/post/getBodyClass.php +++ b/tests/phpunit/tests/post/getBodyClass.php @@ -257,5 +257,4 @@ public function test_privacy_policy_body_class() { $this->assertContains( 'page', $class ); $this->assertContains( "page-id-{$page_id}", $class ); } - } diff --git a/tests/phpunit/tests/post/getPageByPath.php b/tests/phpunit/tests/post/getPageByPath.php index 5d26b88d2de19..8db0274249bed 100644 --- a/tests/phpunit/tests/post/getPageByPath.php +++ b/tests/phpunit/tests/post/getPageByPath.php @@ -343,7 +343,7 @@ public function test_cache_should_not_match_post_in_different_post_type_with_sam $found = get_page_by_path( 'foo', OBJECT, 'wptests_pt' ); $this->assertSame( $p2, $found->ID ); - $num_queries++; + ++$num_queries; $this->assertSame( $num_queries, get_num_queries() ); } @@ -373,7 +373,7 @@ public function test_cache_should_be_invalidated_when_post_name_is_edited() { $found = get_page_by_path( 'bar' ); $this->assertSame( $page, $found->ID ); - $num_queries++; + ++$num_queries; $this->assertSame( $num_queries, get_num_queries() ); } diff --git a/tests/phpunit/tests/post/getPageByTitle.php b/tests/phpunit/tests/post/getPageByTitle.php index a85d8f42c5eeb..084453cbb0144 100644 --- a/tests/phpunit/tests/post/getPageByTitle.php +++ b/tests/phpunit/tests/post/getPageByTitle.php @@ -17,5 +17,4 @@ class Tests_Post_GetPageByTitle extends WP_UnitTestCase { public function test_get_page_by_title_should_be_deprecated() { $this->assertNull( get_page_by_title( '#57041 Page' ) ); } - } diff --git a/tests/phpunit/tests/post/getPages.php b/tests/phpunit/tests/post/getPages.php index 92de3356fa5c6..626f2a528c509 100644 --- a/tests/phpunit/tests/post/getPages.php +++ b/tests/phpunit/tests/post/getPages.php @@ -344,7 +344,7 @@ public function test_get_pages_test_filter() { // Filter the query to return the wptests_pt post type. add_filter( 'get_pages_query_args', - static function( $query_args, $parsed_args ) use ( &$query_args_values, &$parsed_args_values ) { + static function ( $query_args, $parsed_args ) use ( &$query_args_values, &$parsed_args_values ) { $query_args['post_type'] = 'wptests_pt'; $query_args_values = $query_args; $parsed_args_values = $parsed_args; @@ -905,7 +905,6 @@ public function test_get_pages_non_hierarchical_non_empty_child_of() { // How it should work. $found_pages = wp_list_filter( $pages, array( 'post_parent' => $page_1 ) ); $this->assertSameSets( array( $page_3, $page_5 ), wp_list_pluck( $found_pages, 'ID' ) ); - } /** @@ -1181,4 +1180,35 @@ public function test_get_pages_order() { 'Check that ORDER is post date.' ); } + + /** + * Tests that the legacy `post_modified_gmt` orderby values are translated to the proper `WP_Query` values. + * + * @ticket 59226 + */ + public function test_get_pages_order_by_post_modified_gmt() { + global $wpdb; + + get_pages( + array( + 'sort_column' => 'post_modified_gmt', + ) + ); + $this->assertStringContainsString( + "ORDER BY $wpdb->posts.post_modified ASC", + $wpdb->last_query, + 'Check that ORDER is post modified when using post_modified_gmt.' + ); + + get_pages( + array( + 'sort_column' => 'modified_gmt', + ) + ); + $this->assertStringContainsString( + "ORDER BY $wpdb->posts.post_modified ASC", + $wpdb->last_query, + 'Check that ORDER is post modified when using modified_gmt.' + ); + } } diff --git a/tests/phpunit/tests/post/meta.php b/tests/phpunit/tests/post/meta.php index 0efca37f6bb93..84a8558b7571b 100644 --- a/tests/phpunit/tests/post/meta.php +++ b/tests/phpunit/tests/post/meta.php @@ -64,7 +64,6 @@ public function test_unique_postmeta() { // Check it is deleted. $this->assertSame( '', get_post_meta( self::$post_id, 'unique', true ) ); $this->assertSame( array(), get_post_meta( self::$post_id, 'unique', false ) ); - } public function test_nonunique_postmeta() { @@ -128,7 +127,6 @@ public function test_update_post_meta() { $this->assertSame( array( 'new' ), get_post_meta( self::$post_id, 'unique_update', false ) ); $this->assertSame( 'new', get_post_meta( self::$post_id, 'nonunique_update', true ) ); $this->assertSame( array( 'new', 'another new' ), get_post_meta( self::$post_id, 'nonunique_update', false ) ); - } public function test_delete_post_meta() { @@ -145,7 +143,6 @@ public function test_delete_post_meta() { // Check the other still exists. $this->assertSame( 'value', get_post_meta( self::$post_id_2, 'unique_delete', true ) ); - } public function test_delete_post_meta_by_key() { @@ -249,7 +246,6 @@ public function test_funky_post_meta() { // Check it exists. $this->assertEqualSets( $funky_meta, get_post_meta( self::$post_id, 'test_funky_post_meta', true ) ); - } /** diff --git a/tests/phpunit/tests/post/nav-menu.php b/tests/phpunit/tests/post/nav-menu.php index c0ae716ab8238..625d1bc12c22a 100644 --- a/tests/phpunit/tests/post/nav-menu.php +++ b/tests/phpunit/tests/post/nav-menu.php @@ -57,7 +57,6 @@ public function test_wp_page_menu_wp_nav_menu_fallback() { // After falling back, the markup should not include whitespace around
  • 's. $this->assertDoesNotMatchRegularExpression( '/\s|<\/li>\s/U', $menu ); $this->assertMatchesRegularExpression( '/>|<\/li> $custom_item_id ) ); $custom_item = array_pop( $custom_item ); $this->assertSame( 'WordPress.org', $custom_item->title ); - } public function test_wp_get_nav_menu_items_with_taxonomy_term() { @@ -342,13 +340,13 @@ public function test_wp_get_nav_menu_items_cache_primes_posts() { add_filter( 'update_post_metadata_cache', array( $action, 'filter' ), 10, 2 ); $start_num_queries = get_num_queries(); - wp_get_nav_menu_items( $this->menu_id ); + wp_get_nav_menu_items( $this->menu_id, array( 'nopaging' => false ) ); $queries_made = get_num_queries() - $start_num_queries; - $this->assertSame( 6, $queries_made, 'Only does 6 database queries when running wp_get_nav_menu_items.' ); + $this->assertSame( 7, $queries_made, 'Only does 7 database queries when running wp_get_nav_menu_items.' ); $args = $action->get_args(); $this->assertSameSets( $menu_nav_ids, $args[0][1], '_prime_post_caches() was not executed.' ); - $this->assertSameSets( $post_ids, $args[1][1], '_prime_post_caches() was not executed.' ); + $this->assertSameSets( $post_ids, $args[2][1], '_prime_post_caches() was not executed.' ); } /** @@ -383,10 +381,10 @@ public function test_wp_get_nav_menu_items_cache_primes_terms() { add_filter( 'update_post_metadata_cache', array( $action_posts, 'filter' ), 10, 2 ); $start_num_queries = get_num_queries(); - wp_get_nav_menu_items( $this->menu_id ); + wp_get_nav_menu_items( $this->menu_id, array( 'nopaging' => false ) ); get_term_meta( $term_ids[0] ); $queries_made = get_num_queries() - $start_num_queries; - $this->assertSame( 6, $queries_made, 'Only does 6 database queries when running wp_get_nav_menu_items.' ); + $this->assertSame( 7, $queries_made, 'Only does 7 database queries when running wp_get_nav_menu_items.' ); $args = $action_terms->get_args(); $first = reset( $args ); @@ -763,7 +761,6 @@ public function test_wp_nav_menu_filters_are_passed_args_object() { remove_filter( 'nav_menu_item_title', array( $this, 'confirm_third_param_args_object' ), 10, 3 ); remove_filter( 'walker_nav_menu_start_el', array( $this, 'confirm_forth_param_args_object' ), 10, 4 ); - } /** diff --git a/tests/phpunit/tests/post/query.php b/tests/phpunit/tests/post/query.php index f5ecd49b0556e..9c118cbb9e5f3 100644 --- a/tests/phpunit/tests/post/query.php +++ b/tests/phpunit/tests/post/query.php @@ -775,4 +775,21 @@ public function test_found_posts_should_be_integer_even_if_found_posts_filter_re $this->assertIsInt( $q->found_posts ); } + + /** + * @ticket 57296 + * @covers WP_Query::get_posts + */ + public function test_split_the_query_object_cache() { + $filter = new MockAction(); + add_filter( 'split_the_query', array( $filter, 'filter' ) ); + + $q = new WP_Query( + array( + 'posts_per_page' => 501, + ) + ); + + $this->assertSame( (bool) wp_using_ext_object_cache(), $filter->get_args()[0][0] ); + } } diff --git a/tests/phpunit/tests/post/revisions.php b/tests/phpunit/tests/post/revisions.php index cc17ccd60d5df..a4e45aefcf349 100644 --- a/tests/phpunit/tests/post/revisions.php +++ b/tests/phpunit/tests/post/revisions.php @@ -736,7 +736,7 @@ public function test_wp_get_post_revisions_url( $revisions ) { ) ); - $latest_revision_id++; + ++$latest_revision_id; } } @@ -784,7 +784,7 @@ public function test_wp_get_post_revisions_url_with_post_object( $revisions ) { ) ); - $latest_revision_id++; + ++$latest_revision_id; } } @@ -883,7 +883,7 @@ public function test_wp_save_post_revision_should_respect_revisions_before_delet add_filter( 'wp_revisions_to_keep', - static function() { + static function () { return 1; } ); diff --git a/tests/phpunit/tests/post/thumbnails.php b/tests/phpunit/tests/post/thumbnails.php index 44801059a88ac..b06ec025708cf 100644 --- a/tests/phpunit/tests/post/thumbnails.php +++ b/tests/phpunit/tests/post/thumbnails.php @@ -571,7 +571,7 @@ public function test_get_the_post_thumbnail_should_remove_the_post_thumbnail_con private function track_last_attachment_image_context( &$last_context ) { add_filter( 'wp_get_attachment_image_context', - static function( $context ) use ( &$last_context ) { + static function ( $context ) use ( &$last_context ) { $last_context = $context; return $context; }, diff --git a/tests/phpunit/tests/post/walkerPage.php b/tests/phpunit/tests/post/walkerPage.php index a5a632dcdaa85..d8a2312a54eff 100644 --- a/tests/phpunit/tests/post/walkerPage.php +++ b/tests/phpunit/tests/post/walkerPage.php @@ -33,7 +33,7 @@ public function test_start_el_with_empty_attributes( $value, $expected ) { add_filter( 'page_menu_link_attributes', - static function( $atts ) use ( $value ) { + static function ( $atts ) use ( $value ) { $atts['data-test'] = $value; return $atts; } diff --git a/tests/phpunit/tests/post/wpGetAttachmentLink.php b/tests/phpunit/tests/post/wpGetAttachmentLink.php index 2d658e002e572..141b8a2427af4 100644 --- a/tests/phpunit/tests/post/wpGetAttachmentLink.php +++ b/tests/phpunit/tests/post/wpGetAttachmentLink.php @@ -41,7 +41,7 @@ public function test_should_apply_attributes_filter( $attributes, $expected ) { add_filter( 'wp_get_attachment_link_attributes', - static function( $attr ) use ( $attributes ) { + static function ( $attr ) use ( $attributes ) { return array_merge( $attr, $attributes ); } ); diff --git a/tests/phpunit/tests/post/wpInsertPost.php b/tests/phpunit/tests/post/wpInsertPost.php index 167d29dd39adf..1b0838cf06fd5 100644 --- a/tests/phpunit/tests/post/wpInsertPost.php +++ b/tests/phpunit/tests/post/wpInsertPost.php @@ -304,7 +304,6 @@ public function test_vb_insert_future_draft() { // There should be a publish_future_post hook scheduled on the future date. $this->assertFalse( $this->next_schedule_for_post( 'publish_future_post', $post_id ) ); - } /** @@ -650,7 +649,6 @@ public function test_update_invalid_post_id() { $this->assertInstanceOf( 'WP_Error', wp_insert_post( $post, true ) ); $this->assertInstanceOf( 'WP_Error', wp_update_post( $post, true ) ); - } /** diff --git a/tests/phpunit/tests/privacy/wpPrivacySendRequestConfirmationNotification.php b/tests/phpunit/tests/privacy/wpPrivacySendRequestConfirmationNotification.php index 5374cd5701056..951039cb086d1 100644 --- a/tests/phpunit/tests/privacy/wpPrivacySendRequestConfirmationNotification.php +++ b/tests/phpunit/tests/privacy/wpPrivacySendRequestConfirmationNotification.php @@ -240,5 +240,4 @@ public function modify_email_headers( $headers ) { return $headers; } - } diff --git a/tests/phpunit/tests/query.php b/tests/phpunit/tests/query.php index 52c6ebfc12ec1..37dd51a06392a 100644 --- a/tests/phpunit/tests/query.php +++ b/tests/phpunit/tests/query.php @@ -730,7 +730,7 @@ public function test_get_queried_object_should_work_for_author_name_before_get_p public function test_posts_clauses_filter_should_receive_filtered_clauses() { add_filter( 'posts_join_paged', - static function() { + static function () { return '/* posts_join_paged */'; } ); @@ -755,7 +755,7 @@ static function() { public function test_posts_clauses_request_filter_should_receive_filtered_clauses() { add_filter( 'posts_join_request', - static function() { + static function () { return '/* posts_join_request */'; } ); diff --git a/tests/phpunit/tests/query/commentCount.php b/tests/phpunit/tests/query/commentCount.php index 5a759a3f06a58..d995c4b4223cf 100644 --- a/tests/phpunit/tests/query/commentCount.php +++ b/tests/phpunit/tests/query/commentCount.php @@ -190,7 +190,6 @@ public function test_operator_not_equal() { } $this->assertSameSets( $expected, $found_post_ids ); - } public function test_operator_equal_or_greater_than() { $args = array( @@ -371,4 +370,3 @@ public function test_simple_count() { $this->assertSameSets( $expected, $found_post_ids ); } } - diff --git a/tests/phpunit/tests/query/conditionals.php b/tests/phpunit/tests/query/conditionals.php index c447c638d6986..05278ffd7a4cd 100644 --- a/tests/phpunit/tests/query/conditionals.php +++ b/tests/phpunit/tests/query/conditionals.php @@ -395,7 +395,6 @@ public function test_main_feed_2() { $this->go_to( "/{$feed}/" ); $this->assertQueryTrue( 'is_feed' ); } - } public function test_main_feed() { @@ -440,7 +439,6 @@ public function test_main_comments_feed() { $this->go_to( "/comments/{$type}" ); $this->assertQueryTrue( 'is_feed', 'is_comment_feed' ); } - } // 'search/(.+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?s=$matches[1]&feed=$matches[2]', @@ -771,7 +769,6 @@ public function test_post_paged_short() { $this->go_to( get_permalink( $post_id ) . '2/' ); // Should is_paged be true also? $this->assertQueryTrue( 'is_single', 'is_singular' ); - } // '[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/[^/]+/([^/]+)/?$' => 'index.php?attachment=$matches[1]', @@ -1644,14 +1641,14 @@ public function data_conditional_tags_trigger_doing_it_wrong_and_return_false_if // Get the list of `is_*()` conditional tags. $functions = array_filter( get_class_methods( 'WP_Query' ), - static function( $function_name ) { + static function ( $function_name ) { return str_starts_with( $function_name, 'is_' ); } ); // Wrap each function name in an array. $functions = array_map( - static function( $function_name ) { + static function ( $function_name ) { return array( $function_name ); }, $functions @@ -1692,5 +1689,4 @@ public function data_loop_functions_do_not_trigger_a_fatal_error_if_wp_query_is_ array( 'the_comment', null ), ); } - } diff --git a/tests/phpunit/tests/query/metaQuery.php b/tests/phpunit/tests/query/metaQuery.php index c9e73ec8a509c..e930ef3266654 100644 --- a/tests/phpunit/tests/query/metaQuery.php +++ b/tests/phpunit/tests/query/metaQuery.php @@ -1920,7 +1920,6 @@ public function test_compare_key_like_with_not_exists_compare() { ); $this->assertSameSets( array( $posts[0] ), $q->posts ); - } /** diff --git a/tests/phpunit/tests/query/results.php b/tests/phpunit/tests/query/results.php index bf653d378a857..40d05a4d9f52d 100644 --- a/tests/phpunit/tests/query/results.php +++ b/tests/phpunit/tests/query/results.php @@ -768,7 +768,6 @@ public function test_query_fields_integers() { $this->assertIsInt( $post->ID ); $this->assertIsInt( $post->post_parent ); } - } /** diff --git a/tests/phpunit/tests/query/searchColumns.php b/tests/phpunit/tests/query/searchColumns.php index 463bef810738f..9ef30c2113920 100644 --- a/tests/phpunit/tests/query/searchColumns.php +++ b/tests/phpunit/tests/query/searchColumns.php @@ -410,5 +410,4 @@ public function post_non_existing_search_column( $search_columns, $search, $wp_q $search_columns = array( 'post_non_existing_column' ); return $search_columns; } - } diff --git a/tests/phpunit/tests/query/vars.php b/tests/phpunit/tests/query/vars.php index 4b4b96561b6ac..87e7fa7bb75c6 100644 --- a/tests/phpunit/tests/query/vars.php +++ b/tests/phpunit/tests/query/vars.php @@ -80,5 +80,4 @@ public function testPublicQueryVarsAreAsExpected() { 'Care should be taken when introducing new public query vars. See https://core.trac.wordpress.org/ticket/35115' ); } - } diff --git a/tests/phpunit/tests/rest-api.php b/tests/phpunit/tests/rest-api.php index 20b23fc0fb28c..4a575b88037e7 100644 --- a/tests/phpunit/tests/rest-api.php +++ b/tests/phpunit/tests/rest-api.php @@ -2512,10 +2512,10 @@ public function test_rest_preload_api_request_fields() { $this->assertArrayHasKey( 'description', $preload_data['/']['body'] ); $this->assertArrayHasKey( 'routes', $preload_data['/']['body'] ); - // Filtered request only has the desired fields + links + // Filtered request only has the desired fields. $this->assertSame( array_keys( $preload_data['/?_fields=description']['body'] ), - array( 'description', '_links' ) + array( 'description' ) ); } diff --git a/tests/phpunit/tests/rest-api/rest-application-passwords-controller.php b/tests/phpunit/tests/rest-api/rest-application-passwords-controller.php index 0515c31512d3c..96d1b193bbb73 100644 --- a/tests/phpunit/tests/rest-api/rest-application-passwords-controller.php +++ b/tests/phpunit/tests/rest-api/rest-application-passwords-controller.php @@ -961,7 +961,7 @@ public function test_introspect_item_password_invalid() { $this->setup_app_password_authenticated_request(); add_action( 'application_password_did_authenticate', - static function() { + static function () { $GLOBALS['wp_rest_application_password_uuid'] = 'invalid_uuid'; } ); diff --git a/tests/phpunit/tests/rest-api/rest-attachments-controller.php b/tests/phpunit/tests/rest-api/rest-attachments-controller.php index 55cf74f3d72af..0e721258ed40a 100644 --- a/tests/phpunit/tests/rest-api/rest-attachments-controller.php +++ b/tests/phpunit/tests/rest-api/rest-attachments-controller.php @@ -1787,7 +1787,6 @@ protected function check_post_data( $attachment, $data, $context = 'view', $link } $this->assertSame( wp_get_attachment_url( $attachment->ID ), $data['source_url'] ); - } /** @@ -1984,11 +1983,11 @@ public function test_create_item_with_meta_values() { } public function filter_rest_insert_attachment( $attachment ) { - self::$rest_insert_attachment_count++; + ++self::$rest_insert_attachment_count; } public function filter_rest_after_insert_attachment( $attachment ) { - self::$rest_after_insert_attachment_count++; + ++self::$rest_after_insert_attachment_count; } /** diff --git a/tests/phpunit/tests/rest-api/rest-autosaves-controller.php b/tests/phpunit/tests/rest-api/rest-autosaves-controller.php index e987a5f699983..fd8f92f7b0ae9 100644 --- a/tests/phpunit/tests/rest-api/rest-autosaves-controller.php +++ b/tests/phpunit/tests/rest-api/rest-autosaves-controller.php @@ -259,7 +259,6 @@ public function test_get_item_missing_parent() { $request = new WP_REST_Request( 'GET', '/wp/v2/posts/' . REST_TESTS_IMPOSSIBLY_HIGH_NUMBER . '/autosaves/' . self::$autosave_post_id ); $response = rest_get_server()->dispatch( $request ); $this->assertErrorResponse( 'rest_post_invalid_parent', $response, 404 ); - } public function test_get_item_invalid_parent_post_type() { diff --git a/tests/phpunit/tests/rest-api/rest-block-directory-controller.php b/tests/phpunit/tests/rest-api/rest-block-directory-controller.php index c3cac6011e491..f61b317240532 100644 --- a/tests/phpunit/tests/rest-api/rest-block-directory-controller.php +++ b/tests/phpunit/tests/rest-api/rest-block-directory-controller.php @@ -359,7 +359,7 @@ private function get_mock_plugin() { private function mock_remote_request( array $expected ) { add_filter( 'pre_http_request', - static function() use ( $expected ) { + static function () use ( $expected ) { $default = array( 'headers' => array(), 'response' => array( diff --git a/tests/phpunit/tests/rest-api/rest-block-renderer-controller.php b/tests/phpunit/tests/rest-api/rest-block-renderer-controller.php index 3c79da56510d3..3573ecb6e0bea 100644 --- a/tests/phpunit/tests/rest-api/rest-block-renderer-controller.php +++ b/tests/phpunit/tests/rest-api/rest-block-renderer-controller.php @@ -429,7 +429,7 @@ public function test_get_item() { public function test_get_item_with_pre_render_block_filter() { wp_set_current_user( self::$user_id ); - $pre_render_filter = static function( $output, $block ) { + $pre_render_filter = static function ( $output, $block ) { if ( $block['blockName'] === self::$block_name ) { return '

    Alternate content.

    '; } diff --git a/tests/phpunit/tests/rest-api/rest-block-type-controller.php b/tests/phpunit/tests/rest-api/rest-block-type-controller.php index b19321e224bb9..b1e1adff14626 100644 --- a/tests/phpunit/tests/rest-api/rest-block-type-controller.php +++ b/tests/phpunit/tests/rest-api/rest-block-type-controller.php @@ -138,7 +138,6 @@ public function test_get_item_with_styles() { $response = rest_get_server()->dispatch( $request ); $data = $response->get_data(); $this->assertSameSets( array( $block_styles ), $data['styles'] ); - } /** @@ -179,7 +178,6 @@ public function test_get_item_with_styles_merge() { ), ); $this->assertSameSets( $expected, $data['styles'] ); - } /** @@ -197,32 +195,34 @@ public function test_get_block_invalid_name() { /** * @ticket 47620 * @ticket 57585 + * @ticket 59346 */ public function test_get_item_invalid() { $block_type = 'fake/invalid'; $settings = array( 'title' => true, - 'description' => true, + 'category' => true, + 'parent' => 'invalid_parent', + 'ancestor' => 'invalid_ancestor', 'icon' => true, + 'description' => true, + 'keywords' => 'invalid_keywords', + 'textdomain' => true, 'attributes' => 'invalid_attributes', 'provides_context' => 'invalid_provides_context', 'uses_context' => 'invalid_uses_context', - 'category' => true, + 'selectors' => 'invalid_selectors', + 'supports' => 'invalid_supports', + 'styles' => array(), + 'example' => 'invalid_example', + 'variations' => 'invalid_variations', + 'block_hooks' => 'invalid_block_hooks', + 'render_callback' => 'invalid_callback', 'editor_script' => true, 'script' => true, 'view_script' => true, 'editor_style' => true, 'style' => true, - 'keywords' => 'invalid_keywords', - 'example' => 'invalid_example', - 'parent' => 'invalid_parent', - 'ancestor' => 'invalid_ancestor', - 'selectors' => 'invalid_selectors', - 'supports' => 'invalid_supports', - 'styles' => array(), - 'render_callback' => 'invalid_callback', - 'textdomain' => true, - 'variations' => 'invalid_variations', ); register_block_type( $block_type, $settings ); wp_set_current_user( self::$admin_id ); @@ -231,14 +231,13 @@ public function test_get_item_invalid() { $data = $response->get_data(); $this->assertSame( $block_type, $data['name'] ); $this->assertSame( '1', $data['title'] ); - $this->assertSame( '1', $data['description'] ); + $this->assertNull( $data['category'] ); + $this->assertSameSets( array( 'invalid_parent' ), $data['parent'] ); + $this->assertSameSets( array( 'invalid_ancestor' ), $data['ancestor'] ); $this->assertNull( $data['icon'] ); - $this->assertSameSets( array(), $data['editor_script_handles'] ); - $this->assertSameSets( array(), $data['script_handles'] ); - $this->assertSameSets( array(), $data['view_script_handles'] ); - $this->assertSameSets( array(), $data['editor_style_handles'] ); - $this->assertSameSets( array(), $data['style_handles'] ); - $this->assertSameSets( array(), $data['provides_context'] ); + $this->assertSame( '1', $data['description'] ); + $this->assertSameSets( array( 'invalid_keywords' ), $data['keywords'] ); + $this->assertNull( $data['textdomain'] ); $this->assertSameSetsWithIndex( array( 'lock' => array( 'type' => 'object' ), @@ -246,55 +245,58 @@ public function test_get_item_invalid() { $data['attributes'] ); $this->assertSameSets( array( 'invalid_uses_context' ), $data['uses_context'] ); - $this->assertSameSets( array( 'invalid_keywords' ), $data['keywords'] ); - $this->assertSameSets( array( 'invalid_parent' ), $data['parent'] ); - $this->assertSameSets( array( 'invalid_ancestor' ), $data['ancestor'] ); + $this->assertSameSets( array(), $data['provides_context'] ); $this->assertSameSets( array(), $data['selectors'], 'invalid selectors defaults to empty array' ); $this->assertSameSets( array(), $data['supports'] ); $this->assertSameSets( array(), $data['styles'] ); $this->assertNull( $data['example'] ); - $this->assertNull( $data['category'] ); - $this->assertNull( $data['textdomain'] ); - $this->assertFalse( $data['is_dynamic'] ); $this->assertSameSets( array( array() ), $data['variations'] ); + $this->assertSameSets( array(), $data['block_hooks'], 'invalid block_hooks defaults to empty array' ); + $this->assertSameSets( array(), $data['editor_script_handles'] ); + $this->assertSameSets( array(), $data['script_handles'] ); + $this->assertSameSets( array(), $data['view_script_handles'] ); + $this->assertSameSets( array(), $data['editor_style_handles'] ); + $this->assertSameSets( array(), $data['style_handles'] ); + $this->assertFalse( $data['is_dynamic'] ); // Deprecated properties. $this->assertNull( $data['editor_script'] ); $this->assertNull( $data['script'] ); $this->assertNull( $data['view_script'] ); $this->assertNull( $data['editor_style'] ); $this->assertNull( $data['style'] ); - } /** * @ticket 47620 * @ticket 57585 + * @ticket 59346 */ public function test_get_item_defaults() { $block_type = 'fake/false'; $settings = array( 'title' => false, - 'description' => false, + 'category' => false, + 'parent' => false, + 'ancestor' => false, 'icon' => false, + 'description' => false, + 'keywords' => false, + 'textdomain' => false, 'attributes' => false, 'provides_context' => false, 'uses_context' => false, - 'category' => false, + 'selectors' => false, + 'supports' => false, + 'styles' => false, + 'example' => false, + 'variations' => false, + 'block_hooks' => false, 'editor_script' => false, 'script' => false, 'view_script' => false, 'editor_style' => false, 'style' => false, - 'keywords' => false, - 'parent' => false, - 'ancestor' => false, - 'selectors' => false, - 'supports' => false, - 'styles' => false, 'render_callback' => false, - 'textdomain' => false, - 'example' => false, - 'variations' => false, ); register_block_type( $block_type, $settings ); wp_set_current_user( self::$admin_id ); @@ -303,13 +305,13 @@ public function test_get_item_defaults() { $data = $response->get_data(); $this->assertSame( $block_type, $data['name'] ); $this->assertSame( '', $data['title'] ); - $this->assertSame( '', $data['description'] ); + $this->assertNull( $data['category'] ); + $this->assertSameSets( array(), $data['parent'] ); + $this->assertSameSets( array(), $data['ancestor'] ); $this->assertNull( $data['icon'] ); - $this->assertSameSets( array(), $data['editor_script_handles'] ); - $this->assertSameSets( array(), $data['script_handles'] ); - $this->assertSameSets( array(), $data['view_script_handles'] ); - $this->assertSameSets( array(), $data['editor_style_handles'] ); - $this->assertSameSets( array(), $data['style_handles'] ); + $this->assertSame( '', $data['description'] ); + $this->assertSameSets( array(), $data['keywords'] ); + $this->assertNull( $data['textdomain'] ); $this->assertSameSetsWithIndex( array( 'lock' => array( 'type' => 'object' ), @@ -318,18 +320,18 @@ public function test_get_item_defaults() { ); $this->assertSameSets( array(), $data['provides_context'] ); $this->assertSameSets( array(), $data['uses_context'] ); - $this->assertSameSets( array(), $data['keywords'] ); - $this->assertSameSets( array(), $data['parent'] ); - $this->assertSameSets( array(), $data['ancestor'] ); $this->assertSameSets( array(), $data['selectors'], 'selectors defaults to empty array' ); $this->assertSameSets( array(), $data['supports'] ); $this->assertSameSets( array(), $data['styles'] ); $this->assertNull( $data['example'] ); - $this->assertNull( $data['category'] ); - $this->assertNull( $data['example'] ); - $this->assertNull( $data['textdomain'] ); - $this->assertFalse( $data['is_dynamic'] ); $this->assertSameSets( array(), $data['variations'] ); + $this->assertSameSets( array(), $data['block_hooks'], 'block_hooks defaults to empty array' ); + $this->assertSameSets( array(), $data['editor_script_handles'] ); + $this->assertSameSets( array(), $data['script_handles'] ); + $this->assertSameSets( array(), $data['view_script_handles'] ); + $this->assertSameSets( array(), $data['editor_style_handles'] ); + $this->assertSameSets( array(), $data['style_handles'] ); + $this->assertFalse( $data['is_dynamic'] ); // Deprecated properties. $this->assertNull( $data['editor_script'] ); $this->assertNull( $data['script'] ); @@ -541,6 +543,7 @@ public function test_get_variation() { /** * @ticket 47620 * @ticket 57585 + * @ticket 59346 */ public function test_get_item_schema() { wp_set_current_user( self::$admin_id ); @@ -548,38 +551,38 @@ public function test_get_item_schema() { $response = rest_get_server()->dispatch( $request ); $data = $response->get_data(); $properties = $data['schema']['properties']; - $this->assertCount( 29, $properties ); + $this->assertCount( 30, $properties ); $this->assertArrayHasKey( 'api_version', $properties ); + $this->assertArrayHasKey( 'name', $properties ); $this->assertArrayHasKey( 'title', $properties ); + $this->assertArrayHasKey( 'category', $properties ); + $this->assertArrayHasKey( 'parent', $properties ); + $this->assertArrayHasKey( 'ancestor', $properties ); $this->assertArrayHasKey( 'icon', $properties ); $this->assertArrayHasKey( 'description', $properties ); $this->assertArrayHasKey( 'keywords', $properties ); - $this->assertArrayHasKey( 'styles', $properties ); $this->assertArrayHasKey( 'textdomain', $properties ); - $this->assertArrayHasKey( 'name', $properties ); $this->assertArrayHasKey( 'attributes', $properties ); + $this->assertArrayHasKey( 'provides_context', $properties ); + $this->assertArrayHasKey( 'uses_context', $properties ); $this->assertArrayHasKey( 'selectors', $properties, 'schema must contain selectors' ); $this->assertArrayHasKey( 'supports', $properties ); - $this->assertArrayHasKey( 'category', $properties ); - $this->assertArrayHasKey( 'is_dynamic', $properties ); + $this->assertArrayHasKey( 'styles', $properties ); + $this->assertArrayHasKey( 'example', $properties ); + $this->assertArrayHasKey( 'variations', $properties ); + $this->assertArrayHasKey( 'block_hooks', $properties ); $this->assertArrayHasKey( 'editor_script_handles', $properties ); $this->assertArrayHasKey( 'script_handles', $properties ); $this->assertArrayHasKey( 'view_script_handles', $properties ); $this->assertArrayHasKey( 'editor_style_handles', $properties ); $this->assertArrayHasKey( 'style_handles', $properties ); - $this->assertArrayHasKey( 'parent', $properties ); - $this->assertArrayHasKey( 'example', $properties ); - $this->assertArrayHasKey( 'uses_context', $properties ); - $this->assertArrayHasKey( 'provides_context', $properties ); - $this->assertArrayHasKey( 'variations', $properties ); - $this->assertArrayHasKey( 'ancestor', $properties ); + $this->assertArrayHasKey( 'is_dynamic', $properties ); // Deprecated properties. $this->assertArrayHasKey( 'editor_script', $properties ); $this->assertArrayHasKey( 'script', $properties ); $this->assertArrayHasKey( 'view_script', $properties ); $this->assertArrayHasKey( 'editor_style', $properties ); $this->assertArrayHasKey( 'style', $properties ); - } /** @@ -668,6 +671,7 @@ public function test_prepare_item_limit_fields() { * Util check block type object against. * * @since 5.5.0 + * @since 6.4.0 Added the `block_hooks` extra field. * * @param WP_Block_Type $block_type Sample block type. * @param array $data Data to compare against. @@ -681,23 +685,27 @@ protected function check_block_type_object( $block_type, $data, $links ) { $extra_fields = array( 'api_version', 'name', - 'category', - 'editor_script_handles', - 'script_handles', - 'view_script_handles', - 'editor_style_handles', - 'style_handles', 'title', + 'category', + 'parent', + 'ancestor', 'icon', 'description', 'keywords', - 'parent', + 'textdomain', 'provides_context', 'uses_context', + 'selectors', 'supports', 'styles', - 'textdomain', 'example', + 'variations', + 'block_hooks', + 'editor_script_handles', + 'script_handles', + 'view_script_handles', + 'editor_style_handles', + 'style_handles', // Deprecated fields. 'editor_script', 'script', diff --git a/tests/phpunit/tests/rest-api/rest-categories-controller.php b/tests/phpunit/tests/rest-api/rest-categories-controller.php index a6ad0cf7005b0..a9019f227d723 100644 --- a/tests/phpunit/tests/rest-api/rest-categories-controller.php +++ b/tests/phpunit/tests/rest-api/rest-categories-controller.php @@ -631,8 +631,8 @@ public function test_get_terms_pagination_headers() { // 3rd page. self::factory()->category->create(); - $total_categories++; - $total_pages++; + ++$total_categories; + ++$total_pages; $request = new WP_REST_Request( 'GET', '/wp/v2/categories' ); $request->set_param( 'page', 3 ); $response = rest_get_server()->dispatch( $request ); diff --git a/tests/phpunit/tests/rest-api/rest-comments-controller.php b/tests/phpunit/tests/rest-api/rest-comments-controller.php index 9b4444f559554..ab8f672c5de8a 100644 --- a/tests/phpunit/tests/rest-api/rest-comments-controller.php +++ b/tests/phpunit/tests/rest-api/rest-comments-controller.php @@ -828,8 +828,8 @@ public function test_get_comments_pagination_headers() { 'comment_post_ID' => self::$post_id, ) ); - $total_comments++; - $total_pages++; + ++$total_comments; + ++$total_pages; $request = new WP_REST_Request( 'GET', '/wp/v2/comments' ); $request->set_param( 'page', 3 ); $response = rest_get_server()->dispatch( $request ); diff --git a/tests/phpunit/tests/rest-api/rest-controller.php b/tests/phpunit/tests/rest-api/rest-controller.php index f7da75327a489..33ac4f3c814f7 100644 --- a/tests/phpunit/tests/rest-api/rest-controller.php +++ b/tests/phpunit/tests/rest-api/rest-controller.php @@ -362,7 +362,6 @@ public function test_get_endpoint_args_for_item_schema_arg_properties() { // Ignored properties. $this->assertArrayNotHasKey( 'ignored_prop', $args['someobject'] ); - } /** diff --git a/tests/phpunit/tests/rest-api/rest-navigation-fallback-controller.php b/tests/phpunit/tests/rest-api/rest-navigation-fallback-controller.php index b2374f3ff6b3e..43111020e255b 100644 --- a/tests/phpunit/tests/rest-api/rest-navigation-fallback-controller.php +++ b/tests/phpunit/tests/rest-api/rest-navigation-fallback-controller.php @@ -92,7 +92,6 @@ public function test_get_item() { $navs_in_db = $this->get_navigations_in_database(); $this->assertCount( 1, $navs_in_db, 'Only a single Navigation menu should be present in the database.' ); - } /** diff --git a/tests/phpunit/tests/rest-api/rest-pages-controller.php b/tests/phpunit/tests/rest-api/rest-pages-controller.php index 9900c5a003afe..75c005b275152 100644 --- a/tests/phpunit/tests/rest-api/rest-pages-controller.php +++ b/tests/phpunit/tests/rest-api/rest-pages-controller.php @@ -787,5 +787,4 @@ protected function set_post_data( $args = array() ) { $args['type'] = 'page'; return $args; } - } diff --git a/tests/phpunit/tests/rest-api/rest-pattern-directory-controller.php b/tests/phpunit/tests/rest-api/rest-pattern-directory-controller.php index 77b99af76b19d..eda42beebe25f 100644 --- a/tests/phpunit/tests/rest-api/rest-pattern-directory-controller.php +++ b/tests/phpunit/tests/rest-api/rest-pattern-directory-controller.php @@ -310,7 +310,7 @@ public function test_get_items_prepare_filter() { // Test that filter changes uncached values. add_filter( 'rest_prepare_block_pattern', - static function( $response ) { + static function ( $response ) { return 'initial value'; } ); @@ -324,7 +324,7 @@ static function( $response ) { // Test that filter changes cached values (the previous request primed the cache). add_filter( 'rest_prepare_block_pattern', - static function( $response ) { + static function ( $response ) { return 'modified the cache'; }, 11 @@ -653,7 +653,6 @@ public function test_transient_keys_get_generated_correctly( $parameters_1, $par } else { $this->assertNotSame( $result_1, $result_2, $message ); } - } /** diff --git a/tests/phpunit/tests/rest-api/rest-plugins-controller.php b/tests/phpunit/tests/rest-api/rest-plugins-controller.php index 1375c81061b8e..1da20c83159d4 100644 --- a/tests/phpunit/tests/rest-api/rest-plugins-controller.php +++ b/tests/phpunit/tests/rest-api/rest-plugins-controller.php @@ -537,7 +537,7 @@ public function test_create_item_unknown_plugin() { wp_set_current_user( self::$super_admin ); add_filter( 'pre_http_request', - static function() { + static function () { /* * Mocks the request to: * https://api.wordpress.org/plugins/info/1.2/?action=plugin_information&request%5Bslug%5D=alex-says-this-block-definitely-doesnt-exist&request%5Bfields%5D%5Bsections%5D=0&request%5Bfields%5D%5Blanguage_packs%5D=1&request%5Blocale%5D=en_US&request%5Bwp_version%5D=5.9 diff --git a/tests/phpunit/tests/rest-api/rest-post-meta-fields.php b/tests/phpunit/tests/rest-api/rest-post-meta-fields.php index 2142e805820a6..11d06b86bef74 100644 --- a/tests/phpunit/tests/rest-api/rest-post-meta-fields.php +++ b/tests/phpunit/tests/rest-api/rest-post-meta-fields.php @@ -2742,7 +2742,7 @@ public function test_boolean_meta_update_to_false_stores_0() { 'single' => true, 'type' => 'boolean', 'show_in_rest' => true, - 'sanitize_callback' => static function( $value ) { + 'sanitize_callback' => static function ( $value ) { return $value ? '1' : '0'; }, ) diff --git a/tests/phpunit/tests/rest-api/rest-post-statuses-controller.php b/tests/phpunit/tests/rest-api/rest-post-statuses-controller.php index 366e59645947e..f6bb1d795a114 100644 --- a/tests/phpunit/tests/rest-api/rest-post-statuses-controller.php +++ b/tests/phpunit/tests/rest-api/rest-post-statuses-controller.php @@ -225,5 +225,4 @@ protected function check_post_status_object_response( $response ) { $obj = get_post_status_object( 'publish' ); $this->check_post_status_obj( $obj, $data, $response->get_links() ); } - } diff --git a/tests/phpunit/tests/rest-api/rest-post-types-controller.php b/tests/phpunit/tests/rest-api/rest-post-types-controller.php index 1c2a0b53b4ef1..d881b9c8a07dd 100644 --- a/tests/phpunit/tests/rest-api/rest-post-types-controller.php +++ b/tests/phpunit/tests/rest-api/rest-post-types-controller.php @@ -263,5 +263,4 @@ protected function check_post_type_object_response( $context, $response, $post_t $obj = get_post_type_object( $post_type ); $this->check_post_type_obj( $context, $obj, $data, $response->get_links() ); } - } diff --git a/tests/phpunit/tests/rest-api/rest-posts-controller.php b/tests/phpunit/tests/rest-api/rest-posts-controller.php index 353325fc81a27..3b584642956eb 100644 --- a/tests/phpunit/tests/rest-api/rest-posts-controller.php +++ b/tests/phpunit/tests/rest-api/rest-posts-controller.php @@ -1662,8 +1662,8 @@ public function test_get_items_pagination_headers() { // 3rd page. self::factory()->post->create(); - $total_posts++; - $total_pages++; + ++$total_posts; + ++$total_pages; $request = new WP_REST_Request( 'GET', '/wp/v2/posts' ); $request->set_param( 'page', 3 ); $response = rest_get_server()->dispatch( $request ); @@ -2278,8 +2278,8 @@ public function test_prepare_item_limit_fields() { */ public function test_prepare_item_filters_content_when_needed() { $filter_count = 0; - $filter_content = static function() use ( &$filter_count ) { - $filter_count++; + $filter_content = static function () use ( &$filter_count ) { + ++$filter_count; return '

    Filtered content.

    '; }; add_filter( 'the_content', $filter_content ); @@ -2314,8 +2314,8 @@ public function test_prepare_item_filters_content_when_needed() { */ public function test_prepare_item_skips_content_filter_if_not_needed() { $filter_count = 0; - $filter_content = static function() use ( &$filter_count ) { - $filter_count++; + $filter_content = static function () use ( &$filter_count ) { + ++$filter_count; return '

    Filtered content.

    '; }; add_filter( 'the_content', $filter_content ); @@ -4302,7 +4302,6 @@ public function test_register_post_type_invalid_controller() { $routes = rest_get_server()->get_routes(); $this->assertArrayNotHasKey( '/wp/v2/invalid-controller', $routes ); _unregister_post_type( 'invalid-controller' ); - } public function test_get_item_schema() { @@ -5028,7 +5027,6 @@ public function test_generated_permalink_template_generated_slug_for_posts() { $this->assertSame( 200, $response->get_status() ); $this->assertArrayNotHasKey( 'permalink_template', $data ); $this->assertArrayNotHasKey( 'generated_slug', $data ); - } /** diff --git a/tests/phpunit/tests/rest-api/rest-request-validation.php b/tests/phpunit/tests/rest-api/rest-request-validation.php index 4444fb6065120..3d81536099494 100644 --- a/tests/phpunit/tests/rest-api/rest-request-validation.php +++ b/tests/phpunit/tests/rest-api/rest-request-validation.php @@ -202,5 +202,4 @@ public function test_validate_less_than_max_exclusive() { $ret = rest_validate_request_arg( 9, $request, 'lessthanmax' ); $this->assertTrue( $ret ); } - } diff --git a/tests/phpunit/tests/rest-api/rest-search-controller.php b/tests/phpunit/tests/rest-api/rest-search-controller.php index 2e39d385d9965..7345d45f8632f 100644 --- a/tests/phpunit/tests/rest-api/rest-search-controller.php +++ b/tests/phpunit/tests/rest-api/rest-search-controller.php @@ -888,5 +888,4 @@ public function test_get_items_search_terms_exclude_ids() { wp_list_pluck( $response->get_data(), 'id' ) ); } - } diff --git a/tests/phpunit/tests/rest-api/rest-server.php b/tests/phpunit/tests/rest-api/rest-server.php index b752b83872af2..6432026697a59 100644 --- a/tests/phpunit/tests/rest-api/rest-server.php +++ b/tests/phpunit/tests/rest-api/rest-server.php @@ -937,7 +937,7 @@ public function test_link_embedding_without_links() { * @ticket 56566 */ public function test_link_embedding_returning_wp_error() { - $return_wp_error = static function() { + $return_wp_error = static function () { return new WP_Error( 'some-error', 'This is not valid!' ); }; add_filter( 'rest_pre_dispatch', $return_wp_error ); @@ -1119,6 +1119,59 @@ public function test_get_index() { $this->assertArrayHasKey( 'site_icon_url', $data ); } + /** + * @ticket 57902 + * + * @covers WP_REST_Server::get_index + */ + public function test_get_index_fields_name() { + $server = new WP_REST_Server(); + + $request = new WP_REST_Request( 'GET', '/' ); + $request->set_param( '_fields', 'name' ); + $index = $server->dispatch( $request ); + $index = rest_filter_response_fields( $index, $server, $request ); + $data = $index->get_data(); + $links = $index->get_links(); + + $this->assertArrayHasKey( 'name', $data ); + $this->assertArrayNotHasKey( 'help', $links ); + } + + /** + * @ticket 57902 + * + * @covers WP_REST_Server::get_index + * + * @dataProvider data_get_index_should_return_help_and_not_name + * + * @param string $field The field to add to the request. + */ + public function test_get_index_should_return_help_and_not_name( $field ) { + $server = new WP_REST_Server(); + + $request = new WP_REST_Request( 'GET', '/' ); + $request->set_param( '_fields', $field ); + $index = $server->dispatch( $request ); + $index = rest_filter_response_fields( $index, $server, $request ); + $data = $index->get_data(); + $links = $index->get_links(); + + $this->assertArrayNotHasKey( 'name', $data ); + $this->assertArrayHasKey( 'help', $links ); + } + + /** + * Data provider. + * + * @throws Exception + * + * @return array + */ + public function data_get_index_should_return_help_and_not_name() { + return self::text_array_to_dataprovider( array( '_links', '_embedded' ) ); + } + /** * @ticket 50152 */ @@ -1671,7 +1724,7 @@ public function test_get_routes_no_namespace_overriding() { '/test', array( 'methods' => array( 'GET' ), - 'callback' => static function() { + 'callback' => static function () { return new WP_REST_Response( 'data', 204 ); }, 'permission_callback' => '__return_true', @@ -1682,7 +1735,7 @@ public function test_get_routes_no_namespace_overriding() { '/test', array( 'methods' => array( 'GET' ), - 'callback' => static function() { + 'callback' => static function () { return new WP_REST_Response( 'data', 204 ); }, 'permission_callback' => '__return_true', @@ -2080,7 +2133,7 @@ public function test_batch_v1_partial_error() { public function test_batch_v1_max_requests() { add_filter( 'rest_get_max_batch_size', - static function() { + static function () { return 5; } ); @@ -2188,7 +2241,7 @@ public function test_json_encode_error_results_in_500_status_code() { array( array( 'methods' => \WP_REST_Server::READABLE, - 'callback' => static function() { + 'callback' => static function () { return new \WP_REST_Response( INF ); }, 'permission_callback' => '__return_true', diff --git a/tests/phpunit/tests/rest-api/rest-sidebars-controller.php b/tests/phpunit/tests/rest-api/rest-sidebars-controller.php index 8210d916f3bdb..0bddf12df92b9 100644 --- a/tests/phpunit/tests/rest-api/rest-sidebars-controller.php +++ b/tests/phpunit/tests/rest-api/rest-sidebars-controller.php @@ -311,7 +311,6 @@ public function test_get_items_basic_sidebar() { ), $data ); - } /** @@ -1013,7 +1012,7 @@ protected function remove_links( $data ) { if ( isset( $item['_links'] ) ) { unset( $data[ $count ]['_links'] ); } - $count++; + ++$count; } return $data; diff --git a/tests/phpunit/tests/rest-api/rest-tags-controller.php b/tests/phpunit/tests/rest-api/rest-tags-controller.php index d50bcedaaa3e3..6fb75eb93ec0e 100644 --- a/tests/phpunit/tests/rest-api/rest-tags-controller.php +++ b/tests/phpunit/tests/rest-api/rest-tags-controller.php @@ -415,7 +415,7 @@ public function test_get_terms_post_args_paging() { $i = 0; foreach ( $tags as $tag ) { $this->assertSame( $tag['name'], "Tag {$i}" ); - $i++; + ++$i; } $request = new WP_REST_Request( 'GET', '/wp/v2/tags' ); @@ -430,7 +430,7 @@ public function test_get_terms_post_args_paging() { foreach ( $tags as $tag ) { $this->assertSame( $tag['name'], "Tag {$i}" ); - $i++; + ++$i; } } @@ -599,8 +599,8 @@ public function test_get_terms_pagination_headers() { // 3rd page. self::factory()->tag->create(); - $total_tags++; - $total_pages++; + ++$total_tags; + ++$total_pages; $request = new WP_REST_Request( 'GET', '/wp/v2/tags' ); $request->set_param( 'page', 3 ); $response = rest_get_server()->dispatch( $request ); diff --git a/tests/phpunit/tests/rest-api/rest-taxonomies-controller.php b/tests/phpunit/tests/rest-api/rest-taxonomies-controller.php index 6da465be25462..264e9cf8c2889 100644 --- a/tests/phpunit/tests/rest-api/rest-taxonomies-controller.php +++ b/tests/phpunit/tests/rest-api/rest-taxonomies-controller.php @@ -316,5 +316,4 @@ public function test_get_for_taxonomy_returns_terms_controller_if_custom_class_n get_taxonomy( 'test' )->get_rest_controller() ); } - } diff --git a/tests/phpunit/tests/rest-api/rest-test-controller.php b/tests/phpunit/tests/rest-api/rest-test-controller.php index 042f37cf8bf48..48b326407d9f2 100644 --- a/tests/phpunit/tests/rest-api/rest-test-controller.php +++ b/tests/phpunit/tests/rest-api/rest-test-controller.php @@ -180,5 +180,4 @@ public function get_item_schema() { return $this->add_additional_fields_schema( $schema ); } - } diff --git a/tests/phpunit/tests/rest-api/rest-users-controller.php b/tests/phpunit/tests/rest-api/rest-users-controller.php index 8373f8d200fa6..f4dbc2d57f379 100644 --- a/tests/phpunit/tests/rest-api/rest-users-controller.php +++ b/tests/phpunit/tests/rest-api/rest-users-controller.php @@ -339,8 +339,8 @@ public function test_get_items_pagination_headers() { // 3rd page. self::factory()->user->create(); - $total_users++; - $total_pages++; + ++$total_users; + ++$total_pages; $request = new WP_REST_Request( 'GET', '/wp/v2/users' ); $request->set_param( 'page', 3 ); $response = rest_get_server()->dispatch( $request ); @@ -632,7 +632,6 @@ public function test_get_items_include_query() { $response = rest_get_server()->dispatch( $request ); $data = $response->get_data(); $this->assertCount( 0, $data ); - } public function test_get_items_exclude_query() { @@ -2701,7 +2700,6 @@ public function test_get_item_schema() { $this->assertArrayHasKey( 'url', $properties ); $this->assertArrayHasKey( 'username', $properties ); $this->assertArrayHasKey( 'roles', $properties ); - } public function test_get_item_schema_show_avatar() { diff --git a/tests/phpunit/tests/rest-api/rest-widget-types-controller.php b/tests/phpunit/tests/rest-api/rest-widget-types-controller.php index e9b46d444f371..cac586447e385 100644 --- a/tests/phpunit/tests/rest-api/rest-widget-types-controller.php +++ b/tests/phpunit/tests/rest-api/rest-widget-types-controller.php @@ -161,7 +161,7 @@ public function test_get_items_removes_duplicates() { $data = $response->get_data(); $text_widgets = array_filter( $data, - static function( $widget ) { + static function ( $widget ) { return 'text' === $widget['id']; } ); @@ -189,7 +189,7 @@ public function test_get_widget_legacy() { wp_register_sidebar_widget( $widget_id, 'WP legacy widget', - static function() {} + static function () {} ); wp_set_current_user( self::$admin_id ); $request = new WP_REST_Request( 'GET', '/wp/v2/widget-types/' . $widget_id ); @@ -220,7 +220,7 @@ public function test_get_widgets_decodes_html_entities() { wp_register_sidebar_widget( $widget_id, '‘Legacy ‑ Archive ‑ Widget’', - static function() {}, + static function () {}, array( 'description' => '“A great & interesting archive of your site’s posts!”', ) diff --git a/tests/phpunit/tests/rest-api/rest-widgets-controller.php b/tests/phpunit/tests/rest-api/rest-widgets-controller.php index 22516737c338d..69672a722627c 100644 --- a/tests/phpunit/tests/rest-api/rest-widgets-controller.php +++ b/tests/phpunit/tests/rest-api/rest-widgets-controller.php @@ -1551,7 +1551,7 @@ protected function remove_links( $data ) { if ( is_array( $item ) && isset( $item['_links'] ) ) { unset( $data[ $count ]['_links'] ); } - $count++; + ++$count; } return $data; diff --git a/tests/phpunit/tests/rest-api/wpRestBlockPatternCategoriesController.php b/tests/phpunit/tests/rest-api/wpRestBlockPatternCategoriesController.php index 77481112a0f87..63c2256b36ba3 100644 --- a/tests/phpunit/tests/rest-api/wpRestBlockPatternCategoriesController.php +++ b/tests/phpunit/tests/rest-api/wpRestBlockPatternCategoriesController.php @@ -65,7 +65,7 @@ public static function wpSetupBeforeClass( $factory ) { self::$registry_instance_property = new ReflectionProperty( 'WP_Block_Pattern_Categories_Registry', 'instance' ); self::$registry_instance_property->setAccessible( true ); $test_registry = new WP_Block_Pattern_Categories_Registry(); - self::$registry_instance_property->setValue( $test_registry ); + self::$registry_instance_property->setValue( null, $test_registry ); // Register some categories in the test registry. $test_registry->register( @@ -88,7 +88,7 @@ public static function wpTearDownAfterClass() { self::delete_user( self::$admin_id ); // Restore the original registry instance. - self::$registry_instance_property->setValue( self::$orig_registry ); + self::$registry_instance_property->setValue( null, self::$orig_registry ); self::$registry_instance_property->setAccessible( false ); self::$registry_instance_property = null; self::$orig_registry = null; diff --git a/tests/phpunit/tests/rest-api/wpRestBlockPatternsController.php b/tests/phpunit/tests/rest-api/wpRestBlockPatternsController.php index 5482e32cbede2..2dc3bb83a38ac 100644 --- a/tests/phpunit/tests/rest-api/wpRestBlockPatternsController.php +++ b/tests/phpunit/tests/rest-api/wpRestBlockPatternsController.php @@ -65,7 +65,7 @@ public static function wpSetUpBeforeClass( $factory ) { self::$registry_instance_property = new ReflectionProperty( 'WP_Block_Patterns_Registry', 'instance' ); self::$registry_instance_property->setAccessible( true ); $test_registry = new WP_Block_Pattern_Categories_Registry(); - self::$registry_instance_property->setValue( $test_registry ); + self::$registry_instance_property->setValue( null, $test_registry ); // Register some patterns in the test registry. $test_registry->register( @@ -106,7 +106,7 @@ public static function wpTearDownAfterClass() { self::delete_user( self::$admin_id ); // Restore the original registry instance. - self::$registry_instance_property->setValue( self::$orig_registry ); + self::$registry_instance_property->setValue( null, self::$orig_registry ); self::$registry_instance_property->setAccessible( false ); self::$registry_instance_property = null; self::$orig_registry = null; diff --git a/tests/phpunit/tests/rest-api/wpRestMenuItemsController.php b/tests/phpunit/tests/rest-api/wpRestMenuItemsController.php index 4687700cc798f..72dfab5f466e1 100644 --- a/tests/phpunit/tests/rest-api/wpRestMenuItemsController.php +++ b/tests/phpunit/tests/rest-api/wpRestMenuItemsController.php @@ -918,7 +918,7 @@ protected function check_menu_item_data( $post, $data, $context, $links ) { foreach ( $taxonomies as $taxonomy ) { $this->assertSame( $taxonomy->name, $links['https://api.w.org/term'][ $num ]['attributes']['taxonomy'] ); $this->assertSame( add_query_arg( 'post', $data['id'], rest_url( 'wp/v2/' . $taxonomy->rest_base ) ), $links['https://api.w.org/term'][ $num ]['href'] ); - $num++; + ++$num; } if ( 'post_type' === $data['type'] ) { diff --git a/tests/phpunit/tests/rest-api/wpRestUrlDetailsController.php b/tests/phpunit/tests/rest-api/wpRestUrlDetailsController.php index 24cc517365859..27f526f9d230e 100644 --- a/tests/phpunit/tests/rest-api/wpRestUrlDetailsController.php +++ b/tests/phpunit/tests/rest-api/wpRestUrlDetailsController.php @@ -284,7 +284,6 @@ public function test_get_items_fails_for_url_which_returns_empty_body_for_succes $expected = strtolower( 'Unable to retrieve body from response at this URL' ); $this->assertStringContainsString( $expected, strtolower( $data['message'] ), 'Response "message" does not contain "' . $expected . '"' ); - } /** @@ -297,7 +296,7 @@ public function test_can_filter_http_request_args_via_filter() { add_filter( 'rest_url_details_http_request_args', - static function( $args, $url ) { + static function ( $args, $url ) { return array_merge( $args, array( @@ -340,7 +339,7 @@ public function test_will_return_from_cache_if_populated() { // Force cache to return a known value as the remote URL http response body. add_filter( "pre_site_transient_{$transient_name}", - static function() { + static function () { return 'This value from cache.'; } ); @@ -368,7 +367,7 @@ static function() { public function test_allows_filtering_data_retrieved_for_a_given_url() { add_filter( 'rest_prepare_url_details', - static function( $response ) { + static function ( $response ) { $data = $response->get_data(); @@ -382,7 +381,6 @@ static function( $response ) { ); return $response; - } ); @@ -419,7 +417,7 @@ public function test_allows_filtering_response() { */ add_filter( 'rest_prepare_url_details', - static function( $response, $url ) { + static function ( $response, $url ) { return new WP_REST_Response( array( 'status' => 418, diff --git a/tests/phpunit/tests/rewrite/addRewriteEndpoint.php b/tests/phpunit/tests/rewrite/addRewriteEndpoint.php index 0c4c7a332d537..7b3ada5febe7d 100644 --- a/tests/phpunit/tests/rewrite/addRewriteEndpoint.php +++ b/tests/phpunit/tests/rewrite/addRewriteEndpoint.php @@ -108,5 +108,4 @@ public function test_page_endpoint_only_applies_on_page() { $this->assertTrue( is_404() ); $this->assertSame( '', get_query_var( 'page_endpoint' ) ); } - } diff --git a/tests/phpunit/tests/robots.php b/tests/phpunit/tests/robots.php index 87b0e6fb905e0..356224e79b51d 100644 --- a/tests/phpunit/tests/robots.php +++ b/tests/phpunit/tests/robots.php @@ -39,7 +39,7 @@ public function test_wp_robots_renders_when_relevant() { public function test_wp_robots_parses_directives_correctly() { add_filter( 'wp_robots', - static function( array $robots ) { + static function ( array $robots ) { // Directives that should have values must use strings. $robots['directive-with-value'] = 'yes'; $robots['directive-with-numeric-value'] = '1'; diff --git a/tests/phpunit/tests/shortcode.php b/tests/phpunit/tests/shortcode.php index 1c19cfb42d046..e8aa82c5a806e 100644 --- a/tests/phpunit/tests/shortcode.php +++ b/tests/phpunit/tests/shortcode.php @@ -781,7 +781,6 @@ public function test_php_and_js_shortcode_attribute_regexes_match() { $js = str_replace( "\'", "'", $matches[1] ); $this->assertSame( $php, $js ); - } /** diff --git a/tests/phpunit/tests/style-engine/styleEngine.php b/tests/phpunit/tests/style-engine/styleEngine.php index 3d6a47aa9485d..b1a01563c2097 100644 --- a/tests/phpunit/tests/style-engine/styleEngine.php +++ b/tests/phpunit/tests/style-engine/styleEngine.php @@ -509,6 +509,25 @@ public function data_wp_style_engine_get_styles() { ), ), ), + + 'inline_background_image_url_with_background_size' => array( + 'block_styles' => array( + 'background' => array( + 'backgroundImage' => array( + 'url' => 'https://example.com/image.jpg', + ), + 'backgroundSize' => 'cover', + ), + ), + 'options' => array(), + 'expected_output' => array( + 'css' => "background-image:url('https://example.com/image.jpg');background-size:cover;", + 'declarations' => array( + 'background-image' => "url('https://example.com/image.jpg')", + 'background-size' => 'cover', + ), + ), + ), ); } @@ -654,6 +673,7 @@ public function test_should_return_stylesheet_from_css_rules() { /** * Tests that incoming styles are deduped and merged. * + * @ticket 58811 * @ticket 56467 * * @covers ::wp_style_engine_get_stylesheet_from_css_rules @@ -697,6 +717,6 @@ public function test_should_dedupe_and_merge_css_rules() { $compiled_stylesheet = wp_style_engine_get_stylesheet_from_css_rules( $css_rules, array( 'prettify' => false ) ); - $this->assertSame( '.gandalf{color:white;height:190px;border-style:dotted;padding:10px;margin-bottom:100px;}.dumbledore,.rincewind{color:grey;height:90px;border-style:dotted;}', $compiled_stylesheet ); + $this->assertSame( '.gandalf{color:white;height:190px;border-style:dotted;padding:10px;margin-bottom:100px;}.dumbledore{color:grey;height:90px;border-style:dotted;}.rincewind{color:grey;height:90px;border-style:dotted;}', $compiled_stylesheet ); } } diff --git a/tests/phpunit/tests/style-engine/wpStyleEngineProcessor.php b/tests/phpunit/tests/style-engine/wpStyleEngineProcessor.php index 46201dab14ff1..d38f46d0de5b3 100644 --- a/tests/phpunit/tests/style-engine/wpStyleEngineProcessor.php +++ b/tests/phpunit/tests/style-engine/wpStyleEngineProcessor.php @@ -81,16 +81,19 @@ public function test_should_return_prettified_css_rules() { $a_wonderful_processor = new WP_Style_Engine_Processor(); $a_wonderful_processor->add_rules( array( $a_wonderful_css_rule, $a_very_wonderful_css_rule, $a_more_wonderful_css_rule ) ); - $expected = '.a-more-wonderful-rule { - font-family: Wonderful sans; - font-size: 1em; + $expected = '.a-wonderful-rule { + color: var(--wonderful-color); background-color: orange; } -.a-wonderful-rule, .a-very_wonderful-rule { color: var(--wonderful-color); background-color: orange; } +.a-more-wonderful-rule { + font-family: Wonderful sans; + font-size: 1em; + background-color: orange; +} '; $this->assertSameIgnoreEOL( $expected, @@ -184,6 +187,9 @@ public function test_should_dedupe_and_merge_css_declarations() { /** * Tests printing out 'unoptimized' CSS, that is, uncombined selectors and duplicate CSS rules. * + * This is the default. + * + * @ticket 58811 * @ticket 56467 * * @covers ::get_css @@ -230,11 +236,12 @@ public function test_should_not_optimize_css_output() { /** * Tests that 'optimized' CSS is output, that is, that duplicate CSS rules are combined under their corresponding selectors. * + * @ticket 58811 * @ticket 56467 * * @covers ::get_css */ - public function test_should_optimize_css_output_by_default() { + public function test_should_not_optimize_css_output_by_default() { $a_sweet_rule = new WP_Style_Engine_CSS_Rule( '.a-sweet-rule', array( @@ -255,14 +262,15 @@ public function test_should_optimize_css_output_by_default() { $a_sweet_processor->add_rules( array( $a_sweet_rule, $a_sweeter_rule ) ); $this->assertSame( - '.a-sweet-rule,#an-even-sweeter-rule > marquee{color:var(--sweet-color);background-color:purple;}', + '.a-sweet-rule{color:var(--sweet-color);background-color:purple;}#an-even-sweeter-rule > marquee{color:var(--sweet-color);background-color:purple;}', $a_sweet_processor->get_css( array( 'prettify' => false ) ) ); } /** - * Tests that incoming CSS rules are merged with existing CSS rules. + * Tests that incoming CSS rules are optimized and merged with existing CSS rules. * + * @ticket 58811 * @ticket 56467 * * @covers ::add_rules @@ -286,7 +294,12 @@ public function test_should_combine_previously_added_css_rules() { $this->assertSame( '.a-lovely-rule,.a-lovelier-rule{border-color:purple;}', - $a_lovely_processor->get_css( array( 'prettify' => false ) ), + $a_lovely_processor->get_css( + array( + 'prettify' => false, + 'optimize' => true, + ) + ), 'Return value of get_css() does not match expectations when combining 2 CSS rules' ); @@ -308,7 +321,12 @@ public function test_should_combine_previously_added_css_rules() { $this->assertSame( '.a-lovely-rule,.a-lovelier-rule,.a-most-lovely-rule,.a-perfectly-lovely-rule{border-color:purple;}', - $a_lovely_processor->get_css( array( 'prettify' => false ) ), + $a_lovely_processor->get_css( + array( + 'prettify' => false, + 'optimize' => true, + ) + ), 'Return value of get_css() does not match expectations when combining 4 CSS rules' ); } diff --git a/tests/phpunit/tests/taxonomy.php b/tests/phpunit/tests/taxonomy.php index ce04e22a1b09a..38770e53e04d5 100644 --- a/tests/phpunit/tests/taxonomy.php +++ b/tests/phpunit/tests/taxonomy.php @@ -318,7 +318,6 @@ public function test_registering_taxonomies_to_object_types() { unset( $GLOBALS['wp_taxonomies'][ $tax ] ); _unregister_post_type( $post_type ); - } /** diff --git a/tests/phpunit/tests/template.php b/tests/phpunit/tests/template.php index c79082dff3171..82505bba8e4f0 100644 --- a/tests/phpunit/tests/template.php +++ b/tests/phpunit/tests/template.php @@ -629,6 +629,44 @@ public function data_extra_args_for_add_settings_section() { ); } + /** + * Tests that `locate_template()` uses the current theme even after switching the theme. + * + * @ticket 18298 + * + * @covers ::locate_template + */ + public function test_locate_template_uses_current_theme() { + $themes = wp_get_themes(); + + // Look for parent themes with an index.php template. + $relevant_themes = array(); + foreach ( $themes as $theme ) { + if ( $theme->get_stylesheet() !== $theme->get_template() ) { + continue; + } + $php_templates = $theme['Template Files']; + if ( ! isset( $php_templates['index.php'] ) ) { + continue; + } + $relevant_themes[] = $theme; + } + if ( count( $relevant_themes ) < 2 ) { + $this->markTestSkipped( 'Test requires at least two parent themes with an index.php template.' ); + } + + $template_names = array( 'index.php' ); + + $old_theme = $relevant_themes[0]; + $new_theme = $relevant_themes[1]; + + switch_theme( $old_theme->get_stylesheet() ); + $this->assertSame( $old_theme->get_stylesheet_directory() . '/index.php', locate_template( $template_names ), 'Incorrect index template found in initial theme.' ); + + switch_theme( $new_theme->get_stylesheet() ); + $this->assertSame( $new_theme->get_stylesheet_directory() . '/index.php', locate_template( $template_names ), 'Incorrect index template found in theme after switch.' ); + } + public function assertTemplateHierarchy( $url, array $expected, $message = '' ) { $this->go_to( $url ); $hierarchy = $this->get_template_hierarchy(); @@ -678,5 +716,4 @@ public function log_template_hierarchy( array $hierarchy ) { $this->hierarchy = array_merge( $this->hierarchy, $hierarchy ); return $hierarchy; } - } diff --git a/tests/phpunit/tests/term/cache.php b/tests/phpunit/tests/term/cache.php index 8efd55da00d0c..ac418fbcfd5c0 100644 --- a/tests/phpunit/tests/term/cache.php +++ b/tests/phpunit/tests/term/cache.php @@ -73,12 +73,12 @@ public function test_hierachy_invalidation() { case 2: $parent = wp_insert_term( 'Child' . $i, $tax, array( 'parent' => $parent_id ) ); $parent_id = $parent['term_id']; - $children++; + ++$children; break; case 3: wp_insert_term( 'Grandchild' . $i, $tax, array( 'parent' => $parent_id ) ); $parent_id = 0; - $children++; + ++$children; break; } @@ -93,7 +93,7 @@ public function test_hierachy_invalidation() { if ( 0 === ( $i % 3 ) ) { $step = 1; } else { - $step++; + ++$step; } } @@ -418,7 +418,7 @@ public function test_get_term_by_does_not_prime_term_meta_cache() { $this->assertSame( $num_queries, get_num_queries() ); $term_meta = get_term_meta( $term_id, 'foo', true ); - $num_queries++; + ++$num_queries; $this->assertSame( $term_meta, 'bar' ); $this->assertSame( $num_queries, get_num_queries() ); } diff --git a/tests/phpunit/tests/term/getTerm.php b/tests/phpunit/tests/term/getTerm.php index 36567a7830884..ed6acab691fc5 100644 --- a/tests/phpunit/tests/term/getTerm.php +++ b/tests/phpunit/tests/term/getTerm.php @@ -233,7 +233,7 @@ public function test_shared_term_in_cache_should_be_ignored_when_specifying_a_di // Database should be hit again. $found = get_term( $terms[1]['term_id'], 'wptests_tax_2' ); - $num_queries++; + ++$num_queries; $this->assertSame( $num_queries, get_num_queries() ); $this->assertInstanceOf( 'WP_Term', $found ); diff --git a/tests/phpunit/tests/term/getTermLink.php b/tests/phpunit/tests/term/getTermLink.php index 2a92d8afee78a..94307ba6970a4 100644 --- a/tests/phpunit/tests/term/getTermLink.php +++ b/tests/phpunit/tests/term/getTermLink.php @@ -259,7 +259,7 @@ public function test_term_link_filter_should_receive_term_object( $taxonomy, $us add_filter( 'term_link', - function( $location, $term ) { + function ( $location, $term ) { $this->assertInstanceOf( 'WP_Term', $term ); }, 10, diff --git a/tests/phpunit/tests/term/getTerms.php b/tests/phpunit/tests/term/getTerms.php index 4d05d77192d83..53ef3bbeb7639 100644 --- a/tests/phpunit/tests/term/getTerms.php +++ b/tests/phpunit/tests/term/getTerms.php @@ -425,7 +425,6 @@ public function test_get_terms_exclude_tree() { ); $this->assertSame( array( $term_id2, $term_id22 ), $terms ); - } /** @@ -801,7 +800,6 @@ public function test_get_terms_child_of_fields_id_name() { ), $terms ); - } /** @@ -2939,7 +2937,6 @@ public function test_should_prime_individual_term_cache_when_fields_is_all() { $num_queries = get_num_queries(); $term0 = get_term( $terms[0] ); $this->assertSame( $num_queries, get_num_queries() ); - } /** @@ -3028,6 +3025,39 @@ public function test_hierarchical_offset_plus_number_exceeds_available_count() { $this->assertSameSets( array( $terms[1] ), $found ); } + /** + * @ticket 52710 + */ + public function test_get_terms_without_update_get_terms_cache() { + $this->set_up_three_posts_and_tags(); + + $num_queries = get_num_queries(); + + // last_changed and num_queries should bump. + $terms = get_terms( + 'post_tag', + array( + 'cache_results' => false, + 'update_term_meta_cache' => false, + ) + ); + $this->assertCount( 3, $terms, 'After running get_terms, 3 terms should be returned' ); + $this->assertSame( $num_queries + 2, get_num_queries(), 'There should be only 2 queries run, only term query and priming terms' ); + + $num_queries = get_num_queries(); + + // last_changed and num_queries should bump again. + $terms = get_terms( + 'post_tag', + array( + 'cache_results' => false, + 'update_term_meta_cache' => false, + ) + ); + $this->assertCount( 3, $terms, 'After running get_terms for a second time, 3 terms should be returned' ); + $this->assertSame( $num_queries + 1, get_num_queries(), 'On the second run, only run the term query, priming terms happens on the first run' ); + } + /** * @ticket 35935 */ diff --git a/tests/phpunit/tests/term/meta.php b/tests/phpunit/tests/term/meta.php index d46f35ae1dbd7..248d1909179d3 100644 --- a/tests/phpunit/tests/term/meta.php +++ b/tests/phpunit/tests/term/meta.php @@ -139,7 +139,7 @@ public function test_term_meta_should_be_lazy_loaded_for_all_terms_in_wp_query_l // First request will hit the database. $num_queries = get_num_queries(); $this->assertSame( 'bar', get_term_meta( $terms[0], 'foo', true ) ); - $num_queries++; + ++$num_queries; $this->assertSame( $num_queries, get_num_queries() ); // Second and third requests should be in cache. @@ -148,7 +148,7 @@ public function test_term_meta_should_be_lazy_loaded_for_all_terms_in_wp_query_l $this->assertSame( $num_queries, get_num_queries() ); // Querying a term not primed should result in a hit. - $num_queries++; + ++$num_queries; $this->assertSame( 'bar', get_term_meta( $orphan_term, 'foo', true ) ); $this->assertSame( $num_queries, get_num_queries() ); } @@ -208,11 +208,11 @@ public function test_lazy_load_term_meta_false() { // Requests will hit the database. $num_queries = get_num_queries(); $this->assertSame( 'bar', get_term_meta( $terms[0], 'foo', true ) ); - $num_queries++; + ++$num_queries; $this->assertSame( $num_queries, get_num_queries() ); $this->assertSame( 'bar', get_term_meta( $terms[1], 'foo', true ) ); - $num_queries++; + ++$num_queries; $this->assertSame( $num_queries, get_num_queries() ); } } diff --git a/tests/phpunit/tests/term/query.php b/tests/phpunit/tests/term/query.php index 0e118a3c169a4..682e86a8dfced 100644 --- a/tests/phpunit/tests/term/query.php +++ b/tests/phpunit/tests/term/query.php @@ -698,6 +698,106 @@ public function test_query_should_return_zero_for_field_as_count_and_child_of_se $this->assertSame( 0, $q->query( $args ) ); } + /** + * If fields have filtered, cached results should work. + * + * @ticket 58116 + * @group cache + */ + public function test_query_filter_fields() { + $post_id = self::factory()->post->create(); + register_taxonomy( 'wptests_tax', 'post' ); + + $term_id = self::factory()->term->create( + array( + 'taxonomy' => 'wptests_tax', + ) + ); + wp_set_object_terms( $post_id, array( $term_id ), 'wptests_tax' ); + $post_draft_id = self::factory()->post->create( array( 'post_type' => 'draft' ) ); + wp_set_object_terms( $post_draft_id, array( $term_id ), 'wptests_tax' ); + + add_filter( 'terms_clauses', array( $this, 'filter_fields_terms_clauses' ), 10, 3 ); + + $args = array( + 'taxonomy' => 'wptests_tax', + 'hide_empty' => false, + 'post_type' => 'post', + 'post_status' => 'publish', + ); + + $q1 = new WP_Term_Query(); + $terms1 = $q1->query( $args ); + $q2 = new WP_Term_Query(); + $terms2 = $q2->query( $args ); + $this->assertSameSets( wp_list_pluck( $terms1, 'term_id' ), wp_list_pluck( $terms2, 'term_id' ), 'Term IDs are expected to match' ); + $this->assertSameSets( wp_list_pluck( $terms1, 'count' ), wp_list_pluck( $terms2, 'count' ), 'Term counts are expected to match' ); + } + + /** + * Filter `terms_clauses` to change the field requested. The filter is from example code given in #58116. + */ + public function filter_fields_terms_clauses( $clauses, $taxonomies, $args ) { + global $wpdb; + + // Set to query specific posts types if set. + if ( ! empty( $args['post_type'] ) ) { + $clauses['fields'] = 'DISTINCT t.term_id, tt.term_taxonomy_id, tt.taxonomy, tt.description, tt.parent, COUNT(p.post_type) AS count'; + $clauses['join'] .= ' LEFT JOIN ' . $wpdb->term_relationships . ' AS r ON r.term_taxonomy_id = tt.term_taxonomy_id LEFT JOIN ' . $wpdb->posts . ' AS p ON p.ID = r.object_id'; + $clauses['where'] .= " AND (p.post_type = '" . $args['post_type'] . "' OR p.post_type IS NULL)"; + $clauses['orderby'] = 'GROUP BY t.term_id ' . $clauses['orderby']; + } + + // Set to query posts with specific status. + if ( ! empty( $args['post_status'] ) ) { + $clauses['where'] .= " AND (p.post_status = '" . $args['post_status'] . "')"; + } + return $clauses; + } + + /** + * If fields have filtered, cached results should work. + * + * @ticket 58116 + * @group cache + */ + public function test_query_filter_select_fields() { + $post_id = self::factory()->post->create(); + register_taxonomy( 'wptests_tax', 'post' ); + + $term_id = self::factory()->term->create( + array( + 'taxonomy' => 'wptests_tax', + ) + ); + wp_set_object_terms( $post_id, array( $term_id ), 'wptests_tax' ); + $post_draft_id = self::factory()->post->create( array( 'post_type' => 'draft' ) ); + wp_set_object_terms( $post_draft_id, array( $term_id ), 'wptests_tax' ); + + add_filter( 'get_terms_fields', array( $this, 'filter_get_terms_fields' ) ); + + $args = array( + 'taxonomy' => 'wptests_tax', + 'hide_empty' => false, + 'post_type' => 'post', + 'post_status' => 'publish', + ); + + $q1 = new WP_Term_Query(); + $terms1 = $q1->query( $args ); + $q2 = new WP_Term_Query(); + $terms2 = $q2->query( $args ); + $this->assertSameSets( wp_list_pluck( $terms1, 'term_id' ), wp_list_pluck( $terms2, 'term_id' ), 'Term IDs are expected to match' ); + $this->assertSameSets( wp_list_pluck( $terms1, 'parent' ), wp_list_pluck( $terms2, 'parent' ), 'Term parent are expected to match' ); + } + + /** + * Filter `get_terms_fields` to change the field requested. + */ + public function filter_get_terms_fields( $select ) { + return array( 't.term_id', 'tt.parent' ); + } + /** * The terms property should be an empty array for fields not as count and parent set. * diff --git a/tests/phpunit/tests/term/wpInsertTerm.php b/tests/phpunit/tests/term/wpInsertTerm.php index a2839d3c456ed..d99593b1d5f2e 100644 --- a/tests/phpunit/tests/term/wpInsertTerm.php +++ b/tests/phpunit/tests/term/wpInsertTerm.php @@ -146,7 +146,6 @@ public function test_wp_insert_term_slug_empty_string() { _unregister_taxonomy( 'wptests_tax' ); $this->assertSame( 'quality', $term->slug ); - } public function test_wp_insert_term_slug_whitespace_string() { @@ -851,7 +850,6 @@ public function test_wp_insert_term_with_and_without_accents() { $term_2 = get_term( $t2, 'wptests_tax' ); $this->assertSame( $t2, $term_2->term_id ); $this->assertSame( 'Foo', $term_2->name ); - } /** diff --git a/tests/phpunit/tests/term/wpSetObjectTerms.php b/tests/phpunit/tests/term/wpSetObjectTerms.php index 1d9837177bf9d..20631e05996c8 100644 --- a/tests/phpunit/tests/term/wpSetObjectTerms.php +++ b/tests/phpunit/tests/term/wpSetObjectTerms.php @@ -302,7 +302,6 @@ public function test_change_object_terms_by_id() { // Make sure the term taxonomy ID for 'bar' matches. $this->assertSame( $tt_1[1], $tt_2[0] ); - } /** @@ -346,7 +345,6 @@ public function test_change_object_terms_by_name() { // Make sure the term taxonomy ID for 'bar' matches. $this->assertEquals( $tt_1[1], $tt_2[0] ); - } public function test_should_create_term_that_does_not_exist() { diff --git a/tests/phpunit/tests/term/wpTaxonomy.php b/tests/phpunit/tests/term/wpTaxonomy.php index 8914228dc46e2..4106e60f3baec 100644 --- a/tests/phpunit/tests/term/wpTaxonomy.php +++ b/tests/phpunit/tests/term/wpTaxonomy.php @@ -97,7 +97,6 @@ public function test_adds_ajax_callback() { $this->assertSame( 10, $has_action ); $this->assertFalse( $has_action_after ); - } public function test_applies_registration_args_filters() { diff --git a/tests/phpunit/tests/term/wpUpdateTerm.php b/tests/phpunit/tests/term/wpUpdateTerm.php index 32d93258daea7..cbbd5780d6d1c 100644 --- a/tests/phpunit/tests/term/wpUpdateTerm.php +++ b/tests/phpunit/tests/term/wpUpdateTerm.php @@ -802,5 +802,4 @@ public function test_wp_update_term_with_null_get_term() { $this->assertWPError( $found ); $this->assertSame( 'invalid_term', $found->get_error_code() ); } - } diff --git a/tests/phpunit/tests/theme-previews.php b/tests/phpunit/tests/theme-previews.php new file mode 100644 index 0000000000000..e4abd621b2d60 --- /dev/null +++ b/tests/phpunit/tests/theme-previews.php @@ -0,0 +1,27 @@ +assertEquals( has_filter( 'stylesheet', 'wp_get_theme_preview_path' ), 10 ); + $this->assertEquals( has_filter( 'template', 'wp_get_theme_preview_path' ), 10 ); + $this->assertEquals( has_action( 'init', 'wp_attach_theme_preview_middleware' ), 10 ); + $this->assertEquals( has_action( 'admin_head', 'wp_block_theme_activate_nonce' ), 10 ); + } +} diff --git a/tests/phpunit/tests/theme.php b/tests/phpunit/tests/theme.php index 378ed16093339..b93edfaf63755 100644 --- a/tests/phpunit/tests/theme.php +++ b/tests/phpunit/tests/theme.php @@ -36,8 +36,9 @@ public function set_up() { parent::set_up(); + // Sets up the `wp-content/themes/` directory to ensure consistency when running tests. $this->orig_theme_dir = $wp_theme_directories; - $wp_theme_directories = array( WP_CONTENT_DIR . '/themes' ); + $wp_theme_directories = array( WP_CONTENT_DIR . '/themes', realpath( DIR_TESTDATA . '/themedir1' ) ); add_filter( 'extra_theme_headers', array( $this, 'theme_data_extra_headers' ) ); wp_clean_themes_cache(); @@ -282,6 +283,11 @@ public function test_switch_theme() { for ( $i = 0; $i < 3; $i++ ) { foreach ( $themes as $name => $theme ) { + // Skip invalid theme directory names (such as `block_theme-[0.4.0]`). + if ( ! preg_match( '/^[a-z0-9-]+$/', $theme['Stylesheet'] ) ) { + continue; + } + // Switch to this theme. if ( 2 === $i ) { switch_theme( $theme['Template'], $theme['Stylesheet'] ); @@ -289,16 +295,16 @@ public function test_switch_theme() { switch_theme( $theme['Stylesheet'] ); } - $this->assertSame( $name, get_current_theme() ); + $this->assertSame( $theme['Name'], get_current_theme() ); // Make sure the various get_* functions return the correct values. $this->assertSame( $theme['Template'], get_template() ); $this->assertSame( $theme['Stylesheet'], get_stylesheet() ); - $root_fs = get_theme_root(); + $root_fs = $theme->get_theme_root(); $this->assertTrue( is_dir( $root_fs ) ); - $root_uri = get_theme_root_uri(); + $root_uri = $theme->get_theme_root_uri(); $this->assertNotEmpty( $root_uri ); $this->assertSame( $root_fs . '/' . get_stylesheet(), get_stylesheet_directory() ); @@ -309,19 +315,38 @@ public function test_switch_theme() { $this->assertSame( $root_fs . '/' . get_template(), get_template_directory() ); $this->assertSame( $root_uri . '/' . get_template(), get_template_directory_uri() ); - // get_query_template() + // Skip block themes for get_query_template() tests since this test is focused on classic templates. + if ( wp_is_block_theme() && current_theme_supports( 'block-templates' ) ) { + continue; + } // Template file that doesn't exist. $this->assertSame( '', get_query_template( 'nonexistant' ) ); // Template files that do exist. - /* foreach ( $theme['Template Files'] as $path ) { - $file = basename($path, '.php'); - FIXME: untestable because get_query_template() uses TEMPLATEPATH. - $this->assertSame('', get_query_template($file)); + $file = basename( $path, '.php' ); + + // The functions.php file is not a template. + if ( 'functions' === $file ) { + continue; + } + + // Underscores are not supported by `locate_template()`. + if ( 'taxonomy-post_format' === $file ) { + $file = 'taxonomy'; + } + + $child_theme_file = get_stylesheet_directory() . '/' . $file . '.php'; + $parent_theme_file = get_template_directory() . '/' . $file . '.php'; + if ( file_exists( $child_theme_file ) ) { + $this->assertSame( $child_theme_file, get_query_template( $file ) ); + } elseif ( file_exists( $parent_theme_file ) ) { + $this->assertSame( $parent_theme_file, get_query_template( $file ) ); + } else { + $this->assertSame( '', get_query_template( $file ) ); + } } - */ // These are kind of tautologies but at least exercise the code. $this->assertSame( get_404_template(), get_query_template( '404' ) ); @@ -854,6 +879,184 @@ public function test_block_theme_should_load_separate_core_block_assets_by_defau ); } + /** + * Tests that a theme in the custom test data theme directory is recognized. + * + * @ticket 18298 + */ + public function test_theme_in_custom_theme_dir_is_valid() { + switch_theme( 'block-theme' ); + $this->assertTrue( wp_get_theme()->exists() ); + } + + /** + * Tests that `is_child_theme()` returns true for child theme. + * + * @ticket 18298 + * + * @covers ::is_child_theme + */ + public function test_is_child_theme_true() { + switch_theme( 'block-theme-child' ); + $this->assertTrue( is_child_theme() ); + } + + /** + * Tests that `is_child_theme()` returns false for parent theme. + * + * @ticket 18298 + * + * @covers ::is_child_theme + */ + public function test_is_child_theme_false() { + switch_theme( 'block-theme' ); + $this->assertFalse( is_child_theme() ); + } + + /** + * Tests that the child theme directory is correctly detected. + * + * @ticket 18298 + * + * @covers ::get_stylesheet_directory + */ + public function test_get_stylesheet_directory() { + switch_theme( 'block-theme-child' ); + $this->assertSame( realpath( DIR_TESTDATA ) . '/themedir1/block-theme-child', get_stylesheet_directory() ); + } + + /** + * Tests that the parent theme directory is correctly detected. + * + * @ticket 18298 + * + * @covers ::get_template_directory + */ + public function test_get_template_directory() { + switch_theme( 'block-theme-child' ); + $this->assertSame( realpath( DIR_TESTDATA ) . '/themedir1/block-theme', get_template_directory() ); + } + + /** + * Tests that get_stylesheet_directory() behaves correctly with filters. + * + * @ticket 18298 + * @dataProvider data_get_stylesheet_directory_with_filter + * + * @covers ::get_stylesheet_directory + * + * @param string $theme Theme slug / directory name. + * @param string $hook_name Filter hook name. + * @param callable $callback Filter callback. + * @param string $expected Expected stylesheet directory with the filter active. + */ + public function test_get_stylesheet_directory_with_filter( $theme, $hook_name, $callback, $expected ) { + switch_theme( $theme ); + + // Add filter, then call get_stylesheet_directory() to compute value. + add_filter( $hook_name, $callback ); + $this->assertSame( $expected, get_stylesheet_directory(), 'Stylesheet directory returned incorrect result not considering filters' ); + + // Remove filter again, then ensure result is recalculated and not the same as before. + remove_filter( $hook_name, $callback ); + $this->assertNotSame( $expected, get_stylesheet_directory(), 'Stylesheet directory returned previous value even though filters were removed' ); + } + + /** + * Data provider for `test_get_stylesheet_directory_with_filter()`. + * + * @return array[] + */ + public function data_get_stylesheet_directory_with_filter() { + return array( + 'with stylesheet_directory filter' => array( + 'block-theme', + 'stylesheet_directory', + static function ( $dir ) { + return str_replace( realpath( DIR_TESTDATA ) . '/themedir1', '/fantasy-dir', $dir ); + }, + '/fantasy-dir/block-theme', + ), + 'with theme_root filter' => array( + 'block-theme', + 'theme_root', + static function () { + return '/fantasy-dir'; + }, + '/fantasy-dir/block-theme', + ), + 'with stylesheet filter' => array( + 'block-theme', + 'stylesheet', + static function () { + return 'another-theme'; + }, + // Because the theme does not exist, `get_theme_root()` returns the default themes directory. + WP_CONTENT_DIR . '/themes/another-theme', + ), + ); + } + + /** + * Tests that get_template_directory() behaves correctly with filters. + * + * @ticket 18298 + * @dataProvider data_get_template_directory_with_filter + * + * @covers ::get_template_directory + * + * @param string $theme Theme slug / directory name. + * @param string $hook_name Filter hook name. + * @param callable $callback Filter callback. + * @param string $expected Expected template directory with the filter active. + */ + public function test_get_template_directory_with_filter( $theme, $hook_name, $callback, $expected ) { + switch_theme( $theme ); + + // Add filter, then call get_template_directory() to compute value. + add_filter( $hook_name, $callback ); + $this->assertSame( $expected, get_template_directory(), 'Template directory returned incorrect result not considering filters' ); + + // Remove filter again, then ensure result is recalculated and not the same as before. + remove_filter( $hook_name, $callback ); + $this->assertNotSame( $expected, get_template_directory(), 'Template directory returned previous value even though filters were removed' ); + } + + /** + * Data provider for `test_get_template_directory_with_filter()`. + * + * @return array[] + */ + public function data_get_template_directory_with_filter() { + return array( + 'with template_directory filter' => array( + 'block-theme', + 'template_directory', + static function ( $dir ) { + return str_replace( realpath( DIR_TESTDATA ) . '/themedir1', '/fantasy-dir', $dir ); + }, + '/fantasy-dir/block-theme', + ), + 'with theme_root filter' => array( + 'block-theme', + 'theme_root', + static function () { + return '/fantasy-dir'; + }, + '/fantasy-dir/block-theme', + ), + 'with template filter' => array( + 'block-theme', + 'template', + static function () { + return 'another-theme'; + }, + // Because the theme does not exist, `get_theme_root()` returns the default themes directory. + WP_CONTENT_DIR . '/themes/another-theme', + ), + ); + } + /** * Helper function to ensure that a block theme is available and active. */ diff --git a/tests/phpunit/tests/theme/customHeader.php b/tests/phpunit/tests/theme/customHeader.php index f78f6fc2af326..b994d7f2dcfe5 100644 --- a/tests/phpunit/tests/theme/customHeader.php +++ b/tests/phpunit/tests/theme/customHeader.php @@ -98,7 +98,7 @@ public function test_get_header_image_from_theme_mod() { public function test_filter_header_image( $header_image, $expected ) { add_filter( 'get_header_image', - static function() use ( $header_image ) { + static function () use ( $header_image ) { return $header_image; } ); @@ -190,7 +190,7 @@ public function test_get_header_image_tag_with_default_performance_attributes() add_filter( 'wp_min_priority_img_pixels', - static function() { + static function () { return 2500; // 50*50=2500 } ); diff --git a/tests/phpunit/tests/theme/themeDir.php b/tests/phpunit/tests/theme/themeDir.php index ea721e5a4494c..eedd92bcf670d 100644 --- a/tests/phpunit/tests/theme/themeDir.php +++ b/tests/phpunit/tests/theme/themeDir.php @@ -112,7 +112,6 @@ public function test_theme_sandbox() { $this->assertSame( self::THEME_ROOT . '/sandbox', $theme['Stylesheet Dir'] ); $this->assertSame( 'publish', $theme['Status'] ); $this->assertSame( '', $theme['Parent Theme'] ); - } /** @@ -144,7 +143,6 @@ public function test_theme_stylesheet_only() { $this->assertSame( self::THEME_ROOT . '/stylesheetonly', $theme['Stylesheet Dir'] ); $this->assertSame( 'publish', $theme['Status'] ); $this->assertSame( 'Sandbox', $theme['Parent Theme'] ); - } /** @@ -178,14 +176,17 @@ public function test_theme_list() { 'REST Theme', 'Block Theme', 'Block Theme Child Theme', + 'Block Theme Child Deprecated Path', 'Block Theme Child with no theme.json', + 'Block Theme Child Theme With Fluid Layout', 'Block Theme Child Theme With Fluid Typography', 'Block Theme Child Theme With Fluid Typography Config', 'Block Theme Non Latin', 'Block Theme [0.4.0]', 'Block Theme [1.0.0] in subdirectory', 'Block Theme Deprecated Path', - 'Webfonts theme', + 'Block Theme Post Content Default', + 'Block Theme with defined Typography Fonts', 'Empty `fontFace` in theme.json - no webfonts defined', 'A theme with the Update URI header', ); diff --git a/tests/phpunit/tests/theme/wpGetBlockCssSelector.php b/tests/phpunit/tests/theme/wpGetBlockCssSelector.php index 43376dbe57e15..670007dbb0103 100644 --- a/tests/phpunit/tests/theme/wpGetBlockCssSelector.php +++ b/tests/phpunit/tests/theme/wpGetBlockCssSelector.php @@ -353,4 +353,3 @@ public function test_string_targets_for_subfeatures() { $this->assertEquals( '.found', $selector ); } } - diff --git a/tests/phpunit/tests/theme/wpThemeJson.php b/tests/phpunit/tests/theme/wpThemeJson.php index 3388272a0b8e6..6da723583ba45 100644 --- a/tests/phpunit/tests/theme/wpThemeJson.php +++ b/tests/phpunit/tests/theme/wpThemeJson.php @@ -262,6 +262,9 @@ public function test_get_settings_appearance_true_opts_in() { $actual = $theme_json->get_settings(); $expected = array( + 'background' => array( + 'backgroundImage' => true, + ), 'border' => array( 'width' => true, 'style' => true, @@ -295,6 +298,9 @@ public function test_get_settings_appearance_true_opts_in() { ), ), 'core/group' => array( + 'background' => array( + 'backgroundImage' => true, + ), 'border' => array( 'width' => true, 'style' => true, @@ -765,7 +771,6 @@ public function test_get_stylesheet_generates_proper_classes_and_css_vars_from_s 'body{--wp--preset--color--grey: grey;--wp--preset--color--dark-grey: grey;--wp--preset--color--light-grey: grey;--wp--preset--color--white-2-black: grey;--wp--custom--white-2-black: value;}', $theme_json->get_stylesheet( array( 'variables' ) ) ); - } /** @@ -3545,7 +3550,7 @@ public function test_get_styles_for_block_with_padding_aware_alignments() { 'selector' => 'body', ); - $expected = 'body { margin: 0; }.wp-site-blocks { padding-top: var(--wp--style--root--padding-top); padding-bottom: var(--wp--style--root--padding-bottom); }.has-global-padding { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }.has-global-padding :where(.has-global-padding) { padding-right: 0; padding-left: 0; }.has-global-padding > .alignfull { margin-right: calc(var(--wp--style--root--padding-right) * -1); margin-left: calc(var(--wp--style--root--padding-left) * -1); }.has-global-padding :where(.has-global-padding) > .alignfull { margin-right: 0; margin-left: 0; }.has-global-padding > .alignfull:where(:not(.has-global-padding)) > :where([class*="wp-block-"]:not(.alignfull):not([class*="__"]),p,h1,h2,h3,h4,h5,h6,ul,ol) { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }.has-global-padding :where(.has-global-padding) > .alignfull:where(:not(.has-global-padding)) > :where([class*="wp-block-"]:not(.alignfull):not([class*="__"]),p,h1,h2,h3,h4,h5,h6,ul,ol) { padding-right: 0; padding-left: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}body{--wp--style--root--padding-top: 10px;--wp--style--root--padding-right: 12px;--wp--style--root--padding-bottom: 10px;--wp--style--root--padding-left: 12px;}'; + $expected = 'body { margin: 0; }.wp-site-blocks { padding-top: var(--wp--style--root--padding-top); padding-bottom: var(--wp--style--root--padding-bottom); }.has-global-padding { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }.has-global-padding :where(.has-global-padding:not(.wp-block-block)) { padding-right: 0; padding-left: 0; }.has-global-padding > .alignfull { margin-right: calc(var(--wp--style--root--padding-right) * -1); margin-left: calc(var(--wp--style--root--padding-left) * -1); }.has-global-padding :where(.has-global-padding:not(.wp-block-block)) > .alignfull { margin-right: 0; margin-left: 0; }.has-global-padding > .alignfull:where(:not(.has-global-padding):not(.is-layout-flex):not(.is-layout-grid)) > :where([class*="wp-block-"]:not(.alignfull):not([class*="__"]),p,h1,h2,h3,h4,h5,h6,ul,ol) { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }.has-global-padding :where(.has-global-padding) > .alignfull:where(:not(.has-global-padding)) > :where([class*="wp-block-"]:not(.alignfull):not([class*="__"]),p,h1,h2,h3,h4,h5,h6,ul,ol) { padding-right: 0; padding-left: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}body{--wp--style--root--padding-top: 10px;--wp--style--root--padding-right: 12px;--wp--style--root--padding-bottom: 10px;--wp--style--root--padding-left: 12px;}'; $root_rules = $theme_json->get_root_layout_rules( WP_Theme_JSON::ROOT_BLOCK_SELECTOR, $metadata ); $style_rules = $theme_json->get_styles_for_block( $metadata ); $this->assertSame( $expected, $root_rules . $style_rules ); @@ -3769,7 +3774,6 @@ public function test_sanitize_with_invalid_style_variation( $theme_json_variatio $sanitized_theme_json = $theme_json->get_raw_data(); $this->assertIsArray( $sanitized_theme_json, 'Sanitized theme.json is not an array data type' ); $this->assertArrayNotHasKey( 'styles', $sanitized_theme_json, 'Sanitized theme.json should not have a "styles" key' ); - } /** @@ -3869,6 +3873,85 @@ public function data_get_styles_for_block_with_style_variations() { ); } + public function test_block_style_variations() { + wp_set_current_user( static::$administrator_id ); + + $expected = array( + 'version' => WP_Theme_JSON::LATEST_SCHEMA, + 'styles' => array( + 'blocks' => array( + 'core/button' => array( + 'color' => array( + 'background' => 'blue', + ), + 'variations' => array( + 'outline' => array( + 'color' => array( + 'background' => 'purple', + ), + ), + ), + ), + ), + ), + ); + + $actual = WP_Theme_JSON::remove_insecure_properties( $expected ); + + $this->assertSameSetsWithIndex( $expected, $actual ); + } + + public function test_block_style_variations_with_invalid_properties() { + wp_set_current_user( static::$administrator_id ); + + $partially_invalid_variation = array( + 'version' => WP_Theme_JSON::LATEST_SCHEMA, + 'styles' => array( + 'blocks' => array( + 'core/button' => array( + 'color' => array( + 'background' => 'blue', + ), + 'variations' => array( + 'outline' => array( + 'color' => array( + 'background' => 'purple', + ), + 'invalid' => array( + 'value' => 'should be stripped', + ), + ), + ), + ), + ), + ), + ); + + $expected = array( + 'version' => WP_Theme_JSON::LATEST_SCHEMA, + 'styles' => array( + 'blocks' => array( + 'core/button' => array( + 'color' => array( + 'background' => 'blue', + ), + 'variations' => array( + 'outline' => array( + 'color' => array( + 'background' => 'purple', + ), + ), + ), + ), + ), + ), + ); + + $actual = WP_Theme_JSON::remove_insecure_properties( $partially_invalid_variation ); + + $this->assertSameSetsWithIndex( $expected, $actual ); + } + /** * @ticket 56611 * @ticket 58548 @@ -4683,7 +4766,6 @@ public function test_internal_syntax_is_converted_to_css_variables() { $this->assertEquals( 'var(--wp--preset--font-size--s)', $styles['blocks']['core/quote']['variations']['plain']['typography']['fontSize'], 'Style variations: Assert the originally correct values are still correct.' ); $this->assertEquals( 'var(--wp--preset--color--s)', $styles['blocks']['core/quote']['variations']['plain']['color']['background'], 'Style variations: Assert the internal variables are convert to CSS custom variables.' ); - } public function test_resolve_variables() { @@ -4838,5 +4920,4 @@ public function test_resolve_variables() { $this->assertEquals( $small_font, $styles['blocks']['core/quote']['variations']['plain']['typography']['fontSize'], 'Block variations: font-size' ); $this->assertEquals( $secondary_color, $styles['blocks']['core/quote']['variations']['plain']['color']['background'], 'Block variations: color' ); } - } diff --git a/tests/phpunit/tests/theme/wpThemeJsonResolver.php b/tests/phpunit/tests/theme/wpThemeJsonResolver.php index 7e928aa0c7123..cc7cfa2f65238 100644 --- a/tests/phpunit/tests/theme/wpThemeJsonResolver.php +++ b/tests/phpunit/tests/theme/wpThemeJsonResolver.php @@ -81,8 +81,8 @@ public static function set_up_before_class() { } public static function tear_down_after_class() { - static::$property_blocks_cache->setValue( WP_Theme_JSON_Resolver::class, static::$property_blocks_cache_orig_value ); - static::$property_core->setValue( WP_Theme_JSON_Resolver::class, static::$property_core_orig_value ); + static::$property_blocks_cache->setValue( null, static::$property_blocks_cache_orig_value ); + static::$property_core->setValue( null, static::$property_core_orig_value ); parent::tear_down_after_class(); } @@ -393,7 +393,7 @@ public function test_get_core_data( $should_fire_filter, $core_is_cached, $block $expected_filter_count = did_filter( 'wp_theme_json_data_default' ); $actual = WP_Theme_JSON_Resolver::get_core_data(); if ( $should_fire_filter ) { - $expected_filter_count++; + ++$expected_filter_count; } $this->assertSame( $expected_filter_count, did_filter( 'wp_theme_json_data_default' ), 'The filter "wp_theme_json_data_default" should fire the given number of times' ); @@ -600,7 +600,7 @@ public function test_get_user_data_from_wp_global_styles_does_not_use_uncached_q $global_styles_query_count = 0; add_filter( 'query', - static function( $query ) use ( &$global_styles_query_count ) { + static function ( $query ) use ( &$global_styles_query_count ) { if ( preg_match( '#post_type = \'wp_global_styles\'#', $query ) ) { $global_styles_query_count++; } @@ -759,7 +759,7 @@ public function test_get_theme_data_does_not_parse_theme_json_if_not_present() { // Force-unset $i18n_schema property to "unload" translation schema. $property = new ReflectionProperty( $theme_json_resolver, 'i18n_schema' ); $property->setAccessible( true ); - $property->setValue( null ); + $property->setValue( null, null ); // A completely empty theme.json data set still has the 'version' key when parsed. $empty_theme_json = array( 'version' => WP_Theme_JSON::LATEST_SCHEMA ); @@ -836,7 +836,7 @@ public function test_get_merged_data_returns_origin( $origin, $core_palette, $co $styles = $theme_json->get_styles_block_nodes(); $styles = array_filter( $styles, - static function( $element ) { + static function ( $element ) { return isset( $element['name'] ) && 'my/block-with-styles' === $element['name']; } ); @@ -846,7 +846,6 @@ static function( $element ) { $this->assertSame( $block_styles, count( $styles ) === 1, $block_styles_text ); $this->assertSame( $theme_palette, isset( $settings['color']['palette']['theme'] ), $theme_palette_text ); $this->assertSame( $user_palette, isset( $settings['color']['palette']['custom'] ), $user_palette_text ); - } /** diff --git a/tests/phpunit/tests/upload.php b/tests/phpunit/tests/upload.php index 4640439313db1..46fcea7099097 100644 --- a/tests/phpunit/tests/upload.php +++ b/tests/phpunit/tests/upload.php @@ -105,5 +105,4 @@ public function test_upload_dir_empty() { $this->assertSame( $subdir, $info['subdir'] ); $this->assertFalse( $info['error'] ); } - } diff --git a/tests/phpunit/tests/url.php b/tests/phpunit/tests/url.php index 1561d3a03cccc..4768e25b7770a 100644 --- a/tests/phpunit/tests/url.php +++ b/tests/phpunit/tests/url.php @@ -339,7 +339,7 @@ public function test_set_url_scheme() { $this->assertSame( $http_links[ $i ], set_url_scheme( $link, 'login' ) ); $this->assertSame( $http_links[ $i ], set_url_scheme( $link, 'rpc' ) ); - $i++; + ++$i; } force_ssl_admin( $forced_admin ); diff --git a/tests/phpunit/tests/user.php b/tests/phpunit/tests/user.php index 7157a00cfa9f5..2906469445914 100644 --- a/tests/phpunit/tests/user.php +++ b/tests/phpunit/tests/user.php @@ -140,7 +140,6 @@ public function test_usermeta() { // Correct key: deleted. delete_user_meta( self::$author_id, $key, $val ); $this->assertSame( '', get_user_meta( self::$author_id, $key, true ) ); - } /** @@ -1940,7 +1939,6 @@ public function test_wp_community_events_location_city_personal_data_exporter() // Contains location longitude. $this->assertSame( 'Longitude', $actual['data'][1]['data'][3]['name'] ); $this->assertSame( '-84.5143900', $actual['data'][1]['data'][3]['value'] ); - } /** diff --git a/tests/phpunit/tests/user/capabilities.php b/tests/phpunit/tests/user/capabilities.php index beecfd3b85a03..27bd085aff605 100644 --- a/tests/phpunit/tests/user/capabilities.php +++ b/tests/phpunit/tests/user/capabilities.php @@ -66,7 +66,6 @@ public function set_up() { parent::set_up(); // Keep track of users we create. $this->flush_roles(); - } /** @@ -182,7 +181,6 @@ private function _getSingleSitePrimitiveCaps() { 'subscriber' => array( 'subscriber' ), ); - } private function _getMultiSitePrimitiveCaps() { @@ -265,7 +263,6 @@ private function _getMultiSitePrimitiveCaps() { 'subscriber' => array( 'subscriber' ), ); - } private function _getSingleSiteMetaCaps() { @@ -453,7 +450,6 @@ public function test_all_caps_of_users_are_being_tested() { $this->assertSame( array(), $diff, "User with {$role} role has capabilities that aren't being tested" ); } - } /** @@ -747,7 +743,6 @@ public function test_link_manager_caps() { update_option( 'link_manager_enabled', '0' ); $this->assertSame( '0', get_option( 'link_manager_enabled' ) ); - } /** @@ -761,7 +756,6 @@ public function test_unfiltered_upload_caps() { $this->assertFalse( $user->has_cap( 'unfiltered_upload' ), "User with the {$role} role should not have the unfiltered_upload capability" ); $this->assertFalse( user_can( $user, 'unfiltered_upload' ), "User with the {$role} role should not have the unfiltered_upload capability" ); } - } /** @@ -917,7 +911,6 @@ public function test_user_subscriber_contributor() { $user->remove_role( 'contributor' ); // User should have one role now. $this->assertSame( array( 'subscriber' ), $user->roles ); - } /** @@ -1037,7 +1030,6 @@ public function test_role_add_cap() { remove_role( $role_name ); $this->flush_roles(); $this->assertFalse( $wp_roles->is_role( $role_name ) ); - } /** @@ -1082,7 +1074,6 @@ public function test_role_remove_cap() { remove_role( $role_name ); $this->flush_roles(); $this->assertFalse( $wp_roles->is_role( $role_name ) ); - } /** @@ -1121,7 +1112,6 @@ public function test_user_add_cap() { $this->assertFalse( $user_1->has_cap( $cap ), "User should not have the {$cap} capability" ); } } - } /** @@ -1153,7 +1143,6 @@ public function test_user_remove_cap() { // Check the removed cap on both users. $this->assertFalse( $user_1->has_cap( 'publish_posts' ) ); $this->assertFalse( $user_2->has_cap( 'publish_posts' ) ); - } /** @@ -1217,7 +1206,6 @@ public function test_user_remove_all_caps() { // User level should be empty. $this->assertEmpty( $user->user_level ); - } /** @@ -1547,7 +1535,6 @@ public function test_taxonomy_caps_map_correctly_to_their_meta_cap( $taxonomy ) "Role: {$role}" ); } - } public function dataTaxonomies() { @@ -1850,7 +1837,6 @@ public function test_contributor_cannot_edit_scheduled_post() { // Ensure contributor can't edit, un-trash, or delete the post. $this->assertFalse( user_can( $contributor->ID, 'edit_post', $post->ID ) ); $this->assertFalse( user_can( $contributor->ID, 'delete_post', $post->ID ) ); - } /** @@ -1981,7 +1967,6 @@ public function test_cpt_with_page_capability_type() { $this->assertFalse( user_can( $contributor->ID, 'edit_post', $author_post->ID ) ); _unregister_post_type( 'page_capability' ); - } public function test_non_logged_in_users_have_no_capabilities() { @@ -2011,7 +1996,6 @@ public function test_wp_logout_should_clear_current_user() { wp_logout(); $this->assertSame( 0, get_current_user_id() ); - } /** diff --git a/tests/phpunit/tests/user/countUsers.php b/tests/phpunit/tests/user/countUsers.php index b09cd857845f6..901ba88f89106 100644 --- a/tests/phpunit/tests/user/countUsers.php +++ b/tests/phpunit/tests/user/countUsers.php @@ -64,7 +64,6 @@ public function test_count_users_is_accurate( $strategy ) { ), $count['avail_roles'] ); - } /** @@ -174,7 +173,6 @@ public function test_count_users_multisite_is_accurate( $strategy ) { ), $count['avail_roles'] ); - } /** @@ -248,7 +246,6 @@ public function test_count_users_is_accurate_with_multiple_roles( $strategy ) { ), $count['avail_roles'] ); - } /** @@ -291,5 +288,4 @@ public function data_count_users_strategies() { ), ); } - } diff --git a/tests/phpunit/tests/user/getUserCount.php b/tests/phpunit/tests/user/getUserCount.php index 4aee753288ad5..5ec6e481a93e4 100644 --- a/tests/phpunit/tests/user/getUserCount.php +++ b/tests/phpunit/tests/user/getUserCount.php @@ -81,7 +81,6 @@ public function test_enable_live_network_user_counts_filter() { $count = get_user_count(); $this->assertSame( $start_count + 1, $count ); - } /** diff --git a/tests/phpunit/tests/user/mapMetaCap.php b/tests/phpunit/tests/user/mapMetaCap.php index fb26eca8b5118..f8929f0d88d82 100644 --- a/tests/phpunit/tests/user/mapMetaCap.php +++ b/tests/phpunit/tests/user/mapMetaCap.php @@ -369,7 +369,6 @@ public function test_authorless_posts_capabilties() { $this->assertSame( array( 'edit_others_posts', 'edit_published_posts' ), map_meta_cap( 'edit_post', $editor, $post_id ) ); $this->assertSame( array( 'delete_others_posts', 'delete_published_posts' ), map_meta_cap( 'delete_post', $editor, $post_id ) ); - } /** diff --git a/tests/phpunit/tests/user/multisite.php b/tests/phpunit/tests/user/multisite.php index e3173db43e0c5..08d08bbe75bb3 100644 --- a/tests/phpunit/tests/user/multisite.php +++ b/tests/phpunit/tests/user/multisite.php @@ -448,7 +448,6 @@ public function test_wp_roles_global_is_reset() { $wp_roles->remove_role( $role ); } - } endif; diff --git a/tests/phpunit/tests/user/passwordHash.php b/tests/phpunit/tests/user/passwordHash.php index 1179ba25b2680..db34969c71bb3 100644 --- a/tests/phpunit/tests/user/passwordHash.php +++ b/tests/phpunit/tests/user/passwordHash.php @@ -30,5 +30,4 @@ public function test_gensalt_blowfish_should_not_throw_deprecation_notice_on_php $hasher = new PasswordHash( 8, true ); $hasher->gensalt_blowfish( 'a password string' ); } - } diff --git a/tests/phpunit/tests/user/query.php b/tests/phpunit/tests/user/query.php index 6be692af979f6..21275738e7d5e 100644 --- a/tests/phpunit/tests/user/query.php +++ b/tests/phpunit/tests/user/query.php @@ -1321,7 +1321,6 @@ public function test_query_vars_should_be_filled_in_after_pre_get_users() { foreach ( $query_vars as $query_var ) { $this->assertArrayHasKey( $query_var, $q->query_vars, "$query_var does not exist." ); } - } public function filter_pre_get_users_args( $q ) { @@ -2253,6 +2252,7 @@ public function test_should_throw_deprecation_when_getting_dynamic_property() { $this->expectDeprecation(); $this->expectDeprecationMessage( + 'WP_User_Query::__get(): ' . 'The property `undefined_property` is not declared. Getting a dynamic property is ' . 'deprecated since version 6.4.0! Instead, declare the property on the class.' ); @@ -2285,6 +2285,7 @@ public function test_should_throw_deprecation_when_setting_dynamic_property() { $this->expectDeprecation(); $this->expectDeprecationMessage( + 'WP_User_Query::__set(): ' . 'The property `undefined_property` is not declared. Setting a dynamic property is ' . 'deprecated since version 6.4.0! Instead, declare the property on the class.' ); @@ -2321,6 +2322,7 @@ public function test_should_throw_deprecation_when_isset_of_dynamic_property() { $this->expectDeprecation(); $this->expectDeprecationMessage( + 'WP_User_Query::__isset(): ' . 'The property `undefined_property` is not declared. Checking `isset()` on a dynamic property ' . 'is deprecated since version 6.4.0! Instead, declare the property on the class.' ); @@ -2352,6 +2354,7 @@ public function test_should_throw_deprecation_when_unset_of_dynamic_property() { $this->expectDeprecation(); $this->expectDeprecationMessage( + 'WP_User_Query::__unset(): ' . 'A property `undefined_property` is not declared. Unsetting a dynamic property is ' . 'deprecated since version 6.4.0! Instead, declare the property on the class.' ); diff --git a/tests/phpunit/tests/user/queryCache.php b/tests/phpunit/tests/user/queryCache.php index d8d26286a716a..7e63907f74290 100644 --- a/tests/phpunit/tests/user/queryCache.php +++ b/tests/phpunit/tests/user/queryCache.php @@ -421,7 +421,7 @@ public function test_query_cache_do_not_cache() { $q1 = new WP_User_Query( $args ); $found1 = $q1->get_results(); - $callback = static function( $user ) { + $callback = static function ( $user ) { return (array) $user; }; diff --git a/tests/phpunit/tests/user/retrievePassword.php b/tests/phpunit/tests/user/retrievePassword.php index 861a2d9e96c01..c0f6f28c30322 100644 --- a/tests/phpunit/tests/user/retrievePassword.php +++ b/tests/phpunit/tests/user/retrievePassword.php @@ -52,7 +52,7 @@ public function test_retrieve_password_reset_notification_email() { public function test_retrieve_password_should_return_wp_error_on_failed_email() { add_filter( 'retrieve_password_notification_email', - static function() { + static function () { return array( 'message' => '' ); } ); diff --git a/tests/phpunit/tests/user/slashes.php b/tests/phpunit/tests/user/slashes.php index 40eb2b176b636..e8c414ddecbe3 100644 --- a/tests/phpunit/tests/user/slashes.php +++ b/tests/phpunit/tests/user/slashes.php @@ -230,5 +230,4 @@ public function test_wp_update_user() { $this->assertSame( wp_unslash( self::SLASH_2 ), $user->display_name ); $this->assertSame( wp_unslash( self::SLASH_4 ), $user->description ); } - } diff --git a/tests/phpunit/tests/user/wpGetUsersWithNoRole.php b/tests/phpunit/tests/user/wpGetUsersWithNoRole.php index f853e0e78b659..affe25e72f6b2 100644 --- a/tests/phpunit/tests/user/wpGetUsersWithNoRole.php +++ b/tests/phpunit/tests/user/wpGetUsersWithNoRole.php @@ -42,7 +42,6 @@ public function test_get_users_with_no_role_is_accurate() { ), $users ); - } /** @@ -149,5 +148,4 @@ public function test_get_users_with_no_role_matches_on_role_name_different_site( $this->assertEmpty( $users ); } - } diff --git a/tests/phpunit/tests/user/wpRegisterPersistedPreferencesMeta.php b/tests/phpunit/tests/user/wpRegisterPersistedPreferencesMeta.php index c3c4bd7a09e08..9c4725ffbfc9e 100644 --- a/tests/phpunit/tests/user/wpRegisterPersistedPreferencesMeta.php +++ b/tests/phpunit/tests/user/wpRegisterPersistedPreferencesMeta.php @@ -57,5 +57,4 @@ public function test_should_register_persisted_preferences_meta() { 'The registered metadata did not have the expected structure' ); } - } diff --git a/tests/phpunit/tests/user/wpSetCurrentUser.php b/tests/phpunit/tests/user/wpSetCurrentUser.php index 559aa2fbf475d..bebee961ececc 100644 --- a/tests/phpunit/tests/user/wpSetCurrentUser.php +++ b/tests/phpunit/tests/user/wpSetCurrentUser.php @@ -58,4 +58,3 @@ public function test_should_set_by_name_if_id_is_null() { $this->assertSame( self::$user_id2, get_current_user_id() ); } } - diff --git a/tests/phpunit/tests/utils.php b/tests/phpunit/tests/utils.php index 3146f645c4452..6a4f0d45f6dc7 100644 --- a/tests/phpunit/tests/utils.php +++ b/tests/phpunit/tests/utils.php @@ -34,7 +34,6 @@ public function test_strip_ws() { $expected .= 'foo'; $this->assertSame( $expected, strip_ws( $in ) ); - } /** diff --git a/tests/phpunit/tests/vars.php b/tests/phpunit/tests/vars.php new file mode 100644 index 0000000000000..ceb0a69c7ca63 --- /dev/null +++ b/tests/phpunit/tests/vars.php @@ -0,0 +1,147 @@ +server_vars = $_SERVER; + parent::set_up(); + } + + /** + * Tear down. + */ + public function tear_down() { + $_SERVER = $this->server_vars; + parent::tear_down(); + } + + /** + * Data provider to test wp_is_mobile(). + * + * @return array + */ + function get_data_to_test_wp_is_mobile(): array { + return array( + 'mobile client hint' => array( + 'headers' => array( + 'HTTP_SEC_CH_UA_MOBILE' => '?1', + ), + 'expected' => true, + ), + 'desktop client hint' => array( + 'headers' => array( + 'HTTP_SEC_CH_UA_MOBILE' => '?0', + ), + 'expected' => false, + ), + 'no user agent' => array( + 'headers' => array(), + 'expected' => false, + ), + 'desktop safari' => array( + 'headers' => array( + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 13_5_2) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5 Safari/605.1.15', + ), + 'expected' => false, + ), + 'mobile safari' => array( + 'headers' => array( + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5 Mobile/15E148 Safari/604.1', + ), + 'expected' => true, + ), + 'mobile android' => array( + 'headers' => array( + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.5938.60 Mobile Safari/537.36', + ), + 'expected' => true, + ), + 'silk' => array( + 'headers' => array( + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (Linux; U; Android 4.4.3; KFTHWI Build/KTU84M) AppleWebKit/537.36 (KHTML, like Gecko) Silk/44.1.54 like Chrome/44.0.2403.63 Mobile Safari/537.36', + ), + 'expected' => true, + ), + 'kindle' => array( + 'headers' => array( + 'HTTP_USER_AGENT' => 'Mozilla/4.0 (compatible; Linux 2.6.10) NetFront/3.3 Kindle/1.0 (screen 600x800)', + ), + 'expected' => true, + ), + 'blackberry' => array( + 'headers' => array( + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (Linux; Android 8.1.0; BlackBerry BBB100-4 Build/OPM1.171019.026) IPTV Pro/7.0.6', + ), + 'expected' => true, + ), + 'opera mini' => array( + 'headers' => array( + 'HTTP_USER_AGENT' => 'Opera/9.80 (Android; Opera Mini/69.0.2254/191.303; U; en) Presto/2.12.423 Version/12.16', + ), + 'expected' => true, + ), + 'opera mobi' => array( + 'headers' => array( + 'HTTP_USER_AGENT' => 'Opera/9.80 (Linux i686; Opera Mobi/1038; U; en) Presto/2.5.24 Version/10.00', + ), + 'expected' => true, + ), + ); + } + + /** + * Tests that wp_is_mobile() . + * + * @ticket 59370 + * + * @covers ::wp_is_mobile + * + * @dataProvider get_data_to_test_wp_is_mobile + * + * @param array $headers Headers in $_SERVER. + * @param bool $expected Whether expected. + */ + function test_wp_is_mobile( array $headers, bool $expected ) { + foreach ( $headers as $key => $value ) { + $_SERVER[ $key ] = $value; + } + $this->assertSame( $expected, wp_is_mobile() ); + } + + /** + * Tests that filter can override output of wp_is_mobile() to be true. + * + * @covers ::wp_is_mobile + */ + function test_wp_is_mobile_is_true_with_filter() { + $this->assertFalse( wp_is_mobile() ); + add_filter( 'wp_is_mobile', '__return_true' ); + $this->assertTrue( wp_is_mobile() ); + } + + /** + * Tests that filter can override output of wp_is_mobile() to be false. + * + * @covers ::wp_is_mobile + */ + function test_wp_is_mobile_is_false_with_filter() { + $_SERVER['HTTP_USER_AGENT'] = 'Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.5938.60 Mobile Safari/537.36'; + $this->assertTrue( wp_is_mobile() ); + add_filter( 'wp_is_mobile', '__return_false' ); + $this->assertFalse( wp_is_mobile() ); + } +} diff --git a/tests/phpunit/tests/walker.php b/tests/phpunit/tests/walker.php index e2e9e1aba23a3..20e0b669c975e 100644 --- a/tests/phpunit/tests/walker.php +++ b/tests/phpunit/tests/walker.php @@ -31,7 +31,6 @@ public function test_single_item() { $this->assertSame( 1, $this->walker->get_number_of_root_elements( $items ) ); $this->assertSame( '
  • 1
  • ', $output ); - } public function test_single_item_flat() { @@ -46,7 +45,6 @@ public function test_single_item_flat() { $this->assertSame( 1, $this->walker->get_number_of_root_elements( $items ) ); $this->assertSame( '
  • 1
  • ', $output ); - } public function test_single_item_depth_1() { @@ -61,7 +59,6 @@ public function test_single_item_depth_1() { $this->assertSame( 1, $this->walker->get_number_of_root_elements( $items ) ); $this->assertSame( '
  • 1
  • ', $output ); - } public function test_multiple_items_single_level() { @@ -81,7 +78,6 @@ public function test_multiple_items_single_level() { $this->assertSame( 2, $this->walker->get_number_of_root_elements( $items ) ); $this->assertSame( '
  • 1
  • 2
  • ', $output ); - } public function test_multiple_items_multiple_levels() { @@ -101,7 +97,6 @@ public function test_multiple_items_multiple_levels() { $this->assertSame( 1, $this->walker->get_number_of_root_elements( $items ) ); $this->assertSame( '
  • 1
    • 2
  • ', $output ); - } public function test_multiple_items_multiple_levels_flat() { @@ -121,7 +116,6 @@ public function test_multiple_items_multiple_levels_flat() { $this->assertSame( 1, $this->walker->get_number_of_root_elements( $items ) ); $this->assertSame( '
  • 1
  • 2
  • ', $output ); - } public function test_multiple_items_multiple_levels_depth_1() { @@ -141,7 +135,6 @@ public function test_multiple_items_multiple_levels_depth_1() { $this->assertSame( 1, $this->walker->get_number_of_root_elements( $items ) ); $this->assertSame( '
  • 1
  • ', $output ); - } public function test_multiple_items_multiple_levels_depth_2() { @@ -165,7 +158,6 @@ public function test_multiple_items_multiple_levels_depth_2() { $this->assertSame( 1, $this->walker->get_number_of_root_elements( $items ) ); $this->assertSame( '
  • 1
    • 2
  • ', $output ); - } public function test_multiple_items_recursive() { @@ -185,7 +177,6 @@ public function test_multiple_items_recursive() { $this->assertSame( 0, $this->walker->get_number_of_root_elements( $items ) ); $this->assertSame( '
  • 1
    • 2
  • ', $output ); - } public function test_single_item_child() { @@ -201,7 +192,6 @@ public function test_single_item_child() { $this->assertSame( 0, $this->walker->get_number_of_root_elements( $items ) ); $this->assertSame( '
  • 1
  • ', $output ); - } public function test_single_item_missing_parent_depth_1() { @@ -224,7 +214,6 @@ public function test_single_item_missing_parent_depth_1() { // But as we've only asked for the first depth maybe nothing should be returned? // $this->assertSame( '', $output ); - } public function test_multiple_items_missing_parents() { @@ -248,7 +237,6 @@ public function test_multiple_items_missing_parents() { $this->assertSame( 0, $this->walker->get_number_of_root_elements( $items ) ); $this->assertSame( '
  • 4
  • 5
  • 6
  • ', $output ); - } public function test_multiple_items_missing_parents_depth_1() { @@ -282,7 +270,6 @@ public function test_multiple_items_missing_parents_depth_1() { // Or maybe all items which are missing parents should simply be treat top level? // $this->assertSame( '
  • 4
  • 5
  • 6
  • ', $output ); - } /** @@ -312,9 +299,7 @@ public function test_multiple_items_non_numeric_parent() { $output = $this->walker->paged_walk( $items, 0, 2, 1 ); $this->assertSame( '
  • 2
  • ', $output ); - } - } class Walker_Test extends Walker { @@ -340,5 +325,4 @@ public function start_el( &$output, $item, $depth = 0, $args = array(), $current public function end_el( &$output, $page, $depth = 0, $args = array() ) { $output .= ''; } - } diff --git a/tests/phpunit/tests/webfonts/wpThemeJsonWebfontsHandler.php b/tests/phpunit/tests/webfonts/wpThemeJsonWebfontsHandler.php deleted file mode 100644 index 7202417ddee93..0000000000000 --- a/tests/phpunit/tests/webfonts/wpThemeJsonWebfontsHandler.php +++ /dev/null @@ -1,138 +0,0 @@ -orig_wp_styles = $wp_styles; - $wp_styles = null; - - $this->theme_root = realpath( DIR_TESTDATA . '/themedir1' ); - $this->orig_theme_dir = $GLOBALS['wp_theme_directories']; - - // /themes is necessary as theme.php functions assume /themes is the root if there is only one root. - $GLOBALS['wp_theme_directories'] = array( WP_CONTENT_DIR . '/themes', $this->theme_root ); - - $theme_root_callback = function () { - return $this->theme_root; - }; - - add_filter( 'theme_root', $theme_root_callback ); - add_filter( 'stylesheet_root', $theme_root_callback ); - add_filter( 'template_root', $theme_root_callback ); - - // Clear caches. - wp_clean_themes_cache(); - unset( $GLOBALS['wp_themes'] ); - } - - public function tear_down() { - global $wp_styles; - $wp_styles = $this->orig_wp_styles; - - // Restore the original theme directory setup. - $GLOBALS['wp_theme_directories'] = $this->orig_theme_dir; - wp_clean_themes_cache(); - unset( $GLOBALS['wp_themes'] ); - - parent::tear_down(); - } - - /** - * @ticket 55567 - * @ticket 46370 - * @ticket 57430 - */ - public function test_font_face_generated_from_themejson() { - $this->setup_theme_and_test( 'webfonts-theme' ); - - $expected = << -@font-face{font-family:"Source Serif Pro";font-style:normal;font-weight:200 900;font-display:fallback;src:url('THEME_ROOT_URL/assets/fonts/SourceSerif4Variable-Roman.ttf.woff2') format('woff2');font-stretch:normal;}@font-face{font-family:"Source Serif Pro";font-style:italic;font-weight:200 900;font-display:fallback;src:url('THEME_ROOT_URL/assets/fonts/SourceSerif4Variable-Italic.ttf.woff2') format('woff2');font-stretch:normal;} - -EOF; - $expected = str_replace( 'THEME_ROOT_URL', get_stylesheet_directory_uri(), $expected ); - $expected = str_replace( "\r\n", "\n", $expected ); - - $this->assertStringContainsString( - $expected, - get_echo( 'wp_print_styles' ) - ); - } - - /** - * @dataProvider data_font_face_not_generated - * - * @ticket 55567 - * @ticket 46370 - */ - public function test_font_face_not_generated( $theme_name ) { - $this->setup_theme_and_test( $theme_name ); - - $actual = get_echo( 'wp_print_styles' ); - $this->assertStringNotContainsString( "