diff --git a/.changeset/config.json b/.changeset/config.json deleted file mode 100644 index 30239469..00000000 --- a/.changeset/config.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "https://unpkg.com/@changesets/config@2.4.0/schema.json", - "changelog": [ - "@changesets/changelog-github", - { "repo": "wpengine/hwptoolkit" } - ], - "commit": false, - "linked": [], - "access": "restricted", - "baseBranch": "main", - "updateInternalDependencies": "patch", - "ignore": [], - "packages": [ - "plugins/*" - ], - "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": { - "onlyUpdatePeerDependentsWhenOutOfRange": true - } -} \ No newline at end of file diff --git a/.github/scripts/sync_plugin_release_files.sh b/.github/scripts/sync_plugin_release_files.sh new file mode 100755 index 00000000..1862f2d1 --- /dev/null +++ b/.github/scripts/sync_plugin_release_files.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +# Syncs a plugin's version from its package.json into the files release-please doesn't know about: +# the plugin header, readme.txt Stable tag, composer.json, and plugins/composer-packages.json. +# Usage: .github/scripts/sync_plugin_release_files.sh + +set -e + +SLUG="$1" +PLUGIN_DIR="plugins/$SLUG" + +if [ -z "$SLUG" ] || [ ! -f "$PLUGIN_DIR/package.json" ] || [ ! -f "$PLUGIN_DIR/composer.json" ]; then + echo "Usage: $0 (plugin needs both package.json and composer.json)" + exit 1 +fi + +# Update the plugin header, readme.txt, and composer.json via the plugin's own version script +(cd "$PLUGIN_DIR" && npm run version) + +NEW_VERSION=$(jq -r '.version' "$PLUGIN_DIR/package.json") + +# Build the download URL +# Format is [github-repository]/releases/download/[encoded-package-name]-[version]/[plugin-slug].zip +PKG_NAME=$(jq -r '.name' "$PLUGIN_DIR/package.json") +ENCODED_PKG_NAME=$(python3 -c "import urllib.parse,sys; print(urllib.parse.quote(sys.argv[1], safe=''))" "$PKG_NAME") +RELEASE_URL="https://github.com/wpengine/hwptoolkit/releases/download/${ENCODED_PKG_NAME}-${NEW_VERSION}/${SLUG}.zip" + +COMPOSER_NAME=$(jq -r '.name' "$PLUGIN_DIR/composer.json") +DESCRIPTION=$(jq -r '.description // empty' "$PLUGIN_DIR/composer.json") + +if [ -z "$NEW_VERSION" ] || [ -z "$COMPOSER_NAME" ] || [ -z "$DESCRIPTION" ]; then + echo "Error: Missing required values for update_composer_package.sh" + echo "NEW_VERSION: $NEW_VERSION" + echo "COMPOSER_NAME: $COMPOSER_NAME" + echo "DESCRIPTION: $DESCRIPTION" + exit 1 +fi + +.github/scripts/update_composer_package.sh "$NEW_VERSION" "$RELEASE_URL" "$COMPOSER_NAME" "$DESCRIPTION" diff --git a/.github/workflows/create-release-branch.yml b/.github/workflows/create-release-branch.yml deleted file mode 100644 index e6eb68a9..00000000 --- a/.github/workflows/create-release-branch.yml +++ /dev/null @@ -1,159 +0,0 @@ - -# This creates a release branch for a plugin when changes are pushed to the main branch. -# We cannot commit to a protected branch directly, so we create a new branch to make these changes. -name: Create Release Branch - -on: - push: - branches: - - main - paths: - - "plugins/*/**" - -permissions: - contents: write # Allow actions to read and write repository contents - pull-requests: write # Allow actions to create and manage pull requests - actions: read # Allow actions to read repository metadata but not write to it - -jobs: - create-release-branch: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - token: ${{ secrets.GITHUB_TOKEN }} - - - name: Set up PHP - uses: shivammathur/setup-php@v2 - with: - php-version: '8.2' # Note all plugins are compatible with PHP 8.2 - extensions: mbstring, json, zip - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 24.x - - - name: Setup pnpm - uses: pnpm/action-setup@v3 - with: - version: 10 # Min version required by the repo - - - name: Get changed plugin directory - id: plugin - run: | - bash .github/scripts/get_plugin_slug.sh release - - - - name: Validate plugin detection - continue-on-error: false - run: | - if [ ! -d "plugins/${{ steps.plugin.outputs.slug }}" ]; then - echo "Plugin directory does not exist" - exit 1 - fi - - - name: Install dependencies - run: pnpm install - - - name: Create release branch and apply changesets - run: | - # Create a unique branch name with timestamp - BRANCH_NAME="release/${{ steps.plugin.outputs.slug }}-$(date +%Y%m%d-%H%M%S)" - echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV - - # Create and switch to release branch - git checkout -b "$BRANCH_NAME" - - # Apply version bumps from changesets - pnpm changeset version - - # Only run if both package.json and composer.json exist for the plugin - if [ -f "plugins/${{ steps.plugin.outputs.slug }}/package.json" ] && [ -f "plugins/${{ steps.plugin.outputs.slug }}/composer.json" ]; then - echo "Both package.json and composer.json found for ${{ steps.plugin.outputs.slug }}" - - # Run version script for the plugin if it exists - if cat "plugins/${{ steps.plugin.outputs.slug }}/package.json" | grep -q '"version".*:'; then - echo "Running version script for ${{ steps.plugin.outputs.slug }}" - cd "plugins/${{ steps.plugin.outputs.slug }}" - npm run version - cd ../.. - else - echo "No version script found for ${{ steps.plugin.outputs.slug }}" - fi - - # Get new version from plugin's package.json - NEW_VERSION=$(jq -r '.version' "plugins/${{ steps.plugin.outputs.slug }}/package.json") - - # Build the download URL - # e.g. https://github.com/wpengine/hwptoolkit/releases/download/%40wpengine%2Fhwp-previews-wordpress-plugin-0.0.5/hwp-previews.zip - # Get the "name" field from plugin's package.json and URL encode it - PKG_NAME=$(jq -r '.name' "plugins/${{ steps.plugin.outputs.slug }}/package.json") - ENCODED_PKG_NAME=$(python3 -c "import urllib.parse,sys; print(urllib.parse.quote(sys.argv[1], safe=''))" "$PKG_NAME") - - # Format is [github-repository]/releases/download/[encoded-package-name]-[version]/[plugin-slug].zip - RELEASE_URL="https://github.com/wpengine/hwptoolkit/releases/download/${ENCODED_PKG_NAME}-${NEW_VERSION}/${{ steps.plugin.outputs.slug }}.zip" - - # Get plugin description from plugin's composer.json - DESCRIPTION=$(jq -r '.description // empty' "plugins/${{ steps.plugin.outputs.slug }}/composer.json") - - # Run the composer package update script - # Get the "name" field from plugin's composer.json - COMPOSER_NAME=$(jq -r '.name' "plugins/${{ steps.plugin.outputs.slug }}/composer.json") - if [ -n "$NEW_VERSION" ] && [ -n "$RELEASE_URL" ] && [ -n "$COMPOSER_NAME" ] && [ -n "$DESCRIPTION" ]; then - .github/scripts/update_composer_package.sh "$NEW_VERSION" "$RELEASE_URL" "$COMPOSER_NAME" "$DESCRIPTION" - else - echo "Error: Missing required values for update_composer_package.sh" - echo "NEW_VERSION: $NEW_VERSION" - echo "RELEASE_URL: $RELEASE_URL" - echo "COMPOSER_NAME: $COMPOSER_NAME" - echo "DESCRIPTION: $DESCRIPTION" - exit 1 - fi - - else - echo "package.json and/or composer.json not found for plugin ${{ steps.plugin.outputs.slug }}. Skipping version and composer update steps." - fi - - # Configure git - git config user.name "github-actions" - git config user.email "github-actions@github.com" - - # Commit changes - git add . - if git diff --staged --quiet; then - echo "No changes to commit" - else - git commit -m "chore: apply version bump from changesets for ${{ steps.plugin.outputs.slug }}" - git push origin "$BRANCH_NAME" - - # Create PR and capture URL for auto-merge steps - RELEASE_PR_URL=$(gh pr create \ - --title "Release: ${{ steps.plugin.outputs.slug }} version bump" \ - --body "Automated release PR for ${{ steps.plugin.outputs.slug }} plugin. - - This PR applies version bumps from changesets. Once merged, it will trigger the pre-release creation workflow. - - Plugin: ${{ steps.plugin.outputs.slug }}" \ - --base main \ - --head "$BRANCH_NAME") - echo "RELEASE_PR_URL=$RELEASE_PR_URL" >> $GITHUB_ENV - fi - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Approve release PR - if: env.RELEASE_PR_URL != '' - env: - GH_TOKEN: ${{ secrets.RELEASE_PAT }} - run: gh pr review --approve "$RELEASE_PR_URL" - - - name: Enable auto-merge on release PR - if: env.RELEASE_PR_URL != '' - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: gh pr merge --auto --squash "$RELEASE_PR_URL" diff --git a/.github/workflows/lint-pr.yml b/.github/workflows/lint-pr.yml index 4a3a00d5..3a8cc8fd 100644 --- a/.github/workflows/lint-pr.yml +++ b/.github/workflows/lint-pr.yml @@ -21,6 +21,7 @@ jobs: # build: Changes that affect the build system or external dependencies # chore: Routine tasks, maintenance, or refactors that don't change functionality # ci: Changes to CI configuration files and scripts + # deps: Dependency updates (listed under Dependencies in release notes) # docs: Documentation only changes # feat: A new feature for the user or a significant enhancement # fix: A bug fix @@ -34,6 +35,7 @@ jobs: build chore ci + deps docs feat fix diff --git a/.github/workflows/pre-release-tag.yml b/.github/workflows/pre-release-tag.yml deleted file mode 100644 index 3e73bff7..00000000 --- a/.github/workflows/pre-release-tag.yml +++ /dev/null @@ -1,164 +0,0 @@ -# Part of create-release-branch.yml -# Changesets are applied to the release branch instead of main as this is a production branch -# Once merged, the PR should create the pre-release tag - -name: Create Pre-release Tag - -on: - pull_request: - types: [closed] - branches: - - main - paths: - - "plugins/*/**" - -permissions: - contents: write - actions: read - -jobs: - tag-pre-release: - # Only run if PR was merged and branch name starts with 'release/' - if: github.event.pull_request.merged == true && startsWith(github.head_ref, 'release/') - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up PHP - uses: shivammathur/setup-php@v2 - with: - php-version: '8.2' # Note: All plugins are compatible with PHP 8.2 - extensions: mbstring, json, zip - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 24.x - - - name: Setup pnpm - uses: pnpm/action-setup@v3 - with: - version: 10 # Min version required by the repo - - - name: Get changed plugin directory - id: plugin - run: | - # Get files changed in the merged PR, only match plugins//... - plugin=$(git diff --name-only HEAD~1 HEAD | grep '^plugins/[^/]\+/' | grep -v '^plugins/composer-packages.json' | head -1 | cut -d/ -f2) - if [ -z "$plugin" ]; then - # Fallback: extract from branch name if no plugin changes detected - branch_name="${{ github.head_ref }}" - plugin=$(echo "$branch_name" | sed 's/release\/\([^-]*\)-.*/\1/') - fi - echo "plugin_slug=$plugin" >> $GITHUB_OUTPUT - - - name: Validate plugin detection - run: | - if [ ! -d "plugins/${{ steps.plugin.outputs.plugin_slug }}" ]; then - echo "Plugin directory does not exist: plugins/${{ steps.plugin.outputs.plugin_slug }}" - exit 1 - fi - - - name: Read package metadata - id: metadata - run: | - PLUGIN_DIR="plugins/${{ steps.plugin.outputs.plugin_slug }}" - - if [ ! -f "$PLUGIN_DIR/package.json" ]; then - echo "package.json not found in $PLUGIN_DIR" - exit 1 - fi - - package_name=$(jq -r '.name // empty' "$PLUGIN_DIR/package.json") - package_version=$(jq -r '.version // empty' "$PLUGIN_DIR/package.json") - - if [ -z "$package_name" ] || [ "$package_name" = "null" ] || [ "$package_name" = "empty" ]; then - echo "Missing or invalid name in $PLUGIN_DIR/package.json" - exit 1 - fi - - if [ -z "$package_version" ] || [ "$package_version" = "null" ] || [ "$package_version" = "empty" ]; then - echo "Missing or invalid version in $PLUGIN_DIR/package.json" - exit 1 - fi - - echo "package_name=$package_name" >> $GITHUB_OUTPUT - echo "package_version=$package_version" >> $GITHUB_OUTPUT - echo "PLUGIN_DIR=$PLUGIN_DIR" >> $GITHUB_OUTPUT - - - name: Determine release type - id: release_type - run: | - VERSION="${{ steps.metadata.outputs.package_version }}" - IS_PRERELEASE=true - RELEASE_TITLE_PREFIX="Pre-release" - - if [[ ! "$VERSION" =~ ^0\. ]]; then - IS_PRERELEASE=false - RELEASE_TITLE_PREFIX="Release" - fi - - echo "is_prerelease=$IS_PRERELEASE" >> $GITHUB_OUTPUT - echo "release_title_prefix=$RELEASE_TITLE_PREFIX" >> $GITHUB_OUTPUT - - - name: Create Git tag - continue-on-error: false - run: | - TAG_NAME="${{ steps.metadata.outputs.package_name }}-${{ steps.metadata.outputs.package_version }}" - - # Check if tag already exists - if git rev-parse "$TAG_NAME" >/dev/null 2>&1; then - echo "Tag $TAG_NAME already exists. Skipping tag creation." - echo "tag_exists=true" >> $GITHUB_ENV - exit 1 - fi - - git config user.name "github-actions" - git config user.email "github-actions@github.com" - git tag "$TAG_NAME" - git push origin "$TAG_NAME" - echo "tag_exists=false" >> $GITHUB_ENV - echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Install dependencies - run: pnpm install - - - name: Run composer install - working-directory: ${{ steps.metadata.outputs.PLUGIN_DIR }} - run: composer install --no-dev --optimize-autoloader - - - name: Validate composer setup - working-directory: ${{ steps.metadata.outputs.PLUGIN_DIR }} - run: | - composer validate --no-check-publish --no-check-lock - - - name: Create plugin archive - working-directory: ${{ steps.metadata.outputs.PLUGIN_DIR }} - run: | - rm -f plugin-build/${{ steps.plugin.outputs.plugin_slug }}.-*.zip - composer archive -vvv --format=zip --file="plugin-build/${{ steps.plugin.outputs.plugin_slug }}" --dir="." - - # Verify archive was created - if [ ! -f "plugin-build/${{ steps.plugin.outputs.plugin_slug }}.zip" ]; then - echo "Failed to create plugin archive" - exit 1 - fi - - echo "Archive created successfully: $(ls -lh plugin-build/${{ steps.plugin.outputs.plugin_slug }}.zip)" - - - name: Upload archive to GitHub Release - uses: softprops/action-gh-release@v2 - with: - tag_name: ${{ env.TAG_NAME }} - name: "${{ steps.release_type.outputs.release_title_prefix }} ${{ steps.metadata.outputs.package_version }} for ${{ steps.metadata.outputs.package_name }}" - prerelease: ${{ steps.release_type.outputs.is_prerelease }} - files: | - ${{ steps.metadata.outputs.PLUGIN_DIR }}/plugin-build/${{ steps.plugin.outputs.plugin_slug }}.zip - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml new file mode 100644 index 00000000..8d8dac6b --- /dev/null +++ b/.github/workflows/release-please.yml @@ -0,0 +1,83 @@ +name: Release Please + +on: + push: + branches: + - main + +# Runs write to the same release PR branches, so queue them instead of racing +concurrency: + group: release-please + cancel-in-progress: false + +permissions: + contents: write # For creating releases/tags and pushing to release PR branches + pull-requests: write # For creating release PRs + +jobs: + release-please: + name: Release Please + runs-on: ubuntu-latest + outputs: + prs: ${{ steps.release.outputs.prs }} + paths-released: ${{ steps.release.outputs.paths_released }} + steps: + - uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7 # v5.0.0 + id: release + with: + target-branch: main + + # release-please bumps each plugin's package.json and CHANGELOG.md but knows nothing + # about the plugin header, readme.txt Stable tag, composer.json, or composer-packages.json. + # Sync those onto each release PR branch so they ship together. + sync-release-files: + name: Sync release files (${{ matrix.pr.headBranchName }}) + needs: release-please + if: needs.release-please.outputs.prs && needs.release-please.outputs.prs != '[]' + runs-on: ubuntu-latest + strategy: + matrix: + pr: ${{ fromJSON(needs.release-please.outputs.prs) }} + steps: + - name: Checkout release PR branch + uses: actions/checkout@v4 + with: + ref: ${{ matrix.pr.headBranchName }} + fetch-depth: 0 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 24.x + + - name: Sync version into plugin files + run: | + # Only plugins whose version this release PR bumps (three-dot ignores main moving ahead) + for file in $(git diff --name-only origin/main...HEAD -- 'plugins/*/package.json'); do + slug=$(echo "$file" | cut -d/ -f2) + echo "Syncing release files for $slug" + bash .github/scripts/sync_plugin_release_files.sh "$slug" + done + + - name: Commit changes + run: | + if git diff --quiet; then + echo "Release files already in sync" + exit 0 + fi + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git commit -am "chore: sync release files" + git push + + # Releases created with GITHUB_TOKEN don't trigger other workflows, so call the build directly. + release-plugin: + name: Release plugin (${{ matrix.path }}) + needs: release-please + if: needs.release-please.outputs.paths-released && needs.release-please.outputs.paths-released != '[]' + strategy: + matrix: + path: ${{ fromJSON(needs.release-please.outputs.paths-released) }} + uses: ./.github/workflows/release-plugin.yml + with: + path: ${{ matrix.path }} diff --git a/.github/workflows/release-plugin.yml b/.github/workflows/release-plugin.yml new file mode 100644 index 00000000..73d4a055 --- /dev/null +++ b/.github/workflows/release-plugin.yml @@ -0,0 +1,109 @@ +# Builds a plugin zip and attaches it to the GitHub Release that release-please created. +# Called by release-please.yml; can also be run by hand to rebuild a release's zip. + +name: Release Plugin + +on: + workflow_call: + inputs: + path: + description: 'Plugin path (e.g. plugins/hwp-previews)' + required: true + type: string + workflow_dispatch: + inputs: + path: + description: 'Plugin path (e.g. plugins/hwp-previews)' + required: true + type: string + tag: + description: 'Release tag to rebuild (e.g. @wpengine/hwp-previews-wordpress-plugin-1.0.2)' + required: true + type: string + +permissions: + contents: write + +jobs: + build: + name: Build and upload plugin archive + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + ref: ${{ inputs.tag || github.sha }} + + - name: Set up PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.2' # Note: All plugins are compatible with PHP 8.2 + extensions: mbstring, json, zip + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 24.x + + - name: Setup pnpm + uses: pnpm/action-setup@v3 + with: + version: 10 # Min version required by the repo + + - name: Read package metadata + id: metadata + env: + PLUGIN_DIR: ${{ inputs.path }} + run: | + if [ ! -f "$PLUGIN_DIR/package.json" ]; then + echo "package.json not found in $PLUGIN_DIR" + exit 1 + fi + + package_name=$(jq -r '.name' "$PLUGIN_DIR/package.json") + package_version=$(jq -r '.version' "$PLUGIN_DIR/package.json") + + # Matches the tag format in release-please-config.json + echo "tag=${package_name}-${package_version}" >> "$GITHUB_OUTPUT" + echo "version=$package_version" >> "$GITHUB_OUTPUT" + echo "slug=$(basename "$PLUGIN_DIR")" >> "$GITHUB_OUTPUT" + + - name: Install dependencies + run: pnpm install + + - name: Run composer install + working-directory: ${{ inputs.path }} + run: composer install --no-dev --optimize-autoloader + + - name: Validate composer setup + working-directory: ${{ inputs.path }} + run: composer validate --no-check-publish --no-check-lock + + - name: Create plugin archive + working-directory: ${{ inputs.path }} + env: + SLUG: ${{ steps.metadata.outputs.slug }} + run: | + rm -f "plugin-build/$SLUG.zip" + composer archive -vvv --format=zip --file="plugin-build/$SLUG" --dir="." + + if [ ! -f "plugin-build/$SLUG.zip" ]; then + echo "Failed to create plugin archive" + exit 1 + fi + + echo "Archive created successfully: $(ls -lh "plugin-build/$SLUG.zip")" + + - name: Upload archive to GitHub Release + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + TAG: ${{ steps.metadata.outputs.tag }} + VERSION: ${{ steps.metadata.outputs.version }} + ARCHIVE: ${{ inputs.path }}/plugin-build/${{ steps.metadata.outputs.slug }}.zip + run: | + gh release upload "$TAG" "$ARCHIVE" --clobber + + # 0.x versions are pre-releases + if [[ "$VERSION" =~ ^0\. ]]; then + gh release edit "$TAG" --prerelease + fi diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 00000000..9347d42c --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1,6 @@ +{ + "plugins/hwp-previews": "1.0.2", + "plugins/wpgraphql-debug-extensions": "0.0.4", + "plugins/wpgraphql-logging": "1.0.1", + "plugins/wpgraphql-webhooks": "0.0.7" +} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 94695817..f03923cb 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -98,6 +98,7 @@ We're using [Conventional Commits](https://www.conventionalcommits.org/) to orga # build: Changes that affect the build system or external dependencies # chore: Routine tasks, maintenance, or refactors that don't change functionality # ci: Changes to CI configuration files and scripts +# deps: Dependency updates # docs: Documentation only changes # feat: A new feature for the user or a significant enhancement # fix: A bug fix @@ -133,6 +134,17 @@ We use the [feature branch](https://www.atlassian.com/git/tutorials/comparing-wo We will try to review your PR as soon as possible. Once approved by two maintainers, you can merge your PR into `main`. +#### Releases + +Plugins are released with [release-please](https://github.com/googleapis/release-please). Releases are built from squash-merged PR titles, so the title decides the version bump: + +- `feat:` releases a minor version +- `fix:`, `perf:`, and `deps:` release a patch version +- `!` after the type (e.g. `feat!:`) or a `BREAKING CHANGE:` footer releases a major version +- Other types don't trigger a release + +After a merge to `main`, release-please opens or updates one release PR per plugin with the version bump and changelog. Merging that PR tags the release and attaches the plugin zip to the GitHub Release. Changes under a plugin's `examples/` directory don't count toward its release. + ### Discussions Use [GitHub Discussions](https://github.com/wpengine/hwptoolkit/discussions) if you want to submit PR or discuss bigger topics. There are many different categories in the Discussions section for different topics. Choose one, create a new discussion or join an existing one to share your thoughts. You can explore our ever-evolving RFCs, which serve as a beacon guiding the development of our toolkit. diff --git a/package.json b/package.json index 4887d505..b80409a4 100644 --- a/package.json +++ b/package.json @@ -10,8 +10,6 @@ "clean": "bash ./scripts/clean.sh", "dev": "bash ./scripts/dev.sh", "stop": "pnpm --filter '*' stop", - "release": "npm run build && changeset publish", - "changeset": "changeset", "reformat:md": "remark --rc-path .remarkrc.json --output --" }, "engines": { @@ -23,8 +21,6 @@ "license": "ISC", "description": "", "devDependencies": { - "@changesets/changelog-github": "^0.7.0", - "@changesets/cli": "^2.31.1", "@playwright/test": "^1.64.1", "@wordpress/e2e-test-utils-playwright": "^1.54.0", "@wordpress/env": "^12.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 70340665..5d9ef922 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -59,12 +59,6 @@ importers: specifier: ^7.0.1 version: 7.0.1 devDependencies: - '@changesets/changelog-github': - specifier: ^0.7.0 - version: 0.7.0(encoding@0.1.13) - '@changesets/cli': - specifier: ^2.31.1 - version: 2.31.1(@types/node@26.4.0) '@playwright/test': specifier: ^1.64.1 version: 1.64.1 @@ -805,10 +799,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.29.10': - resolution: {integrity: sha512-NpugTzbKgGrNe45Ui32cN8vCFFMxVtP/9rtfwv0nP5FRDAjvYBxJcLVpYA9mr1jxP6cnIT7x9LUzuDTbWYYNRA==} - engines: {node: '>=6.9.0'} - '@babel/template@7.29.7': resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} engines: {node: '>=6.9.0'} @@ -830,67 +820,6 @@ packages: '@cacheable/utils@2.5.0': resolution: {integrity: sha512-buipgOVDkkPXNR5+xBpDw7Zk2n1EvU7qBJCNUcL7rhQ//kfpOXPAvQ511Os0vpLYJ1pZnvudNytkQt2hst3wqA==} - '@changesets/apply-release-plan@7.1.1': - resolution: {integrity: sha512-9qPCm/rLx/xoOFXIHGB229+4GOL76S4MC+7tyOuTsR6+1jYlfFDQORdvwR5hDA6y4FL2BPt3qpbcQIS+dW85LA==} - - '@changesets/assemble-release-plan@6.0.10': - resolution: {integrity: sha512-rSDcqdJ9KbVyjpBIuCidhvZNIiVt1XaIYp73ycVQRIA5n/j6wQaEk0ChRLMUQ1vkxZe51PTQ9OIhbg6HQMW45A==} - - '@changesets/changelog-git@0.2.1': - resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==} - - '@changesets/changelog-github@0.7.0': - resolution: {integrity: sha512-rBsbRvc4TVn+FvFnOVM3LxlFJfTXXCp8gfVJ+0BubxWNSVnLuAzowi5j+IEraLLP52w8AAs9QfKbPS3MMiXQJA==} - - '@changesets/cli@2.31.1': - resolution: {integrity: sha512-uO05WTcRBwuVOJVSW8Cmpqw6q0WDL53ajGCMyszutvOe5toOnunbpM4jZzf+qxBOz7i0AzopZ8diBuewjmF40w==} - hasBin: true - - '@changesets/config@3.1.4': - resolution: {integrity: sha512-pf0bvD/v6WI2cRlZ6hzpjtZdSlXDXMAJ+Iz7xfFzV4ZxJ8OGGAON+1qYc99ZPrijnt4xp3VGG7eNvAOGS24V1Q==} - - '@changesets/errors@0.2.0': - resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} - - '@changesets/get-dependents-graph@2.1.4': - resolution: {integrity: sha512-ZsS00x6WvmHq3sQv8oCMwL0f/z3wbXCVuSVTJwCnnmbC/iBdNJGFx1EcbMG4PC6sXRyH69liM4A2WKXzn/kRPg==} - - '@changesets/get-github-info@0.8.0': - resolution: {integrity: sha512-cRnC+xdF0JIik7coko3iUP9qbnfi1iJQ3sAa6dE+Tx3+ET8bjFEm63PA4WEohgjYcmsOikPHWzPsMWWiZmntOQ==} - - '@changesets/get-release-plan@4.0.16': - resolution: {integrity: sha512-2K5Om6CrMPm45rtvckfzWo7e9jOVCKLCnXia5eUPaURH7/LWzri7pK1TycdzAuAtehLkW7VPbWLCSExTHmiI6g==} - - '@changesets/get-version-range-type@0.4.0': - resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} - - '@changesets/git@3.0.4': - resolution: {integrity: sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw==} - - '@changesets/logger@0.1.1': - resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} - - '@changesets/parse@0.4.3': - resolution: {integrity: sha512-ZDmNc53+dXdWEv7fqIUSgRQOLYoUom5Z40gmLgmATmYR9NbL6FJJHwakcCpzaeCy+1D0m0n7mT4jj2B/MQPl7A==} - - '@changesets/pre@2.0.2': - resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==} - - '@changesets/read@0.6.7': - resolution: {integrity: sha512-D1G4AUYGrBEk8vj8MGwf75k9GpN6XL3wg8i42P2jZZwFLXnlr2Pn7r9yuQNbaMCarP7ZQWNJbV6XLeysAIMhTA==} - - '@changesets/should-skip-package@0.1.2': - resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==} - - '@changesets/types@4.1.0': - resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} - - '@changesets/types@6.1.0': - resolution: {integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==} - - '@changesets/write@0.4.0': - resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==} - '@csstools/css-parser-algorithms@3.0.5': resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} engines: {node: '>=18'} @@ -1381,12 +1310,6 @@ packages: '@leichtgewicht/ip-codec@2.0.5': resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} - '@manypkg/find-root@1.1.0': - resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} - - '@manypkg/get-packages@1.1.3': - resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} - '@napi-rs/wasm-runtime@1.1.6': resolution: {integrity: sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==} peerDependencies: @@ -2274,9 +2197,6 @@ packages: '@types/mysql@2.15.26': resolution: {integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==} - '@types/node@12.20.55': - resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@22.20.1': resolution: {integrity: sha512-EANqOCF9QFyra+4pfxUcX9STKJpCLjMbObVzljIJomAWSnuSIEAvyzEU53GaajbXJEgdh0iEcPL+DGvpUd4k1Q==} @@ -3255,10 +3175,6 @@ packages: before-after-hook@2.2.3: resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} - better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} - big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} @@ -3792,9 +3708,6 @@ packages: resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} - dataloader@1.4.0: - resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} - debounce@1.2.1: resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} @@ -3918,10 +3831,6 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - detect-libc@2.1.2: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} @@ -4001,10 +3910,6 @@ packages: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} - dotenv@8.6.0: - resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} - engines: {node: '>=10'} - dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -4372,9 +4277,6 @@ packages: extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - extendable-error@0.1.7: - resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} - extract-zip@2.0.1: resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} engines: {node: '>= 10.17.0'} @@ -4569,14 +4471,6 @@ packages: resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} engines: {node: '>=14.14'} - fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} - - fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} - fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -4862,10 +4756,6 @@ packages: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} - human-id@4.2.0: - resolution: {integrity: sha512-K3GbkIWqyvvlpfhBPlbEvD97TtqBpAYA4kt+cn2lD2x2HuohzZCibcA2nOlnJT6exqvJLggoB5nv2dNf192nEA==} - hasBin: true - human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -5175,10 +5065,6 @@ packages: resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} engines: {node: '>= 0.4'} - is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} - is-symbol@1.1.1: resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} engines: {node: '>= 0.4'} @@ -5210,10 +5096,6 @@ packages: resolution: {integrity: sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==} engines: {node: '>=0.10.0'} - is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} @@ -5495,9 +5377,6 @@ packages: jsonc-parser@3.3.1: resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} - jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - jsonfile@6.2.1: resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==} @@ -5654,9 +5533,6 @@ packages: lodash.once@4.1.1: resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} - lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - lodash.truncate@4.4.2: resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} @@ -6087,10 +5963,6 @@ packages: mousetrap@1.6.5: resolution: {integrity: sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==} - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} @@ -6153,15 +6025,6 @@ packages: resolution: {integrity: sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag==} engines: {node: '>= 0.4'} - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} @@ -6316,9 +6179,6 @@ packages: resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} engines: {node: '>=0.10.0'} - outdent@0.5.0: - resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} - own-keys@1.0.1: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} @@ -6327,10 +6187,6 @@ packages: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} engines: {node: '>=8'} - p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} - p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -6355,10 +6211,6 @@ packages: resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - p-retry@6.2.1: resolution: {integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==} engines: {node: '>=16.17'} @@ -6378,9 +6230,6 @@ packages: package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - package-manager-detector@0.2.11: - resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} - pako@1.0.10: resolution: {integrity: sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==} @@ -6787,11 +6636,6 @@ packages: resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==} engines: {node: '>=6.0.0'} - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - pretty-format@29.7.0: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -6881,9 +6725,6 @@ packages: resolution: {integrity: sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==} engines: {node: '>=0.6'} - quansync@0.2.11: - resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} - querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} @@ -6944,10 +6785,6 @@ packages: resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} - read-yaml-file@1.1.0: - resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} - engines: {node: '>=6'} - readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -7431,9 +7268,6 @@ packages: resolution: {integrity: sha512-drqHc0mKJmtMsiGMOCwzlc5eZ0RPtRvT7tQAluW2A0qUc0G7TQ8KLcn3E6K5qzkLkH2UkS3nYQiVGULvvsD9dw==} engines: {node: '>=16'} - spawndamnit@3.0.1: - resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} - spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -7676,10 +7510,6 @@ packages: teex@1.0.1: resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} - term-size@2.2.1: - resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} - engines: {node: '>=8'} - terser-webpack-plugin@5.6.1: resolution: {integrity: sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==} engines: {node: '>= 10.13.0'} @@ -7796,9 +7626,6 @@ packages: resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} engines: {node: '>=6'} - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tr46@3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} @@ -7990,10 +7817,6 @@ packages: universal-user-agent@6.0.1: resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} - universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} @@ -8118,9 +7941,6 @@ packages: webdriver-bidi-protocol@0.4.1: resolution: {integrity: sha512-ARrjNjtWRRs2w4Tk7nqrf2gBI0QXWuOmMCx2hU+1jUt6d00MjMxURrhxhGbrsoiZKJrhTSTzbIrc554iKI10qw==} - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} @@ -8208,9 +8028,6 @@ packages: resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} engines: {node: '>=12'} - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - when-exit@2.1.5: resolution: {integrity: sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg==} @@ -9213,8 +9030,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/runtime@7.29.10': {} - '@babel/template@7.29.7': dependencies: '@babel/code-frame': 7.29.7 @@ -9252,164 +9067,6 @@ snapshots: hashery: 1.5.1 keyv: 5.6.0 - '@changesets/apply-release-plan@7.1.1': - dependencies: - '@changesets/config': 3.1.4 - '@changesets/get-version-range-type': 0.4.0 - '@changesets/git': 3.0.4 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - detect-indent: 6.1.0 - fs-extra: 7.0.1 - lodash.startcase: 4.4.0 - outdent: 0.5.0 - prettier: 2.8.8 - resolve-from: 5.0.0 - semver: 7.8.5 - - '@changesets/assemble-release-plan@6.0.10': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.4 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - semver: 7.8.5 - - '@changesets/changelog-git@0.2.1': - dependencies: - '@changesets/types': 6.1.0 - - '@changesets/changelog-github@0.7.0(encoding@0.1.13)': - dependencies: - '@changesets/get-github-info': 0.8.0(encoding@0.1.13) - '@changesets/types': 6.1.0 - dotenv: 8.6.0 - transitivePeerDependencies: - - encoding - - '@changesets/cli@2.31.1(@types/node@26.4.0)': - dependencies: - '@changesets/apply-release-plan': 7.1.1 - '@changesets/assemble-release-plan': 6.0.10 - '@changesets/changelog-git': 0.2.1 - '@changesets/config': 3.1.4 - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.4 - '@changesets/get-release-plan': 4.0.16 - '@changesets/git': 3.0.4 - '@changesets/logger': 0.1.1 - '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.7 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@changesets/write': 0.4.0 - '@inquirer/external-editor': 1.0.3(@types/node@26.4.0) - '@manypkg/get-packages': 1.1.3 - ansi-colors: 4.1.3 - enquirer: 2.4.1 - fs-extra: 7.0.1 - mri: 1.2.0 - package-manager-detector: 0.2.11 - picocolors: 1.1.1 - resolve-from: 5.0.0 - semver: 7.8.5 - spawndamnit: 3.0.1 - term-size: 2.2.1 - transitivePeerDependencies: - - '@types/node' - - '@changesets/config@3.1.4': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.4 - '@changesets/logger': 0.1.1 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 - micromatch: 4.0.8 - - '@changesets/errors@0.2.0': - dependencies: - extendable-error: 0.1.7 - - '@changesets/get-dependents-graph@2.1.4': - dependencies: - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - picocolors: 1.1.1 - semver: 7.8.5 - - '@changesets/get-github-info@0.8.0(encoding@0.1.13)': - dependencies: - dataloader: 1.4.0 - node-fetch: 2.7.0(encoding@0.1.13) - transitivePeerDependencies: - - encoding - - '@changesets/get-release-plan@4.0.16': - dependencies: - '@changesets/assemble-release-plan': 6.0.10 - '@changesets/config': 3.1.4 - '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.7 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - - '@changesets/get-version-range-type@0.4.0': {} - - '@changesets/git@3.0.4': - dependencies: - '@changesets/errors': 0.2.0 - '@manypkg/get-packages': 1.1.3 - is-subdir: 1.2.0 - micromatch: 4.0.8 - spawndamnit: 3.0.1 - - '@changesets/logger@0.1.1': - dependencies: - picocolors: 1.1.1 - - '@changesets/parse@0.4.3': - dependencies: - '@changesets/types': 6.1.0 - js-yaml: 4.3.2 - - '@changesets/pre@2.0.2': - dependencies: - '@changesets/errors': 0.2.0 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 - - '@changesets/read@0.6.7': - dependencies: - '@changesets/git': 3.0.4 - '@changesets/logger': 0.1.1 - '@changesets/parse': 0.4.3 - '@changesets/types': 6.1.0 - fs-extra: 7.0.1 - p-filter: 2.1.0 - picocolors: 1.1.1 - - '@changesets/should-skip-package@0.1.2': - dependencies: - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - - '@changesets/types@4.1.0': {} - - '@changesets/types@6.1.0': {} - - '@changesets/write@0.4.0': - dependencies: - '@changesets/types': 6.1.0 - fs-extra: 7.0.1 - human-id: 4.2.0 - prettier: 2.8.8 - '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': dependencies: '@csstools/css-tokenizer': 3.0.4 @@ -10007,22 +9664,6 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@manypkg/find-root@1.1.0': - dependencies: - '@babel/runtime': 7.29.10 - '@types/node': 12.20.55 - find-up: 4.1.0 - fs-extra: 8.1.0 - - '@manypkg/get-packages@1.1.3': - dependencies: - '@babel/runtime': 7.29.10 - '@changesets/types': 4.1.0 - '@manypkg/find-root': 1.1.0 - fs-extra: 8.1.0 - globby: 11.1.0 - read-yaml-file: 1.1.0 - '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: '@emnapi/core': 1.10.0 @@ -11200,8 +10841,6 @@ snapshots: dependencies: '@types/node': 26.4.0 - '@types/node@12.20.55': {} - '@types/node@22.20.1': dependencies: undici-types: 6.21.0 @@ -12411,10 +12050,6 @@ snapshots: before-after-hook@2.2.3: {} - better-path-resolve@1.0.0: - dependencies: - is-windows: 1.0.2 - big.js@5.2.2: {} binary-extensions@2.3.0: {} @@ -13021,8 +12656,6 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.2 - dataloader@1.4.0: {} - debounce@1.2.1: {} debug@2.6.9: @@ -13109,8 +12742,6 @@ snapshots: destroy@1.2.0: {} - detect-indent@6.1.0: {} - detect-libc@2.1.2: optional: true @@ -13185,8 +12816,6 @@ snapshots: dotenv@16.6.1: {} - dotenv@8.6.0: {} - dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -13708,8 +13337,6 @@ snapshots: extend@3.0.2: {} - extendable-error@0.1.7: {} - extract-zip@2.0.1: dependencies: debug: 4.4.3 @@ -13915,18 +13542,6 @@ snapshots: jsonfile: 6.2.1 universalify: 2.0.1 - fs-extra@7.0.1: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - - fs-extra@8.1.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -14262,8 +13877,6 @@ snapshots: transitivePeerDependencies: - supports-color - human-id@4.2.0: {} - human-signals@2.1.0: {} hyperdyperid@1.2.0: {} @@ -14519,10 +14132,6 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-subdir@1.2.0: - dependencies: - better-path-resolve: 1.0.0 - is-symbol@1.1.1: dependencies: call-bound: 1.0.4 @@ -14550,8 +14159,6 @@ snapshots: is-windows@0.2.0: {} - is-windows@1.0.2: {} - is-wsl@2.2.0: dependencies: is-docker: 2.2.1 @@ -15066,10 +14673,6 @@ snapshots: jsonc-parser@3.3.1: {} - jsonfile@4.0.0: - optionalDependencies: - graceful-fs: 4.2.11 - jsonfile@6.2.1: dependencies: universalify: 2.0.1 @@ -15260,8 +14863,6 @@ snapshots: lodash.once@4.1.1: {} - lodash.startcase@4.4.0: {} - lodash.truncate@4.4.2: {} lodash.uniq@4.5.0: {} @@ -15852,8 +15453,6 @@ snapshots: mousetrap@1.6.5: {} - mri@1.2.0: {} - mrmime@2.0.1: {} ms@2.0.0: {} @@ -15901,12 +15500,6 @@ snapshots: object.entries: 1.1.9 semver: 6.3.1 - node-fetch@2.7.0(encoding@0.1.13): - dependencies: - whatwg-url: 5.0.0 - optionalDependencies: - encoding: 0.1.13 - node-int64@0.4.0: {} node-releases@2.0.59: {} @@ -16115,8 +15708,6 @@ snapshots: os-homedir@1.0.2: {} - outdent@0.5.0: {} - own-keys@1.0.1: dependencies: get-intrinsic: 1.3.0 @@ -16125,10 +15716,6 @@ snapshots: p-cancelable@2.1.1: {} - p-filter@2.1.0: - dependencies: - p-map: 2.1.0 - p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -16153,8 +15740,6 @@ snapshots: dependencies: p-limit: 4.0.0 - p-map@2.1.0: {} - p-retry@6.2.1: dependencies: '@types/retry': 0.12.2 @@ -16183,10 +15768,6 @@ snapshots: package-json-from-dist@1.0.1: {} - package-manager-detector@0.2.11: - dependencies: - quansync: 0.2.11 - pako@1.0.10: {} param-case@3.0.4: @@ -16553,8 +16134,6 @@ snapshots: dependencies: fast-diff: 1.3.0 - prettier@2.8.8: {} - pretty-format@29.7.0: dependencies: '@jest/schemas': 29.6.3 @@ -16670,8 +16249,6 @@ snapshots: es-define-property: 1.0.1 side-channel: 1.1.1 - quansync@0.2.11: {} - querystringify@2.2.0: {} queue-microtask@1.2.3: {} @@ -16729,13 +16306,6 @@ snapshots: parse-json: 5.2.0 type-fest: 0.6.0 - read-yaml-file@1.1.0: - dependencies: - graceful-fs: 4.2.11 - js-yaml: 3.15.2 - pify: 4.0.1 - strip-bom: 3.0.0 - readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 @@ -17424,11 +16994,6 @@ snapshots: signal-exit: 4.1.0 tree-kill: 1.2.2 - spawndamnit@3.0.1: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 @@ -17787,8 +17352,6 @@ snapshots: - bare-abort-controller - react-native-b4a - term-size@2.2.1: {} - terser-webpack-plugin@5.6.1(cssnano@6.1.2(postcss@8.5.23))(postcss@8.5.23)(webpack@5.108.1): dependencies: '@jridgewell/trace-mapping': 0.3.31 @@ -17873,8 +17436,6 @@ snapshots: universalify: 0.2.0 url-parse: 1.5.10 - tr46@0.0.3: {} - tr46@3.0.0: dependencies: punycode: 2.3.1 @@ -18116,8 +17677,6 @@ snapshots: universal-user-agent@6.0.1: {} - universalify@0.1.2: {} - universalify@0.2.0: {} universalify@2.0.1: {} @@ -18277,8 +17836,6 @@ snapshots: webdriver-bidi-protocol@0.4.1: {} - webidl-conversions@3.0.1: {} - webidl-conversions@7.0.0: {} webpack-bundle-analyzer@4.10.2: @@ -18439,11 +17996,6 @@ snapshots: tr46: 3.0.0 webidl-conversions: 7.0.0 - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - when-exit@2.1.5: {} which-boxed-primitive@1.1.1: diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 00000000..144423f6 --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "release-type": "node", + "bootstrap-sha": "21a22f9c07d571e087e55a44b2f8efadbb87e964", + "include-component-in-tag": true, + "include-v-in-tag": false, + "tag-separator": "-", + "separate-pull-requests": true, + "changelog-sections": [ + { "type": "feat", "section": "Features" }, + { "type": "fix", "section": "Bug Fixes" }, + { "type": "perf", "section": "Performance Improvements" }, + { "type": "revert", "section": "Reverts" }, + { "type": "deps", "section": "Dependencies" }, + { "type": "docs", "section": "Documentation", "hidden": true }, + { "type": "chore", "section": "Miscellaneous", "hidden": true }, + { "type": "refactor", "section": "Code Refactoring", "hidden": true }, + { "type": "test", "section": "Tests", "hidden": true }, + { "type": "build", "section": "Build System", "hidden": true }, + { "type": "ci", "section": "Continuous Integration", "hidden": true }, + { "type": "style", "section": "Styles", "hidden": true } + ], + "packages": { + "plugins/hwp-previews": { + "component": "@wpengine/hwp-previews-wordpress-plugin", + "exclude-paths": ["plugins/hwp-previews/examples"] + }, + "plugins/wpgraphql-debug-extensions": { + "component": "@wpengine/wpgraphql-debug-extensions-wordpress-plugin", + "exclude-paths": ["plugins/wpgraphql-debug-extensions/examples"] + }, + "plugins/wpgraphql-logging": { + "component": "@wpengine/wpgraphql-logging-wordpress-plugin", + "exclude-paths": ["plugins/wpgraphql-logging/examples"] + }, + "plugins/wpgraphql-webhooks": { + "component": "@wpengine/wpgraphql-webhooks-wordpress-plugin", + "exclude-paths": ["plugins/wpgraphql-webhooks/examples"] + } + } +}