diff --git a/.changeset/block-editor-utils-wordpress-deps.md b/.changeset/block-editor-utils-wordpress-deps.md deleted file mode 100644 index 6b0d34de2..000000000 --- a/.changeset/block-editor-utils-wordpress-deps.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@faustwp/block-editor-utils': patch ---- - -Updated `@wordpress/*` dependencies to their latest majors. `@wordpress/blocks` 16 replaces `showdown`, which has unpatched cross-site scripting and ReDoS advisories, with `marked`. diff --git a/.changeset/config.json b/.changeset/config.json deleted file mode 100644 index 4e897c6f7..000000000 --- a/.changeset/config.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "$schema": "https://unpkg.com/@changesets/config@1.6.1/schema.json", - "changelog": "@changesets/cli/changelog", - "commit": false, - "linked": [ - ["@faustwp/core", "@faustwp/cli"] - ], - "privatePackages": { - "version": true, - "tag": true - }, - "access": "public", - "baseBranch": "canary", - "updateInternalDependencies": "patch", - "ignore": [ - "@faustwp/getting-started-example" - ], - "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": { - "onlyUpdatePeerDependentsWhenOutOfRange": true - } - -} diff --git a/.changeset/restore-next-peer-range.md b/.changeset/restore-next-peer-range.md deleted file mode 100644 index cf775c1a9..000000000 --- a/.changeset/restore-next-peer-range.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@faustwp/core': patch -'@faustwp/blocks': patch ---- - -Restored the `next` peer dependency ranges (`>=12.1.6` for `@faustwp/core`, `^15.5.5 || ^16.0.0` for `@faustwp/blocks`) that an automated dependency bump had narrowed to `^16.3.3`. diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 2442ec1e6..df64936c2 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -7,7 +7,7 @@ # fit. The intent: peerDependency ranges on shipped packages (e.g. the # Next.js peer on @faustwp/core) shouldn't be rewritten automatically as # part of a routine dependency bump; those are deliberate compatibility -# decisions that warrant their own changeset and review. +# decisions that warrant their own pull request and review. version: 2 diff --git a/.github/workflows/nightly-releases.yml b/.github/workflows/nightly-releases.yml deleted file mode 100644 index f54534722..000000000 --- a/.github/workflows/nightly-releases.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: Nightly Releases - -# Cron scheduling -# ┌───────────── minute (0 - 59) -# │ ┌───────────── hour (0 - 23) -# │ │ ┌───────────── day of the month (1 - 31) -# │ │ │ ┌───────────── month (1 - 12 or JAN-DEC) -# │ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT) -# │ │ │ │ │ -# │ │ │ │ │ -# │ │ │ │ │ -# * * * * * - -on: - workflow_dispatch: - inputs: - package: - description: 'Specific package to publish (e.g., @faustwp/cli). Leave empty for all.' - required: false - default: '' - schedule: - # Monday-Friday at 8:35pm UTC / 3:35pm CST - - # Uses the 35th minute because GitHub Workflow load is significantly - # increased at the start of the hour. By invoking the workflow in the - # middle of the hour, there is less chance of delay. - - cron: '35 20 * * 1-5' - -permissions: - contents: read # For checking out the repo - id-token: write # For npm OIDC authentication - -jobs: - release_nightly_canary: - if: github.repository_owner == 'wpengine' - name: Release Nightly Canary - # https://github.com/atlassian/changesets/blob/master/docs/snapshot-releases.md - uses: ./.github/workflows/npm-publish.yml - with: - pre-build-command: npm run version:nightly - publish-command: ${{ inputs.package && format('npm publish -w {0} --tag canary', inputs.package) || 'changeset publish --tag canary' }} diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 3281b18fb..eccebc915 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -3,24 +3,13 @@ name: Publish to npm on: workflow_call: inputs: - pre-build-command: - description: 'Command to run before building (e.g., snapshot versioning)' - type: string - required: false - default: '' - publish-command: - description: 'Command to run for publishing' + paths: + description: 'JSON array of package paths released by release-please (e.g. ["packages/faustwp-core"])' type: string required: true - push-tags: - description: 'Whether to push git tags after publishing' - type: boolean - required: false - default: false # No permissions block — inherits from caller workflow. -# Release caller grants contents: write + id-token: write (enables git push and OIDC). -# Nightly caller grants contents: read + id-token: write (enables checkout and OIDC). +# The release caller grants id-token: write, which enables npm OIDC. jobs: publish: @@ -28,8 +17,6 @@ jobs: steps: - name: Checkout Repo uses: actions/checkout@v7 - with: - fetch-depth: 0 - name: Setup Node.js 22.x uses: actions/setup-node@v7 @@ -54,26 +41,15 @@ jobs: fi echo "OIDC token endpoint available" - - name: Pre-build - if: inputs.pre-build-command != '' - run: ${{ inputs.pre-build-command }} - - name: Build packages run: npm run build - name: Publish to npm - run: ${{ inputs.publish-command }} - - - name: Push tags - if: inputs.push-tags - run: git push origin --tags - - - name: Create GitHub Releases - if: inputs.push-tags env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + PATHS: ${{ inputs.paths }} run: | - git tag --points-at HEAD | while IFS= read -r tag; do - echo "Creating GitHub release for $tag" - gh release create "$tag" --title "$tag" --generate-notes || true + # The plugin is released to wordpress.org by release-plugin.yml, not npm. + for path in $(jq -r '.[] | select(startswith("packages/"))' <<< "$PATHS"); do + echo "Publishing $path" + npm publish --workspace "$path" done diff --git a/.github/workflows/release-packages.yml b/.github/workflows/release-packages.yml index 0ee81ee60..2ad300cc2 100644 --- a/.github/workflows/release-packages.yml +++ b/.github/workflows/release-packages.yml @@ -6,44 +6,75 @@ on: - canary permissions: - contents: write # For creating releases/tags and pushing tags - pull-requests: write # For creating version PRs + contents: write # For creating releases/tags and pushing to the release PR branch + pull-requests: write # For creating the release PR id-token: write # For npm OIDC authentication jobs: - changesets: - name: Manage Changesets + release-please: + name: Release Please runs-on: ubuntu-22.04 outputs: - has-changesets: ${{ steps.changesets.outputs.hasChangesets }} + releases-created: ${{ steps.release.outputs.releases_created }} + paths-released: ${{ steps.release.outputs.paths_released }} + plugin-release-created: ${{ steps.release.outputs['plugins/faustwp--release_created'] }} + plugin-tag: ${{ steps.release.outputs['plugins/faustwp--tag_name'] }} + pr: ${{ steps.release.outputs.pr }} steps: - - name: Checkout Repo + - uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7 # v5.0.0 + id: release + with: + target-branch: canary + + # release-please bumps plugins/faustwp/package.json but knows nothing about + # the WordPress plugin header, the readme.txt Stable tag, or the readme.txt + # changelog. Sync those onto the release PR branch so they ship together. + sync-plugin-files: + name: Sync plugin version files + needs: release-please + if: needs.release-please.outputs.pr + runs-on: ubuntu-22.04 + steps: + - name: Checkout release PR branch uses: actions/checkout@v7 with: - # This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits - fetch-depth: 0 + ref: ${{ fromJSON(needs.release-please.outputs.pr).headBranchName }} - name: Setup Node.js 22.x uses: actions/setup-node@v7 with: node-version: 22.x - - name: Install Dependencies - run: npm ci + - name: Update plugin header, Stable tag, and readme.txt changelog + run: node scripts/versionPlugin.js - - name: Create Release Pull Request - id: changesets - uses: changesets/action@v1 - with: - version: npm run version - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Commit changes + run: | + if git diff --quiet; then + echo "Plugin 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 plugin version files" + git push publish: name: Publish to npm - needs: changesets - if: needs.changesets.outputs.has-changesets == 'false' + needs: release-please + if: needs.release-please.outputs.releases-created == 'true' uses: ./.github/workflows/npm-publish.yml with: - publish-command: npx changeset publish - push-tags: true + paths: ${{ needs.release-please.outputs.paths-released }} + + # Tags created with GITHUB_TOKEN don't trigger other workflows, so the + # plugin tag push alone won't start the wordpress.org deploy. Call it here. + release-plugin: + name: Deploy plugin + needs: release-please + if: needs.release-please.outputs.plugin-release-created == 'true' + uses: ./.github/workflows/release-plugin.yml + with: + tag: ${{ needs.release-please.outputs.plugin-tag }} + dry_run: false + secrets: inherit diff --git a/.github/workflows/release-plugin.yml b/.github/workflows/release-plugin.yml index 460dac90c..cf65f4990 100644 --- a/.github/workflows/release-plugin.yml +++ b/.github/workflows/release-plugin.yml @@ -4,6 +4,22 @@ on: push: tags: - '@faustwp/wordpress-plugin@*' + workflow_call: + inputs: + tag: + description: 'Tag to operate on (e.g. @faustwp/wordpress-plugin@1.8.8)' + required: true + type: string + dry_run: + description: 'Build artifacts but skip the wordpress.org deploy job' + required: false + default: false + type: boolean + redeploy: + description: 'Delete the existing SVN tag before publishing' + required: false + default: false + type: boolean workflow_dispatch: inputs: tag: diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 000000000..36a47a87b --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1,7 @@ +{ + "packages/faustwp-core": "3.4.1", + "packages/faustwp-cli": "3.4.1", + "packages/blocks": "6.1.9", + "packages/block-editor-utils": "0.3.8", + "plugins/faustwp": "1.8.12" +} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c99684c4d..f58612b85 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -39,7 +39,7 @@ In general, things we find useful when reviewing suggestions are: 0. [A bug or feature you want to work on](https://github.com/wpengine/faustjs/labels/help%20wanted)! If you have found a new bug or want to propose a feature, please [create an issue](https://github.com/wpengine/faustjs/issues/new/choose) before starting a pull request. 1. [A GitHub account](https://github.com/join). 2. A working copy of the code. See [DEVELOPMENT.md](/DEVELOPMENT.md). -3. A `changeset` that describes the changes you're making. You can create a `changeset` by running `npm run changeset` from the monorepo root. +3. A pull request title that follows [Conventional Commits](https://www.conventionalcommits.org/), such as `fix(core): handle expired tokens`. We use it to version packages and write changelogs. See [DEVELOPMENT.md](/DEVELOPMENT.md#how-commits-map-to-releases). ## Housekeeping diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 6b966d21e..a77be7f19 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -162,41 +162,43 @@ We use the [feature branch workflow](https://www.atlassian.com/git/tutorials/com - Create a new branch for the feature - Make changes to the code -- Use `npm run changeset` to create a changeset describing any package or plugin updates - Commit your changes -- Open a pull request to the `canary` branch +- Open a pull request to the `canary` branch with a [Conventional Commits](https://www.conventionalcommits.org/) title, scoped to the package you changed (e.g. `fix(core): ...`, `feat(faustwp): ...`) - Squash and Merge the pull request into the `canary` branch -**Note**: We use Squash and Merge when merging pull requests into the `canary` branch. +**Note**: We use Squash and Merge when merging pull requests into the `canary` branch, so the pull request title becomes the commit message that drives versioning and changelogs. ## Deployment -Developers with full GitHub repository access can create public releases. We use [Changesets](https://github.com/atlassian/changesets) to automate the versioning and deployment process for all of our packages and plugins. +Developers with full GitHub repository access can create public releases. We use [release-please](https://github.com/googleapis/release-please) to automate versioning and deployment for all of our packages and the plugin. Configuration lives in `release-please-config.json` and `.release-please-manifest.json`. -### Adding a changeset +### How commits map to releases -To add a new changeset for a new feature, bugfix or other change please see the [changeset documentation](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md). +release-please reads the commits merged to `canary` since the last release of each package. Only commits that touch a package's directory count toward that package. + +- `fix:` releases a patch version. +- `feat:` releases a minor version. +- `!` after the type (e.g. `feat!:`) or a `BREAKING CHANGE:` footer releases a major version. +- `deps:` releases a patch version and lists the change under Dependencies. +- `chore:`, `docs:`, `ci:`, `test:`, `refactor:`, `build:`, and `style:` don't trigger a release. + +`@faustwp/core` and `@faustwp/cli` always share a version number. ### Versioning -When you are ready to release, you should first create the new package and plugin versions. +release-please keeps a release PR open against `canary` and updates it as commits land. -1. Go to [pull requests](https://github.com/wpengine/faustjs/pulls), and view the "Version Packages" PR. +1. Go to [pull requests](https://github.com/wpengine/faustjs/pulls), and view the release-please PR. 2. Review the PR: - [ ] Changelog entries were created in all updated packages or plugins. - [ ] Version numbers were appropriately bumped in the relevant package.json files. - - [ ] All `.changeset/*.md` files were removed. - [ ] Version number updated in the main plugin file and readme.txt (Plugin versioning only) - [ ] The plugin's readme.txt changelog has been updated with the latest 3 versions (Plugin versioning only) -3. Approve, then "Squash and merge" the "Version Packages" PR into `canary`. - -### Publishing the @faustwp packages - -The @faustwp packages are automatically published to NPM through a GitHub action once the "Version Packages" PR is merged. +3. Approve, then "Squash and merge" the release PR into `canary`. -### Publishing the FaustWP plugin +### Publishing -Once the "Version Packages" PR is merged, create a new release on GitHub with a tag of `plugin/faustwp/v[version]`. This will kick off our GitHub Action to deploy the `faustwp` plugin to WordPress.org. +Merging the release PR tags each released package (e.g. `@faustwp/core@3.4.2`), creates a GitHub release for it, and publishes the npm packages. If the plugin was released, the same workflow deploys it to WordPress.org. Once deployed, the updated packages and plugin will be visible here: diff --git a/package-lock.json b/package-lock.json index 72f93a97a..8ce646f27 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,7 +7,6 @@ "name": "@faustjs/root", "devDependencies": { "@babel/helpers": "^7.27.0", - "@changesets/cli": "^2.29.6", "@next/bundle-analyzer": "^13.2.4", "@typescript-eslint/eslint-plugin": "^5.18.0", "@typescript-eslint/parser": "^5.18.0", @@ -939,248 +938,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@changesets/apply-release-plan": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-7.1.1.tgz", - "integrity": "sha512-9qPCm/rLx/xoOFXIHGB229+4GOL76S4MC+7tyOuTsR6+1jYlfFDQORdvwR5hDA6y4FL2BPt3qpbcQIS+dW85LA==", - "dev": true, - "license": "MIT", - "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.0.0", - "fs-extra": "^7.0.1", - "lodash.startcase": "^4.4.0", - "outdent": "^0.5.0", - "prettier": "^2.7.1", - "resolve-from": "^5.0.0", - "semver": "^7.5.3" - } - }, - "node_modules/@changesets/assemble-release-plan": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-6.0.10.tgz", - "integrity": "sha512-rSDcqdJ9KbVyjpBIuCidhvZNIiVt1XaIYp73ycVQRIA5n/j6wQaEk0ChRLMUQ1vkxZe51PTQ9OIhbg6HQMW45A==", - "dev": true, - "license": "MIT", - "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.5.3" - } - }, - "node_modules/@changesets/changelog-git": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@changesets/changelog-git/-/changelog-git-0.2.1.tgz", - "integrity": "sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@changesets/types": "^6.1.0" - } - }, - "node_modules/@changesets/cli": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/@changesets/cli/-/cli-2.31.0.tgz", - "integrity": "sha512-AhI4enNTgHu2IZr6K4WZyf0EPch4XVMn1yOMFmCD9gsfBGqMYaHXls5HyDv6/CL5axVQABz68eG30eCtbr2wFg==", - "dev": true, - "license": "MIT", - "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.2", - "@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.0", - "picocolors": "^1.1.0", - "resolve-from": "^5.0.0", - "semver": "^7.5.3", - "spawndamnit": "^3.0.1", - "term-size": "^2.1.0" - }, - "bin": { - "changeset": "bin.js" - } - }, - "node_modules/@changesets/config": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@changesets/config/-/config-3.1.4.tgz", - "integrity": "sha512-pf0bvD/v6WI2cRlZ6hzpjtZdSlXDXMAJ+Iz7xfFzV4ZxJ8OGGAON+1qYc99ZPrijnt4xp3VGG7eNvAOGS24V1Q==", - "dev": true, - "license": "MIT", - "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" - } - }, - "node_modules/@changesets/errors": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@changesets/errors/-/errors-0.2.0.tgz", - "integrity": "sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==", - "dev": true, - "license": "MIT", - "dependencies": { - "extendable-error": "^0.1.5" - } - }, - "node_modules/@changesets/get-dependents-graph": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@changesets/get-dependents-graph/-/get-dependents-graph-2.1.4.tgz", - "integrity": "sha512-ZsS00x6WvmHq3sQv8oCMwL0f/z3wbXCVuSVTJwCnnmbC/iBdNJGFx1EcbMG4PC6sXRyH69liM4A2WKXzn/kRPg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@changesets/types": "^6.1.0", - "@manypkg/get-packages": "^1.1.3", - "picocolors": "^1.1.0", - "semver": "^7.5.3" - } - }, - "node_modules/@changesets/get-release-plan": { - "version": "4.0.16", - "resolved": "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-4.0.16.tgz", - "integrity": "sha512-2K5Om6CrMPm45rtvckfzWo7e9jOVCKLCnXia5eUPaURH7/LWzri7pK1TycdzAuAtehLkW7VPbWLCSExTHmiI6g==", - "dev": true, - "license": "MIT", - "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" - } - }, - "node_modules/@changesets/get-version-range-type": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@changesets/get-version-range-type/-/get-version-range-type-0.4.0.tgz", - "integrity": "sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@changesets/git": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@changesets/git/-/git-3.0.4.tgz", - "integrity": "sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@changesets/errors": "^0.2.0", - "@manypkg/get-packages": "^1.1.3", - "is-subdir": "^1.1.1", - "micromatch": "^4.0.8", - "spawndamnit": "^3.0.1" - } - }, - "node_modules/@changesets/logger": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@changesets/logger/-/logger-0.1.1.tgz", - "integrity": "sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "picocolors": "^1.1.0" - } - }, - "node_modules/@changesets/parse": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@changesets/parse/-/parse-0.4.3.tgz", - "integrity": "sha512-ZDmNc53+dXdWEv7fqIUSgRQOLYoUom5Z40gmLgmATmYR9NbL6FJJHwakcCpzaeCy+1D0m0n7mT4jj2B/MQPl7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@changesets/types": "^6.1.0", - "js-yaml": "^4.1.1" - } - }, - "node_modules/@changesets/pre": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@changesets/pre/-/pre-2.0.2.tgz", - "integrity": "sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@changesets/errors": "^0.2.0", - "@changesets/types": "^6.1.0", - "@manypkg/get-packages": "^1.1.3", - "fs-extra": "^7.0.1" - } - }, - "node_modules/@changesets/read": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/@changesets/read/-/read-0.6.7.tgz", - "integrity": "sha512-D1G4AUYGrBEk8vj8MGwf75k9GpN6XL3wg8i42P2jZZwFLXnlr2Pn7r9yuQNbaMCarP7ZQWNJbV6XLeysAIMhTA==", - "dev": true, - "license": "MIT", - "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.0" - } - }, - "node_modules/@changesets/should-skip-package": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@changesets/should-skip-package/-/should-skip-package-0.1.2.tgz", - "integrity": "sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@changesets/types": "^6.1.0", - "@manypkg/get-packages": "^1.1.3" - } - }, - "node_modules/@changesets/types": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@changesets/types/-/types-6.1.0.tgz", - "integrity": "sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@changesets/write": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@changesets/write/-/write-0.4.0.tgz", - "integrity": "sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@changesets/types": "^6.1.0", - "fs-extra": "^7.0.1", - "human-id": "^4.1.1", - "prettier": "^2.7.1" - } - }, "node_modules/@date-fns/tz": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@date-fns/tz/-/tz-1.5.0.tgz", @@ -2111,28 +1868,6 @@ "url": "https://opencollective.com/libvips" } }, - "node_modules/@inquirer/external-editor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz", - "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", - "dev": true, - "license": "MIT", - "dependencies": { - "chardet": "^2.1.1", - "iconv-lite": "^0.7.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -2672,78 +2407,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@manypkg/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@manypkg/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.5.5", - "@types/node": "^12.7.1", - "find-up": "^4.1.0", - "fs-extra": "^8.1.0" - } - }, - "node_modules/@manypkg/find-root/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@manypkg/find-root/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/@manypkg/get-packages": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@manypkg/get-packages/-/get-packages-1.1.3.tgz", - "integrity": "sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.5.5", - "@changesets/types": "^4.0.1", - "@manypkg/find-root": "^1.1.0", - "fs-extra": "^8.1.0", - "globby": "^11.0.0", - "read-yaml-file": "^1.1.0" - } - }, - "node_modules/@manypkg/get-packages/node_modules/@changesets/types": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@changesets/types/-/types-4.1.0.tgz", - "integrity": "sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@manypkg/get-packages/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, "node_modules/@next/bundle-analyzer": { "version": "13.5.11", "resolved": "https://registry.npmjs.org/@next/bundle-analyzer/-/bundle-analyzer-13.5.11.tgz", @@ -14718,16 +14381,6 @@ "license": "MIT", "peer": true }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -15361,19 +15014,6 @@ "node": ">=6.0.0" } }, - "node_modules/better-path-resolve": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/better-path-resolve/-/better-path-resolve-1.0.0.tgz", - "integrity": "sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-windows": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/brace-expansion": { "version": "1.1.18", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", @@ -15630,13 +15270,6 @@ "node": ">=10" } }, - "node_modules/chardet": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz", - "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", - "dev": true, - "license": "MIT" - }, "node_modules/chokidar": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", @@ -16373,16 +16006,6 @@ "node": ">=6" } }, - "node_modules/detect-indent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/detect-libc": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", @@ -16628,20 +16251,6 @@ "node": ">=10.13.0" } }, - "node_modules/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/entities": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", @@ -17571,13 +17180,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/extendable-error": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/extendable-error/-/extendable-error-0.1.7.tgz", - "integrity": "sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==", - "dev": true, - "license": "MIT" - }, "node_modules/fast-average-color": { "version": "9.5.2", "resolved": "https://registry.npmjs.org/fast-average-color/-/fast-average-color-9.5.2.tgz", @@ -17948,21 +17550,6 @@ "node": ">= 0.4" } }, - "node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -18555,16 +18142,6 @@ "node": ">= 6" } }, - "node_modules/human-id": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/human-id/-/human-id-4.1.3.tgz", - "integrity": "sha512-tsYlhAYpjCKa//8rXZ9DqKEawhPoSytweBC2eNvcaDK+57RZLHGqNs3PZTQO6yekLFSuvA6AlnAfrw1uBvtb+Q==", - "dev": true, - "license": "MIT", - "bin": { - "human-id": "dist/cli.js" - } - }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -18575,23 +18152,6 @@ "node": ">=10.17.0" } }, - "node_modules/iconv-lite": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", - "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -19112,19 +18672,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-subdir": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-subdir/-/is-subdir-1.2.0.tgz", - "integrity": "sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==", - "dev": true, - "license": "MIT", - "dependencies": { - "better-path-resolve": "1.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/is-subset": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", @@ -19219,16 +18766,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", @@ -20477,16 +20014,6 @@ "node": ">=6" } }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -20724,13 +20251,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.startcase": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", - "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", - "dev": true, - "license": "MIT" - }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -20995,16 +20515,6 @@ "integrity": "sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==", "license": "Apache-2.0 WITH LLVM-exception" }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/mrmime": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", @@ -21455,13 +20965,6 @@ "node": ">= 0.8.0" } }, - "node_modules/outdent": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.5.0.tgz", - "integrity": "sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==", - "dev": true, - "license": "MIT" - }, "node_modules/own-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", @@ -21480,19 +20983,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/p-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", - "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-map": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -21546,16 +21036,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -21571,16 +21051,6 @@ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "license": "BlueOak-1.0.0" }, - "node_modules/package-manager-detector": { - "version": "0.2.11", - "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.11.tgz", - "integrity": "sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "quansync": "^0.2.7" - } - }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -21777,16 +21247,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/pirates": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", @@ -22046,23 +21506,6 @@ ], "license": "MIT" }, - "node_modules/quansync": { - "version": "0.2.11", - "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", - "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/antfu" - }, - { - "type": "individual", - "url": "https://github.com/sponsors/sxzz" - } - ], - "license": "MIT" - }, "node_modules/querystring": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", @@ -22268,32 +21711,6 @@ } } }, - "node_modules/read-yaml-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-yaml-file/-/read-yaml-file-1.1.0.tgz", - "integrity": "sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.5", - "js-yaml": "^3.6.1", - "pify": "^4.0.1", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/read-yaml-file/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -23418,30 +22835,6 @@ "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", "dev": true }, - "node_modules/spawndamnit": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spawndamnit/-/spawndamnit-3.0.1.tgz", - "integrity": "sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==", - "dev": true, - "license": "SEE LICENSE IN LICENSE", - "dependencies": { - "cross-spawn": "^7.0.5", - "signal-exit": "^4.0.1" - } - }, - "node_modules/spawndamnit/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/sprintf-js": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", @@ -23904,19 +23297,6 @@ "streamx": "^2.12.5" } }, - "node_modules/term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/terser": { "version": "5.46.2", "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.2.tgz", @@ -24518,16 +23898,6 @@ "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", "license": "MIT" }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/update-browserslist-db": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.2.tgz", diff --git a/package.json b/package.json index 9d1e977f0..897962ed4 100644 --- a/package.json +++ b/package.json @@ -30,18 +30,11 @@ "test:coverage": "npm run build && npm run test:coverage --workspace=@faustwp/block-editor-utils", "test:format": "npm run test:format --workspace=@faustwp/cli --workspace=@faustwp/core --workspace=@faustwp/block-editor-utils -- --ignore-path .eslintignore --ignore-pattern CHANGELOG.md", "wpe-build": "exit 1", - "changeset": "changeset", - "version": "changeset version && node scripts/versionPlugin.js", - "version:nightly": "changeset version --snapshot && node scripts/versionPlugin.js", - "version:status": "changeset status", - "release": "npm run build && changeset publish", - "release:nightly": "npm run build && changeset publish --tag canary", "lint": "eslint ./packages --ext js,jsx,ts,tsx --max-warnings=0", "lint:fix": "eslint ./packages --ext js,jsx,ts,tsx --max-warnings=0 --fix" }, "devDependencies": { "@babel/helpers": "^7.27.0", - "@changesets/cli": "^2.29.6", "@next/bundle-analyzer": "^13.2.4", "@typescript-eslint/eslint-plugin": "^5.18.0", "@typescript-eslint/parser": "^5.18.0", diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 000000000..0ada6a782 --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,36 @@ +{ + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "release-type": "node", + "bootstrap-sha": "b1fd0b64c3256157989a377b6647669e8b6a9e5a", + "include-component-in-tag": true, + "include-v-in-tag": false, + "tag-separator": "@", + "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": { + "packages/faustwp-core": { "component": "@faustwp/core" }, + "packages/faustwp-cli": { "component": "@faustwp/cli" }, + "packages/blocks": { "component": "@faustwp/blocks" }, + "packages/block-editor-utils": { "component": "@faustwp/block-editor-utils" }, + "plugins/faustwp": { "component": "@faustwp/wordpress-plugin" } + }, + "plugins": [ + { + "type": "linked-versions", + "groupName": "core-cli", + "components": ["@faustwp/core", "@faustwp/cli"] + } + ] +} diff --git a/scripts/versionPlugin.js b/scripts/versionPlugin.js index 479ab0e28..9a7db486d 100644 --- a/scripts/versionPlugin.js +++ b/scripts/versionPlugin.js @@ -21,9 +21,9 @@ async function versionPlugin() { const version = await getNewVersion(pluginPath); if ( version ) { - bumpPluginHeader(pluginFile, version); + await bumpPluginHeader(pluginFile, version); await bumpStableTag(readmeTxt, version); - generateReadmeChangelog(readmeTxt, changelog); + await generateReadmeChangelog(readmeTxt, changelog); } } @@ -136,13 +136,15 @@ async function generateReadmeChangelog(readmeTxtFile, changelog) { // print all lines in current version changelogLines.every((line) => { - // Version numbers in CHANGELOG.md are h2 + // Version numbers in CHANGELOG.md are h2. release-please writes them as + // "## [1.2.3](compare-url) (date)"; older entries are "## 1.2.3". if (line.startsWith("## ")) { if (versionCount == 3) { return false; } // Format version number for WordPress - line = line.replace("## ", "= ") + " ="; + const version = line.match(/^## \[?([^\]\s]+)/)[1]; + line = `= ${version} =`; versionCount++; }