diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml new file mode 100644 index 0000000..eacedfb --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -0,0 +1,56 @@ +name: Bug Report +description: >- + A bug report. This should be a client-facing issue that needs to be resolved. +title: 'Bug: ' +labels: + - 'type: bug 🐛' +body: + - type: textarea + attributes: + label: Description + description: >- + Please write a brief description of the bug, including what you expected and what actually happened. + validations: + required: true + - type: textarea + attributes: + label: Steps to reproduce + description: >- + Please list the all the steps needed to reproduce the bug in an *isolated* way. + placeholder: >- + 1. Go to "..." + 2. ... + 3. Result show X but should be Y + validations: + required: true + - type: textarea + id: additional-notes + attributes: + label: Additional Notes + description: Include any additional notes, context, considerations. + - type: checkboxes + attributes: + label: Please confirm that you have searched existing issues in the repo. + description: >- + You can do this by searching + https://github.com/rtCamp/plugin-skeleton-d/issues and making sure the + bug is not related to another plugin. + options: + - label: 'Yes' + required: true + - type: textarea + id: site-health + attributes: + label: Site Health Info + description: Please include the output of the Site Health Info page, by going to your WordPress `Dashboard > Tools > Site Health > Info`, clicking `Copy site info to clipboard`, and pasting the output here. + value: | +
+ Site Health Info + + + ``` + PASTE SITE HEALTH INFO HERE + ``` +
+ validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..7d7b6d4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,11 @@ +blank_issues_enabled: true +contact_links: + - name: 📚 Documentation + url: https://github.com/rtCamp/plugin-skeleton-d/tree/main/docs + about: Check the documentation before opening an issue + - name: 💬 Discussions + url: https://github.com/rtCamp/plugin-skeleton-d/discussions + about: Ask questions and discuss ideas + - name: 🔒 Security Issue + url: https://github.com/rtCamp/plugin-skeleton-d/security/policy + about: Report security vulnerabilities privately diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..07cb6a5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,41 @@ +name: Feature request +description: Suggest an idea for Plugin Skeleton D +title: 'Feature: ' +body: + - type: markdown + attributes: + value: >- + Thank you for taking the time to submit a feature request. + + + Please make sure to search the repo for [existing feature + requests](https://github.com/rtCamp/plugin-skeleton-d/issues?q=is%3Aopen+is%3Aissue) + before creating a new one. + - type: textarea + attributes: + label: What problem does this address? + description: >- + Please describe the problem you are trying to solve, including why you + think this is a problem. + placeholder: I'm always frustrated when [...] + validations: + required: true + - type: textarea + attributes: + label: What is your proposed solution? + description: >- + Please provide a clear and concise description of your suggested + solution. + placeholder: What I'd like to see happen is [...] + validations: + required: true + - type: textarea + attributes: + label: What alternatives have you considered? + description: >- + Please list any alternatives you have considered, and why you think your + solution is better. + - type: textarea + attributes: + label: Additional Context + description: Add any other context or screenshots about the feature request here. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..0b52406 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,47 @@ + + +## What + + + +## Why + + + +### Related Issue(s): + + + +## How + + + +## Testing Instructions + + + + + + +## Screenshots + + + +## Additional Info + + + +## Checklist + +- [ ] I have read the [Contribution Guidelines](../docs/CONTRIBUTING.md). +- [ ] My PR title is descriptive and follows the [conventional commit message format](https://www.conventionalcommits.org/en/v1.0.0/). +- [ ] My code passes all lints (PHPCS, PHPStan, ESLint, etc.). +- [ ] My code has [detailed inline documentation](https://developer.wordpress.org/coding-standards/inline-documentation-standards/php/). +- [ ] My code has tests that cover the changes I made. +- [ ] I have updated the project documentation as needed. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cba8c8e..145dfb2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -51,14 +51,14 @@ jobs: - 'composer.*' phpcs: - '.phpcs.xml.dist' - - '.github/reusable-phpcs.yml' + - '.github/workflows/reusable-phpcs.yml' phpstan: - 'phpstan.neon.dist' - - '.github/reusable-phpstan.yml' + - '.github/workflows/reusable-phpstan.yml' phpunit: - 'tests/**/*.php' - 'phpunit.xml.dist' - - '.github/reusable-phpunit.yml' + - '.github/workflows/reusable-phpunit.yml' - 'package*.json' js: - '**.cjs' @@ -79,7 +79,7 @@ jobs: - '.stylelintrc*' e2e: - 'tests/e2e/**/*' - - '.github/reusable-e2e.yml' + - '.github/workflows/reusable-e2e.yml' jest: - 'tests/js/**/*' - 'src/**/__tests__/**/*' diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index cbf7e84..59a9184 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -12,7 +12,7 @@ on: - '.github/workflows/copilot-setup-steps.yml' pull_request: paths: - - .github/workflows/copilot-setup-steps.yml + - '.github/workflows/copilot-setup-steps.yml' permissions: contents: read diff --git a/.github/workflows/pr-title.yml b/.github/workflows/pr-title.yml index bb3a27e..dd951ef 100644 --- a/.github/workflows/pr-title.yml +++ b/.github/workflows/pr-title.yml @@ -13,6 +13,7 @@ concurrency: permissions: pull-requests: write + statuses: write jobs: run: diff --git a/.github/workflows/reusable-e2e.yml b/.github/workflows/reusable-e2e.yml index 55573d6..e5dce7d 100644 --- a/.github/workflows/reusable-e2e.yml +++ b/.github/workflows/reusable-e2e.yml @@ -30,7 +30,7 @@ jobs: coverage: none - name: Install Composer dependencies - uses: ramsey/composer-install@3cf229dc2919194e9e36783941438d17239e8520 # v3.1.1 + uses: ramsey/composer-install@a35c6ebd3d08125aaf8852dff361e686a1a67947 # v3.2.0 - name: Setup Node.js uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 @@ -49,7 +49,7 @@ jobs: with: timeout_minutes: 10 max_attempts: 3 - command: npm run wp-env start + command: WP_ENV_PORT=8889 WP_ENV_TESTS_PORT=8891 npm run wp-env:test start - name: Run E2E tests run: npm run test:e2e diff --git a/.github/workflows/reusable-phpunit.yml b/.github/workflows/reusable-phpunit.yml index 8ac69e7..2a990ba 100644 --- a/.github/workflows/reusable-phpunit.yml +++ b/.github/workflows/reusable-phpunit.yml @@ -53,7 +53,7 @@ jobs: coverage: ${{ inputs.coverage && 'xdebug' || 'none' }} - name: Install Composer dependencies - uses: ramsey/composer-install@3cf229dc2919194e9e36783941438d17239e8520 # v3.1.1 + uses: ramsey/composer-install@a35c6ebd3d08125aaf8852dff361e686a1a67947 # v3.2.0 - name: Setup Node.js uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 @@ -74,15 +74,15 @@ jobs: max_attempts: 3 command: | if [ "${{ inputs.coverage }}" == "true" ]; then - npm run wp-env start -- --xdebug=coverage + npm run wp-env:test start -- --xdebug=coverage else - npm run wp-env start + npm run wp-env:test start fi - name: Log versions run: | - npm run wp-env -- run cli php -- -v - npm run wp-env -- run cli wp core version + npm run wp-env:test -- run cli php -- -v + npm run wp-env:test -- run cli wp core version - name: Run PHPUnit tests${{ inputs.coverage && ' with coverage report' || '' }} run: npm run test:php ${{ !inputs.coverage && '-- --no-coverage' || '' }} diff --git a/.stylelint.config.js b/.stylelint.config.js index 6e708a7..436ff8e 100644 --- a/.stylelint.config.js +++ b/.stylelint.config.js @@ -1,6 +1,14 @@ /** @type {import('stylelint').Config} */ module.exports = { extends: '@wordpress/stylelint-config/scss', - ignoreFiles: [ '**/*.js', '**/*.json', '**/*.php', '**/*.svg' ], + ignoreFiles: [ + '**/*.js', + '**/*.json', + '**/*.jsx', + '**/*.php', + '**/*.svg', + '**/*.ts', + '**/*.tsx', + ], rules: {}, }; diff --git a/.wp-env.json b/.wp-env.json index 95407bb..3771a6d 100644 --- a/.wp-env.json +++ b/.wp-env.json @@ -1,27 +1,12 @@ { "$schema": "https://schemas.wp.org/trunk/wp-env.json", "core": null, + "testsEnvironment": false, "plugins": [ "." ], - "env": { - "development": { - "config": { - "WP_DEVELOPMENT_MODE": "plugin", - "WP_ENVIRONMENT_TYPE": "development", - "WP_DEBUG": true, - "WP_DEBUG_LOG": "/var/www/html/wp-content/plugins/plugin-skeleton-d/tests/_output/debug.log" - } - }, - "tests": { - "config": { - "WP_DEBUG": true, - "FS_METHOD": "direct" - }, - "mappings": { - "/wp-content/plugins/plugin-skeleton-d": "." - } - } - }, - "lifecycleScripts": { - "afterStart": "wp-env run cli wp rewrite structure /%postname%/ --hard" + "config": { + "WP_DEVELOPMENT_MODE": "plugin", + "WP_ENVIRONMENT_TYPE": "development", + "WP_DEBUG": true, + "WP_DEBUG_LOG": "/var/www/html/wp-content/plugins/plugin-skeleton-d/tests/_output/debug.log" } } diff --git a/.wp-env.test.json b/.wp-env.test.json new file mode 100644 index 0000000..b8f64fd --- /dev/null +++ b/.wp-env.test.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://schemas.wp.org/trunk/wp-env.json", + "core": null, + "port": 8889, + "testsEnvironment": false, + "plugins": [ "." ], + "config": { + "FS_METHOD": "direct", + "WP_DEBUG": true, + "WP_DEBUG_LOG": "/var/www/html/wp-content/plugins/plugin-skeleton-d/tests/_output/debug-test.log" + }, + "mappings": { + "wp-content/plugins/plugin-skeleton-d": "." + } +} diff --git a/composer.lock b/composer.lock index 9570ed3..244da94 100644 --- a/composer.lock +++ b/composer.lock @@ -3076,7 +3076,7 @@ }, { "name": "wp-phpunit/wp-phpunit", - "version": "6.9.1", + "version": "6.9.3", "source": { "type": "git", "url": "https://github.com/wp-phpunit/wp-phpunit.git", diff --git a/package-lock.json b/package-lock.json index 9998848..ac33b9f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,11 +24,11 @@ "@types/wordpress__block-editor": "^15.0.5", "@types/wordpress__blocks": "^15.10.2", "@types/wordpress__i18n": "^3.11.0", - "@typescript-eslint/eslint-plugin": "^8.56.1", - "@typescript-eslint/parser": "^8.56.1", + "@typescript-eslint/eslint-plugin": "^8.57.0", + "@typescript-eslint/parser": "^8.57.0", "@wordpress/babel-preset-default": "^8.41.0", "@wordpress/e2e-test-utils-playwright": "^1.41.0", - "@wordpress/env": "^10.39.0", + "@wordpress/env": "^11.1.0", "@wordpress/eslint-plugin": "^24.3.0", "@wordpress/prettier-config": "^4.41.0", "@wordpress/scripts": "^31.6.0", @@ -36,8 +36,8 @@ "cross-env": "^10.1.0", "eslint-plugin-jest": "^29.15.0", "jest-watch-typeahead": "^2.2.2", - "lefthook": "^2.1.2", - "lint-staged": "^16.3.2", + "lefthook": "^2.1.3", + "lint-staged": "^16.3.3", "npm-run-all": "^4.1.5", "prettier": "npm:wp-prettier@^3", "rimraf": "^6.1.3", @@ -6296,14 +6296,14 @@ } }, "node_modules/@php-wasm/cli-util": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@php-wasm/cli-util/-/cli-util-3.1.4.tgz", - "integrity": "sha512-SVJBkvwT9FMM9AhVgjIwXh1KJZaEl/IvULIXKKSfmdqhk9SLpqmyJWw/WsibDzsj1FtcUHO+MmI5t7MVi5OioA==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@php-wasm/cli-util/-/cli-util-3.1.9.tgz", + "integrity": "sha512-v9RIFyzj0EG/7b9UBYCRxhwYRC0TJpeuMF7Qo7XnO4jxnMhCRD2xhgTX3NTvPK/lf0Uyp+OjSzUlHQTCJG1qWQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/util": "3.1.4", - "fast-xml-parser": "^5.3.4", + "@php-wasm/util": "3.1.9", + "fast-xml-parser": "^5.5.1", "jsonc-parser": "3.3.1" }, "engines": { @@ -6312,13 +6312,13 @@ } }, "node_modules/@php-wasm/logger": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@php-wasm/logger/-/logger-3.1.4.tgz", - "integrity": "sha512-qJADSkoHZIvoLomnyglMcISdfJH+9fZ+4YZ7N/vJrfo0vHp/51nOmKa38eKmONUGInAgKHIJ5LZ9b73dYtDygA==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@php-wasm/logger/-/logger-3.1.9.tgz", + "integrity": "sha512-xh0wN6tW8SEvudX6HChLhK1U7WA8Bf3BD+BxQBWamDOuocT6L3OHXIhNgHskWHEwCwGSOERlw8wDuwuNtGYDww==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/node-polyfills": "3.1.4" + "@php-wasm/node-polyfills": "3.1.9" }, "engines": { "node": ">=20.10.0", @@ -6326,27 +6326,27 @@ } }, "node_modules/@php-wasm/node": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@php-wasm/node/-/node-3.1.4.tgz", - "integrity": "sha512-sDWXq+3ApKDZAVTJRaERRBkzpoiudNcnXz5yk5leeqymCOwNz6F0V+jSndcO0shEbsOTOT6b4J89pdKVSBUVOg==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@php-wasm/node/-/node-3.1.9.tgz", + "integrity": "sha512-p3zheKRyXZSccYZ1BVj+ilF8nHQXr+424uGBkyb4wq1aqkFbXG+NgutZ279eikcYN3XC0Nt9IZjBLYtZhOoqKg==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/cli-util": "3.1.4", - "@php-wasm/logger": "3.1.4", - "@php-wasm/node-7-4": "3.1.4", - "@php-wasm/node-8-0": "3.1.4", - "@php-wasm/node-8-1": "3.1.4", - "@php-wasm/node-8-2": "3.1.4", - "@php-wasm/node-8-3": "3.1.4", - "@php-wasm/node-8-4": "3.1.4", - "@php-wasm/node-8-5": "3.1.4", - "@php-wasm/node-polyfills": "3.1.4", - "@php-wasm/universal": "3.1.4", - "@php-wasm/util": "3.1.4", - "@wp-playground/common": "3.1.4", + "@php-wasm/cli-util": "3.1.9", + "@php-wasm/logger": "3.1.9", + "@php-wasm/node-7-4": "3.1.9", + "@php-wasm/node-8-0": "3.1.9", + "@php-wasm/node-8-1": "3.1.9", + "@php-wasm/node-8-2": "3.1.9", + "@php-wasm/node-8-3": "3.1.9", + "@php-wasm/node-8-4": "3.1.9", + "@php-wasm/node-8-5": "3.1.9", + "@php-wasm/node-polyfills": "3.1.9", + "@php-wasm/universal": "3.1.9", + "@php-wasm/util": "3.1.9", + "@wp-playground/common": "3.1.9", "express": "4.22.0", - "fast-xml-parser": "^5.3.4", + "fast-xml-parser": "^5.5.1", "fs-ext-extra-prebuilt": "2.2.7", "ini": "4.1.2", "jsonc-parser": "3.3.1", @@ -6360,13 +6360,13 @@ } }, "node_modules/@php-wasm/node-7-4": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@php-wasm/node-7-4/-/node-7-4-3.1.4.tgz", - "integrity": "sha512-iP95JNInGsJdu4Zp/7x3rROpw1bbidq9X2RDwjO6fhCrG+zWifKgg/I2hFAIpYAJeZXAaN4MPyqeihtmLZ204g==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@php-wasm/node-7-4/-/node-7-4-3.1.9.tgz", + "integrity": "sha512-1vSKay9G+BoWuiwS7kZeohILLDAEr4KZdwPAkJBsqQDSFKtMCfqLmnv7A/xG55VG1sStUdsjSgJkfE6FOM/V9g==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/universal": "3.1.4", + "@php-wasm/universal": "3.1.9", "ini": "4.1.2", "wasm-feature-detect": "1.8.0", "ws": "8.18.3" @@ -6377,13 +6377,13 @@ } }, "node_modules/@php-wasm/node-8-0": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@php-wasm/node-8-0/-/node-8-0-3.1.4.tgz", - "integrity": "sha512-upNChLPNE95Pq1OHsHaZn1o36r0px9Iz2gSPXE+rZO4+C93JFyG24VJAqxh61c7CN+4Y1hudee66X4zCe5BAog==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@php-wasm/node-8-0/-/node-8-0-3.1.9.tgz", + "integrity": "sha512-EMSeTEa0hvDBgSB2qCUh9AgISSkZAW4B2EYdMhU/dFKKe/zyfTJiU31m6C4m0w9oMsL01UmWEBAtVIhQNt2W4w==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/universal": "3.1.4", + "@php-wasm/universal": "3.1.9", "ini": "4.1.2", "wasm-feature-detect": "1.8.0", "ws": "8.18.3" @@ -6394,13 +6394,13 @@ } }, "node_modules/@php-wasm/node-8-1": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@php-wasm/node-8-1/-/node-8-1-3.1.4.tgz", - "integrity": "sha512-JXW3o278v4Rf02SZLxV4g/zDtDxp3KNsv+9Yy1QP7SscfDWe3R7Vo65S2NG7GZItIVcQ8n1KLMqZLCOcDR+tmg==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@php-wasm/node-8-1/-/node-8-1-3.1.9.tgz", + "integrity": "sha512-vr4CfjFUub+fJlDU84pHz2trfce0PFV11Pc3UD0kfixYHFgpDo8bjRUmiI9UfhcpVgb62v29WHM/q16UpRMRCw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/universal": "3.1.4", + "@php-wasm/universal": "3.1.9", "ini": "4.1.2", "wasm-feature-detect": "1.8.0", "ws": "8.18.3" @@ -6411,13 +6411,13 @@ } }, "node_modules/@php-wasm/node-8-2": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@php-wasm/node-8-2/-/node-8-2-3.1.4.tgz", - "integrity": "sha512-QRT436IfwQVLpns2dpCsgEuDAh4kS1SRHcaG3cn0ShUpUwxwU/vkGR58uKmXDPGSeLYgMX8ozLZWARUUK8TjCg==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@php-wasm/node-8-2/-/node-8-2-3.1.9.tgz", + "integrity": "sha512-F6FXty74WoDqhR/6h8k37y0/eT13ULvVqPexM2tPlxnEcNT1t6sHAOOZtJjjgRbgxZ4aNO5wej7YKInPPhB5Cg==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/universal": "3.1.4", + "@php-wasm/universal": "3.1.9", "ini": "4.1.2", "wasm-feature-detect": "1.8.0", "ws": "8.18.3" @@ -6428,13 +6428,13 @@ } }, "node_modules/@php-wasm/node-8-3": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@php-wasm/node-8-3/-/node-8-3-3.1.4.tgz", - "integrity": "sha512-l/xUJqKB14PLdvVQAEDYfs8Ne3vcQZ+ixOZre1k+gig6L2M0UZkX+UKf5PtE26Ft3VAquQUSeYgmPrO3A1kdnQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@php-wasm/node-8-3/-/node-8-3-3.1.9.tgz", + "integrity": "sha512-f6rxwjp6Qxf91Kkqa1lxCBtRE8zIt6nhB0epAw3N7pjSFDJEUWUZXGA6/HDhpaGb5EynMObkzY1ghSLjvD76rg==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/universal": "3.1.4", + "@php-wasm/universal": "3.1.9", "ini": "4.1.2", "wasm-feature-detect": "1.8.0", "ws": "8.18.3" @@ -6445,13 +6445,13 @@ } }, "node_modules/@php-wasm/node-8-4": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@php-wasm/node-8-4/-/node-8-4-3.1.4.tgz", - "integrity": "sha512-HvxShZ9RjQF+QXDlN44qcRou4okq6JTEHA3EYmqzaJv7V5+Zjn3K3bOaUAWtd9wem+kc4p1RTJ+ZgaMSp+QUVw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@php-wasm/node-8-4/-/node-8-4-3.1.9.tgz", + "integrity": "sha512-HZI2WOkhfPDCK+/gMvoxJ8K1nFfSV4hD6g5+4mHwJlC1gDxoH2lYv2JPWQjgTh1fWHInw48V28KKqmhaqNzLuQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/universal": "3.1.4", + "@php-wasm/universal": "3.1.9", "ini": "4.1.2", "wasm-feature-detect": "1.8.0", "ws": "8.18.3" @@ -6462,13 +6462,13 @@ } }, "node_modules/@php-wasm/node-8-5": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@php-wasm/node-8-5/-/node-8-5-3.1.4.tgz", - "integrity": "sha512-dQWrrA5Wjx0mo3a5COWUjlbCSPM7k+FXJoSnJWBSFQwfQycMEPOWxrRX2Hxtm+i6QXGI5UyJR0SI9cSVIx09RA==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@php-wasm/node-8-5/-/node-8-5-3.1.9.tgz", + "integrity": "sha512-3QoQNMIYb1SJRXPHiC3NFqDHc8I7oOcoPMNbik05eEO53V8saC6L3IjBwim1r6qzvPWH4jZeErRBmkGBzwdSZA==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/universal": "3.1.4", + "@php-wasm/universal": "3.1.9", "ini": "4.1.2", "wasm-feature-detect": "1.8.0", "ws": "8.18.3" @@ -6479,21 +6479,21 @@ } }, "node_modules/@php-wasm/node-polyfills": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@php-wasm/node-polyfills/-/node-polyfills-3.1.4.tgz", - "integrity": "sha512-7lL50hCUWA7cDl6Q6rWIks4eKbfI/TrDl8GKYf7E56Ep1JNUMFLmzU/nxmPDB9la+fbVhpkL17Tc5izyqK3Y1A==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@php-wasm/node-polyfills/-/node-polyfills-3.1.9.tgz", + "integrity": "sha512-B2vOCxQu4O2rQwNAtZo9v6WiWiWO+Cqhp95BDE2VPibl65ZpLHhhq5opdeFFdGtvqk+xqI0dgcFs2PTd79cxWg==", "dev": true, "license": "GPL-2.0-or-later" }, "node_modules/@php-wasm/progress": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@php-wasm/progress/-/progress-3.1.4.tgz", - "integrity": "sha512-eu9qyfuNJr8Jju2mIqAtP5ovt7lwbduDvjHBbrP/uHicBqCwI6uPK9dGc0qLjQ8ZQ/yJqi+qOpnpUKbk0xIWOw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@php-wasm/progress/-/progress-3.1.9.tgz", + "integrity": "sha512-CYBAbEuFHZMLInHWiEJZZqWNAHlKYMdhiL/M96jK17/OsgzXEVZilhzq3XvBQzV1U/ZmmS5tPy7+DbBY0Ts1Ig==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/logger": "3.1.4", - "@php-wasm/node-polyfills": "3.1.4" + "@php-wasm/logger": "3.1.9", + "@php-wasm/node-polyfills": "3.1.9" }, "engines": { "node": ">=20.10.0", @@ -6501,9 +6501,9 @@ } }, "node_modules/@php-wasm/scopes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@php-wasm/scopes/-/scopes-3.1.4.tgz", - "integrity": "sha512-+PQToTb2txA0A6450/IbJHotrFVGGAKWsU22hLCvpzcT9Zj1F3NInkkDAMjZ7Na4nofNzyc82ED8MWafwhxFmw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@php-wasm/scopes/-/scopes-3.1.9.tgz", + "integrity": "sha512-FpDywS1DM+2VDd3qSQ4j+WbRiG9yAgPYbdFsqUD+KcnnYJiVaTu2mj+PiW/t78pfz/lzlEmylpndiz1FeI/XnA==", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -6512,28 +6512,28 @@ } }, "node_modules/@php-wasm/stream-compression": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@php-wasm/stream-compression/-/stream-compression-3.1.4.tgz", - "integrity": "sha512-gr6Y2N7XTW1ceh8yycFE/h7u4hLHWwmyvFwtjfb0U1FWIRerpXzyVwy9Fzlw3D8vgAsMpeM4OZdZ2MWyC8kN1g==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@php-wasm/stream-compression/-/stream-compression-3.1.9.tgz", + "integrity": "sha512-M4wMQLb6sMeN5i3gvR+9anz7qQ/XEGfDZmMD7moc4kuFkQ/xnDAsyF2i6ZXtiw3EZ6yMCVQ14NjfU/lCogbWkQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/node-polyfills": "3.1.4", - "@php-wasm/util": "3.1.4" + "@php-wasm/node-polyfills": "3.1.9", + "@php-wasm/util": "3.1.9" } }, "node_modules/@php-wasm/universal": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@php-wasm/universal/-/universal-3.1.4.tgz", - "integrity": "sha512-9JWhjHZ3ZwnzqaR7ZuRfGdCvLjxdbg4Ok23PgVjsoMOCoFZWm6LUvR0nfZ7tRuKue8Bgwzzssx6RuwCy7Z5dIQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@php-wasm/universal/-/universal-3.1.9.tgz", + "integrity": "sha512-TBtm+0ozjZhAjkOKIM7vLud2HeqPMPVKzGyhXEHmeQdp+/12IB447fYg6mkxAXyq/S/+ha4yOOsetChfLEDCDw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/logger": "3.1.4", - "@php-wasm/node-polyfills": "3.1.4", - "@php-wasm/progress": "3.1.4", - "@php-wasm/stream-compression": "3.1.4", - "@php-wasm/util": "3.1.4", + "@php-wasm/logger": "3.1.9", + "@php-wasm/node-polyfills": "3.1.9", + "@php-wasm/progress": "3.1.9", + "@php-wasm/stream-compression": "3.1.9", + "@php-wasm/util": "3.1.9", "ini": "4.1.2" }, "engines": { @@ -6542,9 +6542,9 @@ } }, "node_modules/@php-wasm/util": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@php-wasm/util/-/util-3.1.4.tgz", - "integrity": "sha512-JAJGJAU/D5N/4pAvNEUZaDBZlFVMkjUYR7MAEsm3Dtq8yqsjl4oNRI43zpvdnfzSd6FVf0jOB5AVrC3wfv83yQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@php-wasm/util/-/util-3.1.9.tgz", + "integrity": "sha512-kWoY8Warfb6wD2y5gR9zE7R+7i+BCKFT/3B49RhU1KM+YgbfW973fq+qldFAJftSuS9E2CDe5ittT8Mjzr4/kQ==", "dev": true, "engines": { "node": ">=20.10.0", @@ -6552,13 +6552,15 @@ } }, "node_modules/@php-wasm/web-service-worker": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@php-wasm/web-service-worker/-/web-service-worker-3.1.4.tgz", - "integrity": "sha512-DTJVoz8x5xTPBv3xNGJSmf3tXeYet0CXK0HWX7IRS4Zor3N8kzDLn9si2K61tJ5063P0rczQ/fp/YhNAhQVkkw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@php-wasm/web-service-worker/-/web-service-worker-3.1.9.tgz", + "integrity": "sha512-XyaTq4M+x2gXXddLRKbtFskJEcrCE/uA3RvikpHcSY0fEBAKDRXCv1V1IxlrkKlzVVZ2rjlxl18OFurDQJoYkg==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/scopes": "3.1.4" + "@php-wasm/scopes": "3.1.9", + "@php-wasm/universal": "3.1.9", + "ini": "4.1.2" }, "engines": { "node": ">=20.10.0", @@ -6566,18 +6568,18 @@ } }, "node_modules/@php-wasm/xdebug-bridge": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@php-wasm/xdebug-bridge/-/xdebug-bridge-3.1.4.tgz", - "integrity": "sha512-s6iZjVPUEFp/xhU+kGq2gnSMbZeS+w0TWSdikb+HjBl1Uzh+xAwTGCEey+PsvmRL7VkZ/PLWxwP9xq6GsDQ5YQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@php-wasm/xdebug-bridge/-/xdebug-bridge-3.1.9.tgz", + "integrity": "sha512-chgNyQPz+lhM4Hp7CQnTojgnkrzx0/DMkEiH9lIpshE2iCc+ixfyblDnBwb21DB1JsLSCUEpW79eL1MsiPVzSg==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/logger": "3.1.4", - "@php-wasm/node": "3.1.4", - "@php-wasm/universal": "3.1.4", - "@wp-playground/common": "3.1.4", + "@php-wasm/logger": "3.1.9", + "@php-wasm/node": "3.1.9", + "@php-wasm/universal": "3.1.9", + "@wp-playground/common": "3.1.9", "express": "4.22.0", - "fast-xml-parser": "^5.3.4", + "fast-xml-parser": "^5.5.1", "fs-ext-extra-prebuilt": "2.2.7", "ini": "4.1.2", "jsonc-parser": "3.3.1", @@ -8692,17 +8694,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.56.1.tgz", - "integrity": "sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.57.0.tgz", + "integrity": "sha512-qeu4rTHR3/IaFORbD16gmjq9+rEs9fGKdX0kF6BKSfi+gCuG3RCKLlSBYzn/bGsY9Tj7KE/DAQStbp8AHJGHEQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.56.1", - "@typescript-eslint/type-utils": "8.56.1", - "@typescript-eslint/utils": "8.56.1", - "@typescript-eslint/visitor-keys": "8.56.1", + "@typescript-eslint/scope-manager": "8.57.0", + "@typescript-eslint/type-utils": "8.57.0", + "@typescript-eslint/utils": "8.57.0", + "@typescript-eslint/visitor-keys": "8.57.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.4.0" @@ -8715,22 +8717,22 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.56.1", + "@typescript-eslint/parser": "^8.57.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.56.1.tgz", - "integrity": "sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.57.0.tgz", + "integrity": "sha512-XZzOmihLIr8AD1b9hL9ccNMzEMWt/dE2u7NyTY9jJG6YNiNthaD5XtUHVF2uCXZ15ng+z2hT3MVuxnUYhq6k1g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.56.1", - "@typescript-eslint/types": "8.56.1", - "@typescript-eslint/typescript-estree": "8.56.1", - "@typescript-eslint/visitor-keys": "8.56.1", + "@typescript-eslint/scope-manager": "8.57.0", + "@typescript-eslint/types": "8.57.0", + "@typescript-eslint/typescript-estree": "8.57.0", + "@typescript-eslint/visitor-keys": "8.57.0", "debug": "^4.4.3" }, "engines": { @@ -8746,14 +8748,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.56.1.tgz", - "integrity": "sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.57.0.tgz", + "integrity": "sha512-pR+dK0BlxCLxtWfaKQWtYr7MhKmzqZxuii+ZjuFlZlIGRZm22HnXFqa2eY+90MUz8/i80YJmzFGDUsi8dMOV5w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.56.1", - "@typescript-eslint/types": "^8.56.1", + "@typescript-eslint/tsconfig-utils": "^8.57.0", + "@typescript-eslint/types": "^8.57.0", "debug": "^4.4.3" }, "engines": { @@ -8768,14 +8770,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.56.1.tgz", - "integrity": "sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.57.0.tgz", + "integrity": "sha512-nvExQqAHF01lUM66MskSaZulpPL5pgy5hI5RfrxviLgzZVffB5yYzw27uK/ft8QnKXI2X0LBrHJFr1TaZtAibw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.56.1", - "@typescript-eslint/visitor-keys": "8.56.1" + "@typescript-eslint/types": "8.57.0", + "@typescript-eslint/visitor-keys": "8.57.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8786,9 +8788,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.56.1.tgz", - "integrity": "sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.57.0.tgz", + "integrity": "sha512-LtXRihc5ytjJIQEH+xqjB0+YgsV4/tW35XKX3GTZHpWtcC8SPkT/d4tqdf1cKtesryHm2bgp6l555NYcT2NLvA==", "dev": true, "license": "MIT", "engines": { @@ -8803,15 +8805,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.56.1.tgz", - "integrity": "sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.57.0.tgz", + "integrity": "sha512-yjgh7gmDcJ1+TcEg8x3uWQmn8ifvSupnPfjP21twPKrDP/pTHlEQgmKcitzF/rzPSmv7QjJ90vRpN4U+zoUjwQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.56.1", - "@typescript-eslint/typescript-estree": "8.56.1", - "@typescript-eslint/utils": "8.56.1", + "@typescript-eslint/types": "8.57.0", + "@typescript-eslint/typescript-estree": "8.57.0", + "@typescript-eslint/utils": "8.57.0", "debug": "^4.4.3", "ts-api-utils": "^2.4.0" }, @@ -8828,9 +8830,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.56.1.tgz", - "integrity": "sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.57.0.tgz", + "integrity": "sha512-dTLI8PEXhjUC7B9Kre+u0XznO696BhXcTlOn0/6kf1fHaQW8+VjJAVHJ3eTI14ZapTxdkOmc80HblPQLaEeJdg==", "dev": true, "license": "MIT", "engines": { @@ -8842,16 +8844,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.56.1.tgz", - "integrity": "sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.57.0.tgz", + "integrity": "sha512-m7faHcyVg0BT3VdYTlX8GdJEM7COexXxS6KqGopxdtkQRvBanK377QDHr4W/vIPAR+ah9+B/RclSW5ldVniO1Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.56.1", - "@typescript-eslint/tsconfig-utils": "8.56.1", - "@typescript-eslint/types": "8.56.1", - "@typescript-eslint/visitor-keys": "8.56.1", + "@typescript-eslint/project-service": "8.57.0", + "@typescript-eslint/tsconfig-utils": "8.57.0", + "@typescript-eslint/types": "8.57.0", + "@typescript-eslint/visitor-keys": "8.57.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -8883,16 +8885,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.56.1.tgz", - "integrity": "sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.57.0.tgz", + "integrity": "sha512-5iIHvpD3CZe06riAsbNxxreP+MuYgVUsV0n4bwLH//VJmgtt54sQeY2GszntJ4BjYCpMzrfVh2SBnUQTtys2lQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.56.1", - "@typescript-eslint/types": "8.56.1", - "@typescript-eslint/typescript-estree": "8.56.1" + "@typescript-eslint/scope-manager": "8.57.0", + "@typescript-eslint/types": "8.57.0", + "@typescript-eslint/typescript-estree": "8.57.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8907,13 +8909,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.56.1.tgz", - "integrity": "sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.57.0.tgz", + "integrity": "sha512-zm6xx8UT/Xy2oSr2ZXD0pZo7Jx2XsCoID2IUh9YSTFRu7z+WdwYTRk6LhUftm1crwqbuoF6I8zAFeCMw0YjwDg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.56.1", + "@typescript-eslint/types": "8.57.0", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -10289,14 +10291,14 @@ } }, "node_modules/@wordpress/env": { - "version": "10.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/env/-/env-10.39.0.tgz", - "integrity": "sha512-Hgl2RQAAzXFMqkpegGWT1/KkX88OVikRroPidWkij1WtU8p+AZniTcncWmlWqbdLdfGbPqQS5ZkqDZCzrQjgnA==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@wordpress/env/-/env-11.1.0.tgz", + "integrity": "sha512-fhpE6a7jmTLvaCvSqq0oSW/EH/UsgWxefZm8iV5q558jF2Ri97exmmGtoI8+wskYj8ivzIwNXPat7idBtYubtg==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@inquirer/prompts": "^7.2.0", - "@wp-playground/cli": "^3.0.0", + "@wp-playground/cli": "^3.0.48", "chalk": "^4.0.0", "copy-dir": "^1.3.0", "cross-spawn": "^7.0.6", @@ -10307,7 +10309,6 @@ "ora": "^4.0.2", "rimraf": "^5.0.10", "simple-git": "^3.5.0", - "terminal-link": "^2.0.0", "yargs": "^17.3.0" }, "bin": { @@ -11839,23 +11840,23 @@ } }, "node_modules/@wp-playground/blueprints": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@wp-playground/blueprints/-/blueprints-3.1.4.tgz", - "integrity": "sha512-prKI8WbKehbQX77nO1y3+XsUgV5mZeQdsndmecWVRKrZXQc3d0RkTCcckkZCYWHYhESF2L4rvzxShwRvSA6jxw==", - "dev": true, - "dependencies": { - "@php-wasm/logger": "3.1.4", - "@php-wasm/node": "3.1.4", - "@php-wasm/node-polyfills": "3.1.4", - "@php-wasm/progress": "3.1.4", - "@php-wasm/scopes": "3.1.4", - "@php-wasm/stream-compression": "3.1.4", - "@php-wasm/universal": "3.1.4", - "@php-wasm/util": "3.1.4", - "@php-wasm/web-service-worker": "3.1.4", - "@wp-playground/common": "3.1.4", - "@wp-playground/storage": "3.1.4", - "@wp-playground/wordpress": "3.1.4", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@wp-playground/blueprints/-/blueprints-3.1.9.tgz", + "integrity": "sha512-x+vjC6REuXHefR2bLfgmUUPzyydi0iuOjhCJ0+eLLhE7ZWmw5jKAUWk47kkoLC3jPb9tTJJCfNNxVousm+zcQQ==", + "dev": true, + "dependencies": { + "@php-wasm/logger": "3.1.9", + "@php-wasm/node": "3.1.9", + "@php-wasm/node-polyfills": "3.1.9", + "@php-wasm/progress": "3.1.9", + "@php-wasm/scopes": "3.1.9", + "@php-wasm/stream-compression": "3.1.9", + "@php-wasm/universal": "3.1.9", + "@php-wasm/util": "3.1.9", + "@php-wasm/web-service-worker": "3.1.9", + "@wp-playground/common": "3.1.9", + "@wp-playground/storage": "3.1.9", + "@wp-playground/wordpress": "3.1.9", "@zip.js/zip.js": "2.7.57", "ajv": "8.12.0", "async-lock": "1.4.1", @@ -11863,7 +11864,7 @@ "crc-32": "1.2.2", "diff3": "0.0.4", "express": "4.22.0", - "fast-xml-parser": "^5.3.4", + "fast-xml-parser": "^5.5.1", "fs-ext-extra-prebuilt": "2.2.7", "ignore": "5.3.2", "ini": "4.1.2", @@ -11895,24 +11896,24 @@ } }, "node_modules/@wp-playground/cli": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@wp-playground/cli/-/cli-3.1.4.tgz", - "integrity": "sha512-vbJZG32xhtAvNHGrhHCGMiu30wrV7nPYHFmRP0MKNclhrqPtKCUdtDSXBpoyO0aTDs92N4E/JheXJ1qYd5AJVw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@wp-playground/cli/-/cli-3.1.9.tgz", + "integrity": "sha512-ataEAEa/J1nGMYzxQhS0RKJ+g+/jKplCCBuvWJadYlVJ2kz2yhwHl0V2ZIMajXDdDvvSMO43oYOwuUznma2Rpw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/cli-util": "3.1.4", - "@php-wasm/logger": "3.1.4", - "@php-wasm/node": "3.1.4", - "@php-wasm/progress": "3.1.4", - "@php-wasm/universal": "3.1.4", - "@php-wasm/util": "3.1.4", - "@php-wasm/xdebug-bridge": "3.1.4", - "@wp-playground/blueprints": "3.1.4", - "@wp-playground/common": "3.1.4", - "@wp-playground/storage": "3.1.4", - "@wp-playground/tools": "3.1.4", - "@wp-playground/wordpress": "3.1.4", + "@php-wasm/cli-util": "3.1.9", + "@php-wasm/logger": "3.1.9", + "@php-wasm/node": "3.1.9", + "@php-wasm/progress": "3.1.9", + "@php-wasm/universal": "3.1.9", + "@php-wasm/util": "3.1.9", + "@php-wasm/xdebug-bridge": "3.1.9", + "@wp-playground/blueprints": "3.1.9", + "@wp-playground/common": "3.1.9", + "@wp-playground/storage": "3.1.9", + "@wp-playground/tools": "3.1.9", + "@wp-playground/wordpress": "3.1.9", "@zip.js/zip.js": "2.7.57", "ajv": "8.12.0", "async-lock": "1.4.1", @@ -11920,7 +11921,7 @@ "crc-32": "1.2.2", "diff3": "0.0.4", "express": "4.22.0", - "fast-xml-parser": "^5.3.4", + "fast-xml-parser": "^5.5.1", "fs-ext-extra-prebuilt": "2.2.7", "fs-extra": "11.1.1", "ignore": "5.3.2", @@ -11955,14 +11956,14 @@ } }, "node_modules/@wp-playground/common": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@wp-playground/common/-/common-3.1.4.tgz", - "integrity": "sha512-N7R4ZQeGfecAYG/gRSWlcHVdZLGygBN6QAXpemy+xUcks/qPoO1w0VVTJp1uoVJ77b7S0cKZsMcRgh0bYZ7hIQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@wp-playground/common/-/common-3.1.9.tgz", + "integrity": "sha512-zf0d5Ox7zbOjxEnmxLt+gP9l36I9prwJhf7P8wxaWUdObCF8vfB9KUiKSr8ysiezlOwSCOe2firlFt66iIvL0w==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/universal": "3.1.4", - "@php-wasm/util": "3.1.4", + "@php-wasm/universal": "3.1.9", + "@php-wasm/util": "3.1.9", "ini": "4.1.2" }, "engines": { @@ -11971,15 +11972,15 @@ } }, "node_modules/@wp-playground/storage": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@wp-playground/storage/-/storage-3.1.4.tgz", - "integrity": "sha512-mstkIeE0Fw+tGw49+n7zoWr4AI3Qe/X3260yJWOvux+Fox+fXwVT1HzUV1z/jayDPnMMEVLaYeHGiUh9ZJiX0w==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@wp-playground/storage/-/storage-3.1.9.tgz", + "integrity": "sha512-PkfA9Jd8jUZ5VTXbXSmDTHgMJRNgynWD6J/jgEfYtShToB9sXypXmf12OvzG0kB3w7V4d1SoA1ebpXDJGGSE8w==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/stream-compression": "3.1.4", - "@php-wasm/universal": "3.1.4", - "@php-wasm/util": "3.1.4", + "@php-wasm/stream-compression": "3.1.9", + "@php-wasm/universal": "3.1.9", + "@php-wasm/util": "3.1.9", "@zip.js/zip.js": "2.7.57", "async-lock": "^1.4.1", "clean-git-ref": "^2.0.1", @@ -12024,13 +12025,13 @@ } }, "node_modules/@wp-playground/tools": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@wp-playground/tools/-/tools-3.1.4.tgz", - "integrity": "sha512-fF6NzZbYdVMlDAJAPQJ910SagRQP4FtGkknvl3Wo/ACcTxFUhxP/zD0wbnp+74EQtvxT6KnqDmYXDtOpHT1Waw==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@wp-playground/tools/-/tools-3.1.9.tgz", + "integrity": "sha512-zaZz30fEn8QcK/PKk9vtKia5xcJ+Dc33RHClje6a9zjxV9GRX8aov/4h2tLhaumK2iWhjrTCSGIzCifLlB6OVA==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wp-playground/blueprints": "3.1.4", + "@wp-playground/blueprints": "3.1.9", "@zip.js/zip.js": "2.7.57", "ajv": "8.12.0", "async-lock": "1.4.1", @@ -12038,7 +12039,7 @@ "crc-32": "1.2.2", "diff3": "0.0.4", "express": "4.22.0", - "fast-xml-parser": "^5.3.4", + "fast-xml-parser": "^5.5.1", "fs-ext-extra-prebuilt": "2.2.7", "ignore": "5.3.2", "ini": "4.1.2", @@ -12070,19 +12071,19 @@ } }, "node_modules/@wp-playground/wordpress": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@wp-playground/wordpress/-/wordpress-3.1.4.tgz", - "integrity": "sha512-9xQVLBhE1etvpgxpnj8VISCgplJKkN57RSrRKalNWvfqN7D7mmJE3ZK8m0UTVLfd++tXWOAyIfOjuvjUjzXkNQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@wp-playground/wordpress/-/wordpress-3.1.9.tgz", + "integrity": "sha512-eOaDXoqDFhvBU2bOSqb63asNmXNK7gDVl/yabbmIcmdBL9reNtDZigETf+b2YsWTTUCVAGLSQz5H3+o88siNRQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/logger": "3.1.4", - "@php-wasm/node": "3.1.4", - "@php-wasm/universal": "3.1.4", - "@php-wasm/util": "3.1.4", - "@wp-playground/common": "3.1.4", + "@php-wasm/logger": "3.1.9", + "@php-wasm/node": "3.1.9", + "@php-wasm/universal": "3.1.9", + "@php-wasm/util": "3.1.9", + "@wp-playground/common": "3.1.9", "express": "4.22.0", - "fast-xml-parser": "^5.3.4", + "fast-xml-parser": "^5.5.1", "fs-ext-extra-prebuilt": "2.2.7", "ini": "4.1.2", "jsonc-parser": "3.3.1", @@ -16957,9 +16958,9 @@ "license": "MIT" }, "node_modules/fast-xml-builder": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.0.0.tgz", - "integrity": "sha512-fpZuDogrAgnyt9oDDz+5DBz0zgPdPZz6D4IR7iESxRXElrlGTRkHJ9eEt+SACRJwT0FNFrt71DFQIUFBJfX/uQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.1.2.tgz", + "integrity": "sha512-NJAmiuVaJEjVa7TjLZKlYd7RqmzOC91EtPFXHvlTcqBVo50Qh7XV5IwvXi1c7NRz2Q/majGX9YLcwJtWgHjtkA==", "dev": true, "funding": [ { @@ -16967,12 +16968,15 @@ "url": "https://github.com/sponsors/NaturalIntelligence" } ], - "license": "MIT" + "license": "MIT", + "dependencies": { + "path-expression-matcher": "^1.1.3" + } }, "node_modules/fast-xml-parser": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.4.2.tgz", - "integrity": "sha512-pw/6pIl4k0CSpElPEJhDppLzaixDEuWui2CUQQBH/ECDf7+y6YwA4Gf7Tyb0Rfe4DIMuZipYj4AEL0nACKglvQ==", + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.5.3.tgz", + "integrity": "sha512-Ymnuefk6VzAhT3SxLzVUw+nMio/wB1NGypHkgetwtXcK1JfryaHk4DWQFGVwQ9XgzyS5iRZ7C2ZGI4AMsdMZ6A==", "dev": true, "funding": [ { @@ -16982,7 +16986,8 @@ ], "license": "MIT", "dependencies": { - "fast-xml-builder": "^1.0.0", + "fast-xml-builder": "^1.1.2", + "path-expression-matcher": "^1.1.3", "strnum": "^2.1.2" }, "bin": { @@ -20882,9 +20887,9 @@ } }, "node_modules/lefthook": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/lefthook/-/lefthook-2.1.2.tgz", - "integrity": "sha512-HdAMl4g47kbWSkrUkCx3Kucq54omFS6piMJtXwXNtmCAfB40UaybTJuYtFW4hNzZ5SvaEimtxTp7P/MNIkEfsA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/lefthook/-/lefthook-2.1.3.tgz", + "integrity": "sha512-2W8PP/EGCvyS/x+Xza0Lgvn/EM3FKnr6m6xkfzpl6RKHl8TwPvs9iYZFQL99CnWTTvO+1mtQvIxGE/bD05038Q==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -20892,22 +20897,22 @@ "lefthook": "bin/index.js" }, "optionalDependencies": { - "lefthook-darwin-arm64": "2.1.2", - "lefthook-darwin-x64": "2.1.2", - "lefthook-freebsd-arm64": "2.1.2", - "lefthook-freebsd-x64": "2.1.2", - "lefthook-linux-arm64": "2.1.2", - "lefthook-linux-x64": "2.1.2", - "lefthook-openbsd-arm64": "2.1.2", - "lefthook-openbsd-x64": "2.1.2", - "lefthook-windows-arm64": "2.1.2", - "lefthook-windows-x64": "2.1.2" + "lefthook-darwin-arm64": "2.1.3", + "lefthook-darwin-x64": "2.1.3", + "lefthook-freebsd-arm64": "2.1.3", + "lefthook-freebsd-x64": "2.1.3", + "lefthook-linux-arm64": "2.1.3", + "lefthook-linux-x64": "2.1.3", + "lefthook-openbsd-arm64": "2.1.3", + "lefthook-openbsd-x64": "2.1.3", + "lefthook-windows-arm64": "2.1.3", + "lefthook-windows-x64": "2.1.3" } }, "node_modules/lefthook-darwin-arm64": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/lefthook-darwin-arm64/-/lefthook-darwin-arm64-2.1.2.tgz", - "integrity": "sha512-AgHu93YuJtj1l9bcKlCbo4Tg8N8xFl9iD6BjXCGaGMu46LSjFiXbJFlkUdpgrL8fIbwoCjJi5FNp3POpqs4Wdw==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/lefthook-darwin-arm64/-/lefthook-darwin-arm64-2.1.3.tgz", + "integrity": "sha512-VMSQK5ZUh66mKrEpHt5U81BxOg5xAXLoLZIK6e++4uc28tj8zGBqV9+tZqSRElXXzlnHbfdDVCMaKlTuqUy0Rg==", "cpu": [ "arm64" ], @@ -20919,9 +20924,9 @@ ] }, "node_modules/lefthook-darwin-x64": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/lefthook-darwin-x64/-/lefthook-darwin-x64-2.1.2.tgz", - "integrity": "sha512-exooc9Ectz13OLJJOXM9AzaFQbqzf9QCF8JuVvGfbr4RYABYK+BwwtydjlPQrA76/n/h4tsS11MH5bBULnLkYA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/lefthook-darwin-x64/-/lefthook-darwin-x64-2.1.3.tgz", + "integrity": "sha512-4QhepF4cf+fa7sDow29IEuCfm/6LuV+oVyQGpnr5it1DEZIEEoa6vdH/x4tutYhAg/HH7I2jHq6FGz96HRiJEQ==", "cpu": [ "x64" ], @@ -20933,9 +20938,9 @@ ] }, "node_modules/lefthook-freebsd-arm64": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/lefthook-freebsd-arm64/-/lefthook-freebsd-arm64-2.1.2.tgz", - "integrity": "sha512-E1QMlJPEU21n9eewv6ePfh+JmoTSg5R1jaYcKCky10kfbMdohNucI3xV91F2LcerE+p3UejKDqr/1wWO2RMGeQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/lefthook-freebsd-arm64/-/lefthook-freebsd-arm64-2.1.3.tgz", + "integrity": "sha512-kysx/9pjifOgcTZOj1bR0i74FAbMv3BDfrpZDKniBOo4Dp0hXhyOtUmRn4nWKL0bN+cqc4ZePAq4Qdm4fxWafA==", "cpu": [ "arm64" ], @@ -20947,9 +20952,9 @@ ] }, "node_modules/lefthook-freebsd-x64": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/lefthook-freebsd-x64/-/lefthook-freebsd-x64-2.1.2.tgz", - "integrity": "sha512-/5zp+x8055Thj46x9S7hgnneZxvWhHQvPWkkgISCab1Lh6eLrbxvhE1qTb1lU3DqTnNmH9NeXdq1xPHc9uGluA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/lefthook-freebsd-x64/-/lefthook-freebsd-x64-2.1.3.tgz", + "integrity": "sha512-TLuPHQNg6iihShchrh5DrHvoCZO8FajZBMAEwLIKWlm6bkCcXbYNxy4dBaVK8lzHtS/Kv1bnH0D3BcK65iZFVQ==", "cpu": [ "x64" ], @@ -20961,9 +20966,9 @@ ] }, "node_modules/lefthook-linux-arm64": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/lefthook-linux-arm64/-/lefthook-linux-arm64-2.1.2.tgz", - "integrity": "sha512-UK5FvDTkwKO7tOznY8iEZzuTsM1jXMZAG5BMRs7olN1k1K6m2unR6oKABP0hCd0wDErK6DZKDJDJfB564Rzqtw==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/lefthook-linux-arm64/-/lefthook-linux-arm64-2.1.3.tgz", + "integrity": "sha512-e5x4pq1aZAXc0C642V4HaUoKtcHVmGW1HBIDNfWUhtsThBKjhZBXPspecaAHIRA/8VtsXS3RnJ4VhQpgfrCbww==", "cpu": [ "arm64" ], @@ -20975,9 +20980,9 @@ ] }, "node_modules/lefthook-linux-x64": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/lefthook-linux-x64/-/lefthook-linux-x64-2.1.2.tgz", - "integrity": "sha512-4eOtz4PNh8GbJ+nA8YVDfW/eMirQWdZqMP/V/MVtoVBGobf6oXvvuDOySvAPOgNYEFN0Boegytmuji/851Vstg==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/lefthook-linux-x64/-/lefthook-linux-x64-2.1.3.tgz", + "integrity": "sha512-yeVAiV5hoE6Qq8dQDB4XC14x4N9mhn+FetxzqDu5LVci0/sOPqyPq2b0YUtNwJ1ZUKawTz4I/oqnUsHkQrGH0w==", "cpu": [ "x64" ], @@ -20989,9 +20994,9 @@ ] }, "node_modules/lefthook-openbsd-arm64": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/lefthook-openbsd-arm64/-/lefthook-openbsd-arm64-2.1.2.tgz", - "integrity": "sha512-lJXRJ6iJIBKwomuNBA3CUNSclj2/rKuxGAQoUra214B92VB6jL9zaY5YEs6h/ie9jQrzSnllEeg7xyDIsuVCrQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/lefthook-openbsd-arm64/-/lefthook-openbsd-arm64-2.1.3.tgz", + "integrity": "sha512-8QVvRxIosV6NL2XrbifOPGVhMFE43h02BUNEHYhZhyad7BredfAakg9dA9J/NO0I3eMdvCYU50ubFyDGIqUJog==", "cpu": [ "arm64" ], @@ -21003,9 +21008,9 @@ ] }, "node_modules/lefthook-openbsd-x64": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/lefthook-openbsd-x64/-/lefthook-openbsd-x64-2.1.2.tgz", - "integrity": "sha512-GyOje4W0DIqkmR7/Of5D+mZ0vWqMvtGAVedtJR6d1239xNeMzCS8Q+/a3O1xigceZa5xhlqq0BWlssB/QYPQnA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/lefthook-openbsd-x64/-/lefthook-openbsd-x64-2.1.3.tgz", + "integrity": "sha512-YTS9qeW9PzzKg9Rk55mQprLIl1OdAIIjeOH8DF+MPWoAPkRqeUyq8Q2Bdlf3+Swy+kJOjoiU1pKvpjjc8upv9Q==", "cpu": [ "x64" ], @@ -21017,9 +21022,9 @@ ] }, "node_modules/lefthook-windows-arm64": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/lefthook-windows-arm64/-/lefthook-windows-arm64-2.1.2.tgz", - "integrity": "sha512-MZKMqTULEpX/8N3fKXAR0A9RjsGKkEEY0japLqrHOIpxsJXry1DRz0FvQo2kkY4WW3rtFegV9m6eesOymuDrUg==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/lefthook-windows-arm64/-/lefthook-windows-arm64-2.1.3.tgz", + "integrity": "sha512-Nlp80pWyF67GmxgM5NQmL7JTTccbJAvCNtS5QwHmKq3pJ9Xi0UegP9pGME520n06Rhp+gX7H4boXhm2D5hAghg==", "cpu": [ "arm64" ], @@ -21031,9 +21036,9 @@ ] }, "node_modules/lefthook-windows-x64": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/lefthook-windows-x64/-/lefthook-windows-x64-2.1.2.tgz", - "integrity": "sha512-NZUgObuaSxc0EXAwC/CzkMf7TuQc++GGIk6TLPdaUpoSsNSJSZEwBVz5DtFB1cG+eMkfO/wOKplls+yjimTTtQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/lefthook-windows-x64/-/lefthook-windows-x64-2.1.3.tgz", + "integrity": "sha512-KByBhvqgUNhjO/03Mr0y66D9B1ZnII7AB0x17cumwHMOYoDaPJh/AlgmEduqUpatqli3lnFzWD0DUkAY6pq/SA==", "cpu": [ "x64" ], @@ -21329,9 +21334,9 @@ } }, "node_modules/lint-staged": { - "version": "16.3.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.3.2.tgz", - "integrity": "sha512-xKqhC2AeXLwiAHXguxBjuChoTTWFC6Pees0SHPwOpwlvI3BH7ZADFPddAdN3pgo3aiKgPUx/bxE78JfUnxQnlg==", + "version": "16.3.3", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.3.3.tgz", + "integrity": "sha512-RLq2koZ5fGWrx7tcqx2tSTMQj4lRkfNJaebO/li/uunhCJbtZqwTuwPHpgIimAHHi/2nZIiGrkCHDCOeR1onxA==", "dev": true, "license": "MIT", "dependencies": { @@ -24035,6 +24040,22 @@ "node": ">=8" } }, + "node_modules/path-expression-matcher": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.1.3.tgz", + "integrity": "sha512-qdVgY8KXmVdJZRSS1JdEPOKPdTiEK/pi0RkcT2sw1RhXxohdujUlJFPuS1TSkevZ9vzd3ZlL7ULl1MHGTApKzQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -27320,9 +27341,9 @@ } }, "node_modules/simple-git": { - "version": "3.30.0", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.30.0.tgz", - "integrity": "sha512-q6lxyDsCmEal/MEGhP1aVyQ3oxnagGlBDOVSIB4XUVLl1iZh0Pah6ebC9V4xBap/RfgP2WlI8EKs0WS0rMEJHg==", + "version": "3.33.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.33.0.tgz", + "integrity": "sha512-D4V/tGC2sjsoNhoMybKyGoE+v8A60hRawKQ1iFRA1zwuDgGZCBJ4ByOzZ5J8joBbi4Oam0qiPH+GhzmSBwbJng==", "dev": true, "license": "MIT", "dependencies": { @@ -28849,37 +28870,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, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terminal-link/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, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/terser": { "version": "5.46.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", @@ -29596,7 +29586,7 @@ "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "devOptional": true, + "dev": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", diff --git a/package.json b/package.json index cef2a79..65e3422 100644 --- a/package.json +++ b/package.json @@ -24,16 +24,16 @@ "build:prod": "npm run clean && cross-env NODE_ENV=production npm run build:js", "clean": "rimraf build", "format": "wp-scripts format", - "i18n:make-pot": "wp-env run cli --env-cwd=wp-content/plugins/plugin-skeleton-d -- wp i18n make-pot . ./languages/plugin-skeleton-d.pot --domain=plugin-skeleton-d --include='*.php,inc,framework,src,templates' --exclude='assets,build,node_modules,tests,vendor'", - "i18n:make-json": "wp-env run cli --env-cwd=wp-content/plugins/plugin-skeleton-d -- wp i18n make-json languages/ --no-purge", + "i18n:make-pot": "wp-env run cli --env-cwd=wp-content/plugins/$(basename \"$(pwd)\")/ -- wp i18n make-pot . ./languages/plugin-skeleton-d.pot --domain=plugin-skeleton-d --include='*.php,inc,framework,src,templates' --exclude='assets,build,node_modules,tests,vendor'", + "i18n:make-json": "wp-env run cli --env-cwd=wp-content/plugins/$(basename \"$(pwd)\")/ -- wp i18n make-json languages/ --no-purge", "lint:css:fix": "wp-scripts lint-style --fix", "lint:css": "wp-scripts lint-style", "lint:js:fix": "wp-scripts lint-js --fix", "lint:js:types": "tsc --noEmit", "lint:js": "wp-scripts lint-js", - "lint:php:fix": "wp-env run tests-cli --env-cwd=wp-content/plugins/plugin-skeleton-d composer run-script format", - "lint:php:stan": "wp-env run tests-cli --env-cwd=wp-content/plugins/plugin-skeleton-d composer run-script phpstan", - "lint:php": "wp-env run tests-cli --env-cwd=wp-content/plugins/plugin-skeleton-d composer run-script lint", + "lint:php:fix": "wp-env run cli --env-cwd=wp-content/plugins/$(basename \"$(pwd)\")/ composer run-script format", + "lint:php:stan": "wp-env run cli --env-cwd=wp-content/plugins/$(basename \"$(pwd)\")/ composer run-script phpstan", + "lint:php": "wp-env run cli --env-cwd=wp-content/plugins/$(basename \"$(pwd)\")/ composer run-script lint", "plugin-zip": "wp-scripts plugin-zip", "prepare": "lefthook install", "start:js": "wp-scripts start --experimental-modules --blocks-manifest", @@ -41,9 +41,10 @@ "test:js": "wp-scripts test-unit-js", "test:js:watch": "wp-scripts test-unit-js --watch", "test:js:coverage": "wp-scripts test-unit-js --coverage", - "test:php": "wp-env run tests-cli --env-cwd=wp-content/plugins/plugin-skeleton-d vendor/bin/phpunit -c phpunit.xml.dist", + "test:php": "npm run wp-env:test -- run cli --env-cwd=wp-content/plugins/$(basename \"$(pwd)\")/ vendor/bin/phpunit -c phpunit.xml.dist", "wp-env": "wp-env", - "wp-env:cli": "wp-env run cli --env-cwd=wp-content/plugins/$(basename \"$(pwd)\")/ -- composer" + "wp-env:cli": "wp-env run cli --env-cwd=wp-content/plugins/$(basename \"$(pwd)\")/", + "wp-env:test": "wp-env --config=.wp-env.test.json" }, "dependencies": { "@wordpress/block-editor": "^15.14.0", @@ -64,11 +65,11 @@ "@types/wordpress__block-editor": "^15.0.5", "@types/wordpress__blocks": "^15.10.2", "@types/wordpress__i18n": "^3.11.0", - "@typescript-eslint/eslint-plugin": "^8.56.1", - "@typescript-eslint/parser": "^8.56.1", + "@typescript-eslint/eslint-plugin": "^8.57.0", + "@typescript-eslint/parser": "^8.57.0", "@wordpress/babel-preset-default": "^8.41.0", "@wordpress/e2e-test-utils-playwright": "^1.41.0", - "@wordpress/env": "^10.39.0", + "@wordpress/env": "^11.1.0", "@wordpress/eslint-plugin": "^24.3.0", "@wordpress/prettier-config": "^4.41.0", "@wordpress/scripts": "^31.6.0", @@ -76,8 +77,8 @@ "cross-env": "^10.1.0", "eslint-plugin-jest": "^29.15.0", "jest-watch-typeahead": "^2.2.2", - "lefthook": "^2.1.2", - "lint-staged": "^16.3.2", + "lefthook": "^2.1.3", + "lint-staged": "^16.3.3", "npm-run-all": "^4.1.5", "prettier": "npm:wp-prettier@^3", "rimraf": "^6.1.3", @@ -85,6 +86,7 @@ "webpack-remove-empty-scripts": "^1.1.1" }, "overrides": { + "@wordpress/env": "^11.1.0", "fast-xml-parser": ">5.3.0", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/phpstan.neon.dist b/phpstan.neon.dist index bc83666..3e5d6e0 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -20,14 +20,14 @@ parameters: min: 80200 max: 80500 bootstrapFiles: - - plugin-skeleton-d.php + - plugin-skeleton-d.php paths: - - plugin-skeleton-d.php - - uninstall.php - - framework/ - - inc/ - - src/blocks/ - - templates/ + - plugin-skeleton-d.php + - uninstall.php + - framework/ + - inc/ + - src/blocks/ + - templates/ excludePaths: analyse: - tests/ diff --git a/playwright.config.ts b/playwright.config.ts index 5104016..6023d14 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -4,11 +4,11 @@ import { defineConfig, type PlaywrightTestConfig } from '@playwright/test'; import path from 'path'; -const artifactsPath = path.join( process.cwd(), 'tests/_output' ); +const artifactsPath = path.join( process.cwd(), 'tests/_output/e2e' ); -// Ensure WP artifacts (and storage-state) are written into tests/_output +// Ensure WP artifacts (and storage-state) are written into tests/_output/e2e process.env[ 'WP_ARTIFACTS_PATH' ] = artifactsPath; -// Ensure STORAGE_STATE_PATH points into tests/_output as well +// Ensure STORAGE_STATE_PATH points into tests/_output/e2e as well process.env[ 'STORAGE_STATE_PATH' ] = path.join( artifactsPath, 'storage-states', @@ -21,7 +21,7 @@ const baseConfig = const config = defineConfig( { ...baseConfig, testDir: './tests/e2e', - outputDir: './tests/_output', + outputDir: './tests/_output/e2e', } ); export default config;