diff --git a/.github/workflows/deduplicate-lock-file.yml b/.github/workflows/deduplicate-lock-file.yml index 43edda7dcd2..06a9f75bc20 100644 --- a/.github/workflows/deduplicate-lock-file.yml +++ b/.github/workflows/deduplicate-lock-file.yml @@ -3,7 +3,7 @@ name: โš™๏ธ Deduplicate lock file on: push: branches: - - dev + - v2 paths: - pnpm-lock.yaml diff --git a/.github/workflows/deployments.yml b/.github/workflows/deployments.yml deleted file mode 100644 index 2a6fc37b6d4..00000000000 --- a/.github/workflows/deployments.yml +++ /dev/null @@ -1,222 +0,0 @@ -name: ๐Ÿš€ Deployment Tests - -on: - workflow_call: - secrets: - TEST_AWS_ACCESS_KEY_ID: - required: true - TEST_AWS_SECRET_ACCESS_KEY: - required: true - TEST_CF_ACCOUNT_ID: - required: true - TEST_CF_GLOBAL_API_KEY: - required: true - TEST_CF_EMAIL: - required: true - TEST_CF_PAGES_API_TOKEN: - required: true - TEST_CF_API_TOKEN: - required: true - TEST_DENO_DEPLOY_TOKEN: - required: true - TEST_FLY_TOKEN: - required: true - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - arc_deploy: - name: Architect Deploy - if: github.repository == 'remix-run/remix' - runs-on: ubuntu-latest - steps: - - name: โฌ‡๏ธ Checkout repo - uses: actions/checkout@v5 - - - name: ๐Ÿ“ฆ Setup pnpm - uses: pnpm/action-setup@v4.1.0 - - - name: โŽ” Setup node - uses: actions/setup-node@v4 - with: - node-version-file: ".nvmrc" - cache: npm - cache-dependency-path: ./scripts/deployment-test/package.json # no lockfile, key caching off package.json - - # some deployment targets require the latest version of npm - # TODO: remove this eventually when the default version we get - # is "latest" enough. - - name: ๐Ÿ“ฆ Install latest version of npm - run: npm install -g npm@latest - working-directory: ./scripts/deployment-test - - - name: ๐Ÿ“ฅ Install deployment-test deps - run: npm install - working-directory: ./scripts/deployment-test - - - name: ๐Ÿš€ Deploy to Arc - run: node ./arc.mjs - working-directory: ./scripts/deployment-test - env: - CI: true - AWS_ACCESS_KEY_ID: ${{ secrets.TEST_AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.TEST_AWS_SECRET_ACCESS_KEY }} - - cf_pages_deploy: - name: "CF Pages Deploy" - if: github.repository == 'remix-run/remix' - runs-on: ubuntu-latest - steps: - - name: โฌ‡๏ธ Checkout repo - uses: actions/checkout@v5 - - - name: ๐Ÿ“ฆ Setup pnpm - uses: pnpm/action-setup@v4.1.0 - - - name: โŽ” Setup node - uses: actions/setup-node@v4 - with: - node-version-file: ".nvmrc" - cache: npm - cache-dependency-path: ./scripts/deployment-test/package.json # no lockfile, key caching off package.json - - # some deployment targets require the latest version of npm - # TODO: remove this eventually when the default version we get - # is "latest" enough. - - name: ๐Ÿ“ฆ Install latest version of npm - run: npm install -g npm@latest - working-directory: ./scripts/deployment-test - - - name: ๐Ÿ“ฅ Install deployment-test deps - run: npm install - working-directory: ./scripts/deployment-test - - - name: ๐Ÿš€ Deploy to Cloudflare Pages - run: node ./cf-pages.mjs - working-directory: ./scripts/deployment-test - env: - CLOUDFLARE_ACCOUNT_ID: ${{ secrets.TEST_CF_ACCOUNT_ID }} - CLOUDFLARE_GLOBAL_API_KEY: ${{ secrets.TEST_CF_GLOBAL_API_KEY }} - CLOUDFLARE_EMAIL: ${{ secrets.TEST_CF_EMAIL }} - CLOUDFLARE_API_TOKEN: ${{ secrets.TEST_CF_PAGES_API_TOKEN }} - - cf_workers_deploy: - name: "CF Workers Deploy" - if: github.repository == 'remix-run/remix' - runs-on: ubuntu-latest - steps: - - name: โฌ‡๏ธ Checkout repo - uses: actions/checkout@v5 - - - name: ๐Ÿ“ฆ Setup pnpm - uses: pnpm/action-setup@v4.1.0 - - - name: โŽ” Setup node - uses: actions/setup-node@v4 - with: - node-version-file: ".nvmrc" - cache: npm - cache-dependency-path: ./scripts/deployment-test/package.json # no lockfile, key caching off package.json - - # some deployment targets require the latest version of npm - # TODO: remove this eventually when the default version we get - # is "latest" enough. - - name: ๐Ÿ“ฆ Install latest version of npm - run: npm install -g npm@latest - working-directory: ./scripts/deployment-test - - - name: ๐Ÿ“ฅ Install deployment-test deps - run: npm install - working-directory: ./scripts/deployment-test - - - name: ๐Ÿš€ Deploy to Cloudflare Workers - run: node ./cf-workers.mjs - working-directory: ./scripts/deployment-test - env: - CLOUDFLARE_ACCOUNT_ID: ${{ secrets.TEST_CF_ACCOUNT_ID }} - CLOUDFLARE_API_TOKEN: ${{ secrets.TEST_CF_API_TOKEN }} - CLOUDFLARE_EMAIL: ${{ secrets.CLOUDFLARE_EMAIL }} - CLOUDFLARE_GLOBAL_API_KEY: ${{ secrets.CLOUDFLARE_GLOBAL_API_KEY }} - - # "deploy deploy" is not a typo, we are deploying to Deno Deploy - deno_deploy_deploy: - name: "Deno Deploy Deploy" - if: github.repository == 'remix-run/remix' - runs-on: ubuntu-latest - steps: - - name: โฌ‡๏ธ Checkout repo - uses: actions/checkout@v5 - - - name: ๐Ÿ“ฆ Setup pnpm - uses: pnpm/action-setup@v4.1.0 - - - name: โŽ” Setup node - uses: actions/setup-node@v4 - with: - node-version-file: ".nvmrc" - cache: npm - cache-dependency-path: ./scripts/deployment-test/package.json # no lockfile, key caching off package.json - - # some deployment targets require the latest version of npm - # TODO: remove this eventually when the default version we get - # is "latest" enough. - - name: ๐Ÿ“ฆ Install latest version of npm - run: npm install -g npm@latest - working-directory: ./scripts/deployment-test - - - name: ๐Ÿ“ฅ Install deployment-test deps - run: npm install - working-directory: ./scripts/deployment-test - - - name: ๐Ÿฆ• Install Deno - uses: denoland/setup-deno@v1 - with: - deno-version: vx.x.x - - name: ๐Ÿฆ• Deno Deploy CLI - run: deno install --allow-read --allow-write --allow-env --allow-net --allow-run --no-check -r -f https://deno.land/x/deploy/deployctl.ts - - - name: ๐Ÿš€ Deploy to Deno Deploy - run: node ./deno-deploy.mjs - working-directory: ./scripts/deployment-test - env: - DENO_DEPLOY_TOKEN: ${{ secrets.TEST_DENO_DEPLOY_TOKEN }} - - fly_deploy: - name: "Fly Deploy" - if: github.repository == 'remix-run/remix' - runs-on: ubuntu-latest - steps: - - name: โฌ‡๏ธ Checkout repo - uses: actions/checkout@v5 - - - name: ๐Ÿ“ฆ Setup pnpm - uses: pnpm/action-setup@v4.1.0 - - - name: โŽ” Setup node - uses: actions/setup-node@v4 - with: - node-version-file: ".nvmrc" - cache: npm - cache-dependency-path: ./scripts/deployment-test/package.json # no lockfile, key caching off package.json - - # some deployment targets require the latest version of npm - # TODO: remove this eventually when the default version we get - # is "latest" enough. - - name: ๐Ÿ“ฆ Install latest version of npm - run: npm install -g npm@latest - working-directory: ./scripts/deployment-test - - - name: ๐Ÿ“ฅ Install deployment-test deps - run: npm install - working-directory: ./scripts/deployment-test - - - name: ๐ŸŽˆ Install the Fly CLI - run: curl -L https://fly.io/install.sh | FLYCTL_INSTALL=/usr/local sh - - - name: ๐Ÿš€ Deploy to Fly - run: node ./fly.mjs - working-directory: ./scripts/deployment-test - env: - FLY_API_TOKEN: ${{ secrets.TEST_FLY_TOKEN }} diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index 09d091fcb14..30fcd8cb054 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -3,8 +3,7 @@ name: ๐Ÿ‘” Format on: push: branches: - - main - - dev + - v2 concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 7d378772de3..71e9c7b3972 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -3,8 +3,7 @@ name: โฌฃ Lint on: push: branches: - - main - - dev + - v2 pull_request: concurrency: diff --git a/.github/workflows/merged-pr.yml b/.github/workflows/merged-pr.yml deleted file mode 100644 index d77d49d89e0..00000000000 --- a/.github/workflows/merged-pr.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: ๐Ÿ“ฆ Merged PR - -on: - pull_request: - types: [closed] - branches: - - dev - paths: - - "packages/**" - -permissions: - pull-requests: write - -jobs: - merged: - name: Add label to merged PR - if: github.event.pull_request.merged == true && github.repository == 'remix-run/remix' - runs-on: ubuntu-latest - steps: - - uses: actions/github-script@v7 - with: - retries: 3 - script: | - await github.rest.issues.addLabels({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.issue.number, - labels: ['awaiting release'], - }) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml deleted file mode 100644 index 299d559914b..00000000000 --- a/.github/workflows/nightly.yml +++ /dev/null @@ -1,122 +0,0 @@ -name: ๐ŸŒ’ Nightly Release - -on: - workflow_dispatch: - schedule: - - cron: "0 7 * * *" # every day at 12AM PST - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -env: - CI: true - -jobs: - # HEADS UP! this "nightly" job will only ever run on the `main` branch due to it being a cron job, - # and the last commit on main will be what github shows as the trigger - # however in the checkout below we specify the `dev` branch, so all the scripts - # in this job will be ran from that, confusing i know, so in some cases we'll need to create - # multiple PRs when modifying nightly release processes - nightly: - name: ๐ŸŒ’ Nightly Release - if: github.repository == 'remix-run/remix' - runs-on: ubuntu-latest - outputs: - # allows this to be used in the `comment` job below - will be undefined if there's no release necessary - NEXT_VERSION: ${{ steps.version.outputs.NEXT_VERSION }} - steps: - - name: โฌ‡๏ธ Checkout repo - uses: actions/checkout@v5 - with: - ref: dev - # checkout using a custom token so that we can push later on - token: ${{ secrets.NIGHTLY_PAT }} - fetch-depth: 0 - - - name: ๐Ÿ“ฆ Setup pnpm - uses: pnpm/action-setup@v4.1.0 - - - name: โŽ” Setup node - uses: actions/setup-node@v4 - with: - node-version-file: ".nvmrc" - cache: "pnpm" - - - name: ๐Ÿ“ฅ Install deps - run: pnpm install --frozen-lockfile - - - name: ๐Ÿ•ต๏ธ Check for changes - id: version - run: | - SHORT_SHA=$(git rev-parse --short HEAD) - - # get latest nightly tag - LATEST_NIGHTLY_TAG=$(git tag -l v0.0.0-nightly-\* --sort=-creatordate | head -n 1) - - # check if last commit to dev starts would be the nightly tag we're about to create (minus the date) - # if it is, we'll skip the nightly creation - # if not, we'll create a new nightly tag - if [[ ${LATEST_NIGHTLY_TAG} == v0.0.0-nightly-${SHORT_SHA}-* ]]; then - echo "๐Ÿ›‘ Latest nightly tag is the same as the latest commit sha, skipping nightly release" - else - # yyyyMMdd format (e.g. 20221207) - DATE=$(date '+%Y%m%d') - # v0.0.0-nightly-- - NEXT_VERSION=0.0.0-nightly-${SHORT_SHA}-${DATE} - # set output so it can be used in other jobs - echo "NEXT_VERSION=${NEXT_VERSION}" >> $GITHUB_OUTPUT - fi - - - name: โคด๏ธ Update version - if: steps.version.outputs.NEXT_VERSION - run: | - git config --local user.email "hello@remix.run" - git config --local user.name "Remix Run Bot" - git checkout -b nightly/${{ steps.version.outputs.NEXT_VERSION }} - pnpm run version ${{steps.version.outputs.NEXT_VERSION}} --skip-prompt - git push origin --tags - - - name: ๐Ÿ— Build - if: steps.version.outputs.NEXT_VERSION - run: pnpm build - - - name: ๐Ÿ” Setup npm auth - if: steps.version.outputs.NEXT_VERSION - run: | - echo "registry=https://registry.npmjs.org" >> ~/.npmrc - echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" >> ~/.npmrc - - - name: ๐Ÿš€ Publish - if: steps.version.outputs.NEXT_VERSION - run: npm run publish - - comment: - needs: [nightly] - name: ๐Ÿ“ Comment on related issues and pull requests - if: github.repository == 'remix-run/remix' && needs.nightly.outputs.NEXT_VERSION - uses: ./.github/workflows/release-comments.yml - - deployments: - needs: [nightly] - name: ๐Ÿš€ Deployment Tests - if: github.repository == 'remix-run/remix' && needs.nightly.outputs.NEXT_VERSION - uses: remix-run/remix/.github/workflows/deployments.yml@main - secrets: - TEST_AWS_ACCESS_KEY_ID: ${{ secrets.TEST_AWS_ACCESS_KEY_ID }} - TEST_AWS_SECRET_ACCESS_KEY: ${{ secrets.TEST_AWS_SECRET_ACCESS_KEY }} - TEST_CF_ACCOUNT_ID: ${{ secrets.TEST_CF_ACCOUNT_ID }} - TEST_CF_GLOBAL_API_KEY: ${{ secrets.TEST_CF_GLOBAL_API_KEY }} - TEST_CF_EMAIL: ${{ secrets.TEST_CF_EMAIL }} - TEST_CF_PAGES_API_TOKEN: ${{ secrets.TEST_CF_PAGES_API_TOKEN }} - TEST_CF_API_TOKEN: ${{ secrets.TEST_CF_API_TOKEN }} - TEST_DENO_DEPLOY_TOKEN: ${{ secrets.TEST_DENO_DEPLOY_TOKEN }} - TEST_FLY_TOKEN: ${{ secrets.TEST_FLY_TOKEN }} - - stacks: - needs: [nightly] - name: ๐Ÿฅž Remix Stacks Test - if: github.repository == 'remix-run/remix' && needs.nightly.outputs.NEXT_VERSION - uses: remix-run/remix/.github/workflows/stacks.yml@main - with: - version: "${{ needs.nightly.outputs.NEXT_VERSION }}" diff --git a/.github/workflows/release-comments.yml b/.github/workflows/release-comments.yml deleted file mode 100644 index b32dcad6811..00000000000 --- a/.github/workflows/release-comments.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: ๐Ÿ“ Comment on Release - -on: - workflow_call: - -jobs: - comment: - name: ๐Ÿ“ Comment on related issues and pull requests - if: github.repository == 'remix-run/remix' - runs-on: ubuntu-latest - steps: - - name: โฌ‡๏ธ Checkout repo - uses: actions/checkout@v5 - with: - fetch-depth: 0 - - - name: ๐Ÿ“ Comment on related issues and pull requests - uses: remix-run/release-comment-action@v0.4.2 - with: - DIRECTORY_TO_CHECK: "./packages" - PACKAGE_NAME: "remix" - PR_LABELS_TO_REMOVE: "awaiting release" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 46e897960bf..00000000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,123 +0,0 @@ -name: ๐Ÿฆ‹ Changesets Release -on: - push: - branches: - - release - - "release-*" - - "!release-experimental" - - "!release-experimental-*" - - "!release-manual" - - "!release-manual-*" - -jobs: - release: - name: ๐Ÿฆ‹ Changesets Release - # we need to check for `nightly` refs and skip them as we dont want to - # double publish a version as it would fail. unfortunately even using curl - # and a `repository_dispatch` trigger, actions still aren't ran if a version - # is published using the default secrets.GITHUB_TOKEN. - if: | - github.repository == 'remix-run/remix' && - !contains(github.ref, 'nightly') - runs-on: ubuntu-latest - outputs: - published_packages: ${{ steps.changesets.outputs.publishedPackages }} - published: ${{ steps.changesets.outputs.published }} - steps: - - name: โฌ‡๏ธ Checkout repo - uses: actions/checkout@v5 - with: - fetch-depth: 0 - - - name: ๐Ÿ“ฆ Setup pnpm - uses: pnpm/action-setup@v4.1.0 - - - name: โŽ” Setup node - uses: actions/setup-node@v4 - with: - node-version-file: ".nvmrc" - cache: "pnpm" - - - name: ๐Ÿ“ฅ Install deps - run: pnpm install --frozen-lockfile - - - name: ๐Ÿ” Setup npm auth - run: | - echo "registry=https://registry.npmjs.org" >> ~/.npmrc - echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" >> ~/.npmrc - - # This action has two responsibilities. The first time the workflow runs - # (initial push to a `release-*` branch) it will create a new branch and - # then open a PR with the related changes for the new version. After the - # PR is merged, the workflow will run again and this action will build + - # publish to npm. - - name: ๐Ÿš€ PR / Publish - id: changesets - uses: changesets/action@v1.4.10 - with: - version: pnpm run changeset:version - commit: "chore: Update version for release" - title: "chore: Update version for release" - publish: pnpm run changeset:release - createGithubReleases: false - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - - find_package_version: - name: ๐Ÿฆ‹ Find Package - needs: [release] - runs-on: ubuntu-latest - if: github.repository == 'remix-run/remix' && needs.release.outputs.published == 'true' - outputs: - package_version: ${{ steps.find_package_version.outputs.package_version }} - steps: - - name: โฌ‡๏ธ Checkout repo - uses: actions/checkout@v5 - - - name: ๐Ÿ“ฆ Setup pnpm - uses: pnpm/action-setup@v4.1.0 - - - name: โŽ” Setup node - uses: actions/setup-node@v4 - with: - node-version-file: ".nvmrc" - cache: "pnpm" - - - id: find_package_version - run: | - package_version=$(node ./scripts/find-release-from-changeset.js) - echo "package_version=${package_version}" >> $GITHUB_OUTPUT - env: - PACKAGE_VERSION_TO_FOLLOW: "remix" - PUBLISHED_PACKAGES: ${{ needs.release.outputs.published_packages }} - - comment: - name: ๐Ÿ“ Comment on related issues and pull requests - if: github.repository == 'remix-run/remix' && needs.find_package_version.outputs.package_version != '' - needs: [release, find_package_version] - uses: ./.github/workflows/release-comments.yml - - # deployments: - # name: ๐Ÿš€ Deployment Tests - # if: github.repository == 'remix-run/remix' - # needs: [release, find_package_version] - # uses: ./.github/workflows/deployments.yml - # secrets: - # TEST_AWS_ACCESS_KEY_ID: ${{ secrets.TEST_AWS_ACCESS_KEY_ID }} - # TEST_AWS_SECRET_ACCESS_KEY: ${{ secrets.TEST_AWS_SECRET_ACCESS_KEY }} - # TEST_CF_ACCOUNT_ID: ${{ secrets.TEST_CF_ACCOUNT_ID }} - # TEST_CF_GLOBAL_API_KEY: ${{ secrets.TEST_CF_GLOBAL_API_KEY }} - # TEST_CF_EMAIL: ${{ secrets.TEST_CF_EMAIL }} - # TEST_CF_PAGES_API_TOKEN: ${{ secrets.TEST_CF_PAGES_API_TOKEN }} - # TEST_CF_API_TOKEN: ${{ secrets.TEST_CF_API_TOKEN }} - # TEST_DENO_DEPLOY_TOKEN: ${{ secrets.TEST_DENO_DEPLOY_TOKEN }} - # TEST_FLY_TOKEN: ${{ secrets.TEST_FLY_TOKEN }} - - # stacks: - # name: ๐Ÿฅž Remix Stacks Test - # if: github.repository == 'remix-run/remix' - # needs: [release, find_package_version] - # uses: ./.github/workflows/stacks.yml - # with: - # version: ${{ needs.find_package_version.outputs.package_version }} diff --git a/.github/workflows/stacks.yml b/.github/workflows/stacks.yml deleted file mode 100644 index 4edeecd9e79..00000000000 --- a/.github/workflows/stacks.yml +++ /dev/null @@ -1,253 +0,0 @@ -name: ๐Ÿฅž Remix Stacks Test - -on: - workflow_call: - inputs: - version: - required: true - type: string - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - setup: - name: Remix Stacks Test - if: github.repository == 'remix-run/remix' - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - stack: - - repo: "remix-run/indie-stack" - name: "indie" - - repo: "remix-run/blues-stack" - name: "blues" - - repo: "remix-run/grunge-stack" - name: "grunge" - steps: - - name: โŽ” Setup node - uses: actions/setup-node@v4 - with: - node-version: 18 - - - name: โš’๏ธ Create new ${{ matrix.stack.name }} app with ${{ inputs.version }} - run: | - npx -y create-remix@${{ inputs.version }} ${{ matrix.stack.name }} --template ${{ matrix.stack.repo }} --no-install --no-git-init - - - name: โŽ” Setup dependency caching - uses: actions/setup-node@v4 - with: - cache: npm - cache-dependency-path: ${{ matrix.stack.name }}/package.json - - - name: ๐Ÿ“ฅ Install deps - run: npm install - working-directory: ${{ matrix.stack.name }} - - - name: Run `remix init` - run: | - cd ${{ matrix.stack.name }} - npx remix init - - - name: ๐Ÿ„ Copy test env vars - run: | - cd ${{ matrix.stack.name }} - cp .env.example .env - - - name: ๐Ÿ“ Zip artifact - run: zip ${{ matrix.stack.name }}.zip ./${{ matrix.stack.name }} -r -x "**/node_modules/*" - - - name: ๐Ÿ—„๏ธ Archive ${{ matrix.stack.name }} - uses: actions/upload-artifact@v4 - with: - name: ${{ matrix.stack.name }}-archive - path: ${{ matrix.stack.name }}.zip - - lint: - name: โฌฃ ESLint - if: github.repository == 'remix-run/remix' - needs: [setup] - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - stack: - - repo: "remix-run/indie-stack" - name: "indie" - - repo: "remix-run/blues-stack" - name: "blues" - - repo: "remix-run/grunge-stack" - name: "grunge" - steps: - - name: ๐Ÿ—„๏ธ Restore ${{ matrix.stack.name }} - uses: actions/download-artifact@v4 - with: - name: ${{ matrix.stack.name }}-archive - - - name: ๐Ÿ“ Unzip artifact - run: unzip ${{ matrix.stack.name }}.zip - - - name: โŽ” Setup node and dependency caching - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: npm - cache-dependency-path: ${{ matrix.stack.name }}/package.json - - - name: ๐Ÿ“ฅ Install deps - run: npm install - working-directory: ${{ matrix.stack.name }} - - - name: ๐Ÿ”ฌ Lint - run: | - cd ${{ matrix.stack.name }} - npm run lint - - typecheck: - name: สฆ TypeScript - needs: [setup] - if: github.repository == 'remix-run/remix' - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - stack: - - repo: "remix-run/indie-stack" - name: "indie" - - repo: "remix-run/blues-stack" - name: "blues" - - repo: "remix-run/grunge-stack" - name: "grunge" - steps: - - name: ๐Ÿ—„๏ธ Restore ${{ matrix.stack.name }} - uses: actions/download-artifact@v4 - with: - name: ${{ matrix.stack.name }}-archive - - - name: ๐Ÿ“ Unzip artifact - run: unzip ${{ matrix.stack.name }}.zip - - - name: โŽ” Setup node and dependency caching - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: npm - cache-dependency-path: ${{ matrix.stack.name }}/package.json - - - name: ๐Ÿ“ฅ Install deps - run: npm install - working-directory: ${{ matrix.stack.name }} - - - name: ๐Ÿ”Ž Type check - run: | - cd ${{ matrix.stack.name }} - npm run typecheck --if-present - - vitest: - name: โšก Vitest - if: github.repository == 'remix-run/remix' - needs: [setup] - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - stack: - - repo: "remix-run/indie-stack" - name: "indie" - - repo: "remix-run/blues-stack" - name: "blues" - - repo: "remix-run/grunge-stack" - name: "grunge" - steps: - - name: ๐Ÿ—„๏ธ Restore ${{ matrix.stack.name }} - uses: actions/download-artifact@v4 - with: - name: ${{ matrix.stack.name }}-archive - - - name: ๐Ÿ“ Unzip artifact - run: unzip ${{ matrix.stack.name }}.zip - - - name: โŽ” Setup node and dependency caching - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: npm - cache-dependency-path: ${{ matrix.stack.name }}/package.json - - - name: ๐Ÿ“ฅ Install deps - run: npm install - working-directory: ${{ matrix.stack.name }} - - - name: โšก Run vitest - run: | - cd ${{ matrix.stack.name }} - npm run test -- --coverage - - cypress: - name: โšซ๏ธ Cypress - if: github.repository == 'remix-run/remix' - needs: [setup] - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - stack: - - repo: "remix-run/indie-stack" - name: "indie" - cypress: "npm run start:mocks" - - repo: "remix-run/blues-stack" - name: "blues" - cypress: "npm run start:mocks" - - repo: "remix-run/grunge-stack" - name: "grunge" - cypress: "npm run dev" - steps: - - name: ๐Ÿ—„๏ธ Restore ${{ matrix.stack.name }} - uses: actions/download-artifact@v4 - with: - name: ${{ matrix.stack.name }}-archive - - - name: ๐Ÿ“ Unzip artifact - run: unzip ${{ matrix.stack.name }}.zip - - - name: โŽ” Setup node and dependency caching - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: npm - cache-dependency-path: ${{ matrix.stack.name }}/package.json - - - name: ๐Ÿ“ฅ Install deps - run: npm install - working-directory: ${{ matrix.stack.name }} - - - name: ๐Ÿณ Docker compose - if: ${{ matrix.stack.name == 'blues' }} - # the sleep is just there to give time for postgres to get started - run: | - cd ${{ matrix.stack.name }} - docker-compose up -d && sleep 3 - env: - DATABASE_URL: "postgresql://postgres:postgres@localhost:5432/postgres" - - - name: ๐Ÿ›  Setup Database - if: ${{ matrix.stack.name != 'grunge' }} - run: | - cd ${{ matrix.stack.name }} - npx prisma migrate reset --force - - - name: โš™๏ธ Build - run: | - cd ${{ matrix.stack.name }} - npm run build - - - name: ๐ŸŒณ Cypress run - uses: cypress-io/github-action@v6 - with: - start: ${{ matrix.stack.cypress }} - wait-on: "http://localhost:8811" - working-directory: ${{ matrix.stack.name }} - env: - PORT: "8811" diff --git a/.github/workflows/test-full.yml b/.github/workflows/test-full.yml index 9eb2c9f9bad..8d15377e4f2 100644 --- a/.github/workflows/test-full.yml +++ b/.github/workflows/test-full.yml @@ -6,11 +6,8 @@ name: Branch on: push: branches: - - main - - dev - - release-* - tags: - - "v0.0.0-nightly-*" + - v2 + - release-v2 paths-ignore: - "docs/**" - "scripts/**" diff --git a/package.json b/package.json index cb010314f6d..2102da4512e 100644 --- a/package.json +++ b/package.json @@ -27,9 +27,6 @@ "vite-ecosystem-ci:build": "pnpm build", "vite-ecosystem-ci:before-test": "pnpm playwright install", "vite-ecosystem-ci:test": "pnpm playwright:integration --project=chromium integration/vite-* && pnpm clean:integration", - "changeset": "changeset", - "changeset:version": "changeset version && node ./scripts/remove-prerelease-changelogs.mjs && node ./scripts/patchup-version.mjs && pnpm install --no-frozen-lockfile", - "changeset:release": "pnpm build --tsc && ./scripts/changesets-release.sh", "version": "node ./scripts/version.js", "watch": "rollup -c --watch --watch.onEnd=\"node scripts/copy-build-to-dist.mjs\"" }, @@ -44,7 +41,6 @@ "@babel/preset-env": "^7.21.5", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.21.5", - "@changesets/cli": "^2.25.2", "@cloudflare/kv-asset-handler": "^0.3.0", "@manypkg/get-packages": "^1.1.3", "@mcansh/remark-definition-links": "2.4.1", @@ -136,10 +132,5 @@ }, "engines": { "node": ">=18.0.0" - }, - "pnpm": { - "patchedDependencies": { - "@changesets/assemble-release-plan@5.2.2": "patches/@changesets__assemble-release-plan@5.2.2.patch" - } } } diff --git a/patches/@changesets__assemble-release-plan@5.2.2.patch b/patches/@changesets__assemble-release-plan@5.2.2.patch deleted file mode 100644 index de028c040a4..00000000000 --- a/patches/@changesets__assemble-release-plan@5.2.2.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff --git a/dist/assemble-release-plan.cjs.dev.js b/dist/assemble-release-plan.cjs.dev.js -index 3a37c62c975518f975c22e1b4b3974d9b325a5da..63e91f23a79765dfe42ebccabe1187d8a046936d 100644 ---- a/dist/assemble-release-plan.cjs.dev.js -+++ b/dist/assemble-release-plan.cjs.dev.js -@@ -251,7 +251,7 @@ function shouldBumpMajor({ - // we check if it is a peerDependency because if it is, our dependent bump type might need to be major. - return depType === "peerDependencies" && nextRelease.type !== "none" && nextRelease.type !== "patch" && ( // 1. If onlyUpdatePeerDependentsWhenOutOfRange set to true, bump major if the version is leaving the range. - // 2. If onlyUpdatePeerDependentsWhenOutOfRange set to false, bump major regardless whether or not the version is leaving the range. -- !onlyUpdatePeerDependentsWhenOutOfRange || !semver__default['default'].satisfies(incrementVersion(nextRelease, preInfo), versionRange)) && ( // bump major only if the dependent doesn't already has a major release. -+ !onlyUpdatePeerDependentsWhenOutOfRange || !semver__default['default'].satisfies(incrementVersion(nextRelease, preInfo), versionRange, { includePrerelease: true })) && ( // bump major only if the dependent doesn't already has a major release. - !releases.has(dependent) || releases.has(dependent) && releases.get(dependent).type !== "major"); - } - -diff --git a/dist/assemble-release-plan.cjs.prod.js b/dist/assemble-release-plan.cjs.prod.js -index 87b4c104bf3fa53ba498ced6f81eda0ed4c86436..004a81572079d2c8fd1fdc74b00cc063be07a4ef 100644 ---- a/dist/assemble-release-plan.cjs.prod.js -+++ b/dist/assemble-release-plan.cjs.prod.js -@@ -130,7 +130,7 @@ function getDependencyVersionRanges(dependentPkgJSON, dependencyRelease) { - } - - function shouldBumpMajor({dependent: dependent, depType: depType, versionRange: versionRange, releases: releases, nextRelease: nextRelease, preInfo: preInfo, onlyUpdatePeerDependentsWhenOutOfRange: onlyUpdatePeerDependentsWhenOutOfRange}) { -- return "peerDependencies" === depType && "none" !== nextRelease.type && "patch" !== nextRelease.type && (!onlyUpdatePeerDependentsWhenOutOfRange || !semver__default.default.satisfies(incrementVersion(nextRelease, preInfo), versionRange)) && (!releases.has(dependent) || releases.has(dependent) && "major" !== releases.get(dependent).type); -+ return "peerDependencies" === depType && "none" !== nextRelease.type && "patch" !== nextRelease.type && (!onlyUpdatePeerDependentsWhenOutOfRange || !semver__default.default.satisfies(incrementVersion(nextRelease, preInfo), versionRange, { includePrerelease: true })) && (!releases.has(dependent) || releases.has(dependent) && "major" !== releases.get(dependent).type); - } - - function flattenReleases(changesets, packagesByName, ignoredPackages) { -diff --git a/dist/assemble-release-plan.esm.js b/dist/assemble-release-plan.esm.js -index c29c008dd709f07cabcb07feff86012c35a01ce5..c27ae1f124702fb278a3e62181c610d4d8402988 100644 ---- a/dist/assemble-release-plan.esm.js -+++ b/dist/assemble-release-plan.esm.js -@@ -243,7 +243,7 @@ function shouldBumpMajor({ - // we check if it is a peerDependency because if it is, our dependent bump type might need to be major. - return depType === "peerDependencies" && nextRelease.type !== "none" && nextRelease.type !== "patch" && ( // 1. If onlyUpdatePeerDependentsWhenOutOfRange set to true, bump major if the version is leaving the range. - // 2. If onlyUpdatePeerDependentsWhenOutOfRange set to false, bump major regardless whether or not the version is leaving the range. -- !onlyUpdatePeerDependentsWhenOutOfRange || !semver.satisfies(incrementVersion(nextRelease, preInfo), versionRange)) && ( // bump major only if the dependent doesn't already has a major release. -+ !onlyUpdatePeerDependentsWhenOutOfRange || !semver.satisfies(incrementVersion(nextRelease, preInfo), versionRange, { includePrerelease: true })) && ( // bump major only if the dependent doesn't already has a major release. - !releases.has(dependent) || releases.has(dependent) && releases.get(dependent).type !== "major"); - } - diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 222c070bb3b..3d56b9c89fc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,11 +7,6 @@ settings: overrides: jsdom: ^22.0.0 -patchedDependencies: - '@changesets/assemble-release-plan@5.2.2': - hash: pkun533jr2p6iwxlsqfp6xfmxe - path: patches/@changesets__assemble-release-plan@5.2.2.patch - importers: .: @@ -34,9 +29,6 @@ importers: '@babel/preset-typescript': specifier: ^7.21.5 version: 7.21.5(@babel/core@7.23.7) - '@changesets/cli': - specifier: ^2.25.2 - version: 2.25.2 '@cloudflare/kv-asset-handler': specifier: ^0.3.0 version: 0.3.4 @@ -291,7 +283,7 @@ importers: version: 4.1.1 vite: specifier: ^6.0.0 - version: 6.0.6(@types/node@18.17.1) + version: 6.0.6 vite-tsconfig-paths: specifier: ^4.2.2 version: 4.3.1(typescript@5.1.6)(vite@6.0.6) @@ -300,7 +292,7 @@ importers: version: 7.0.1 wrangler: specifier: ^3.72.3 - version: 3.74.0(@cloudflare/workers-types@4.20240208.0) + version: 3.74.0 integration: dependencies: @@ -2747,109 +2739,12 @@ packages: /@bcoe/v8-coverage@0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - /@changesets/apply-release-plan@6.1.2: - resolution: {integrity: sha512-H8TV9E/WtJsDfoDVbrDGPXmkZFSv7W2KLqp4xX4MKZXshb0hsQZUNowUa8pnus9qb/5OZrFFRVsUsDCVHNW/AQ==} - dependencies: - '@babel/runtime': 7.23.9 - '@changesets/config': 2.2.0 - '@changesets/get-version-range-type': 0.3.2 - '@changesets/git': 1.5.0 - '@changesets/types': 5.2.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.1 - resolve-from: 5.0.0 - semver: 5.7.1 - dev: false - - /@changesets/assemble-release-plan@5.2.2(patch_hash=pkun533jr2p6iwxlsqfp6xfmxe): - resolution: {integrity: sha512-B1qxErQd85AeZgZFZw2bDKyOfdXHhG+X5S+W3Da2yCem8l/pRy4G/S7iOpEcMwg6lH8q2ZhgbZZwZ817D+aLuQ==} - dependencies: - '@babel/runtime': 7.23.9 - '@changesets/errors': 0.1.4 - '@changesets/get-dependents-graph': 1.3.4 - '@changesets/types': 5.2.0 - '@manypkg/get-packages': 1.1.3 - semver: 5.7.1 - dev: false - patched: true - - /@changesets/changelog-git@0.1.13: - resolution: {integrity: sha512-zvJ50Q+EUALzeawAxax6nF2WIcSsC5PwbuLeWkckS8ulWnuPYx8Fn/Sjd3rF46OzeKA8t30loYYV6TIzp4DIdg==} - dependencies: - '@changesets/types': 5.2.0 - dev: false - - /@changesets/cli@2.25.2: - resolution: {integrity: sha512-ACScBJXI3kRyMd2R8n8SzfttDHi4tmKSwVwXBazJOylQItSRSF4cGmej2E4FVf/eNfGy6THkL9GzAahU9ErZrA==} - hasBin: true - dependencies: - '@babel/runtime': 7.23.9 - '@changesets/apply-release-plan': 6.1.2 - '@changesets/assemble-release-plan': 5.2.2(patch_hash=pkun533jr2p6iwxlsqfp6xfmxe) - '@changesets/changelog-git': 0.1.13 - '@changesets/config': 2.2.0 - '@changesets/errors': 0.1.4 - '@changesets/get-dependents-graph': 1.3.4 - '@changesets/get-release-plan': 3.0.15 - '@changesets/git': 1.5.0 - '@changesets/logger': 0.0.5 - '@changesets/pre': 1.0.13 - '@changesets/read': 0.5.8 - '@changesets/types': 5.2.0 - '@changesets/write': 0.2.2 - '@manypkg/get-packages': 1.1.3 - '@types/is-ci': 3.0.0 - '@types/semver': 6.2.3 - ansi-colors: 4.1.3 - chalk: 2.4.2 - enquirer: 2.3.6 - external-editor: 3.1.0 - fs-extra: 7.0.1 - human-id: 1.0.2 - is-ci: 3.0.1 - meow: 6.1.1 - outdent: 0.5.0 - p-limit: 2.3.0 - preferred-pm: 3.0.3 - resolve-from: 5.0.0 - semver: 5.7.1 - spawndamnit: 2.0.0 - term-size: 2.2.1 - tty-table: 4.1.6 - dev: false - - /@changesets/config@2.2.0: - resolution: {integrity: sha512-GGaokp3nm5FEDk/Fv2PCRcQCOxGKKPRZ7prcMqxEr7VSsG75MnChQE8plaW1k6V8L2bJE+jZWiRm19LbnproOw==} - dependencies: - '@changesets/errors': 0.1.4 - '@changesets/get-dependents-graph': 1.3.4 - '@changesets/logger': 0.0.5 - '@changesets/types': 5.2.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 - micromatch: 4.0.5 - dev: false - /@changesets/errors@0.1.4: resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==} dependencies: extendable-error: 0.1.7 dev: false - /@changesets/get-dependents-graph@1.3.4: - resolution: {integrity: sha512-+C4AOrrFY146ydrgKOo5vTZfj7vetNu1tWshOID+UjPUU9afYGDXI8yLnAeib1ffeBXV3TuGVcyphKpJ3cKe+A==} - dependencies: - '@changesets/types': 5.2.0 - '@manypkg/get-packages': 1.1.3 - chalk: 2.4.2 - fs-extra: 7.0.1 - semver: 5.7.1 - dev: false - /@changesets/get-github-info@0.5.1: resolution: {integrity: sha512-w2yl3AuG+hFuEEmT6j1zDlg7GQLM/J2UxTmk0uJBMdRqHni4zXGe/vUlPfLom5KfX3cRfHc0hzGvloDPjWFNZw==} dependencies: @@ -2859,69 +2754,6 @@ packages: - encoding dev: false - /@changesets/get-release-plan@3.0.15: - resolution: {integrity: sha512-W1tFwxE178/en+zSj/Nqbc3mvz88mcdqUMJhRzN1jDYqN3QI4ifVaRF9mcWUU+KI0gyYEtYR65tour690PqTcA==} - dependencies: - '@babel/runtime': 7.23.9 - '@changesets/assemble-release-plan': 5.2.2(patch_hash=pkun533jr2p6iwxlsqfp6xfmxe) - '@changesets/config': 2.2.0 - '@changesets/pre': 1.0.13 - '@changesets/read': 0.5.8 - '@changesets/types': 5.2.0 - '@manypkg/get-packages': 1.1.3 - dev: false - - /@changesets/get-version-range-type@0.3.2: - resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==} - dev: false - - /@changesets/git@1.5.0: - resolution: {integrity: sha512-Xo8AT2G7rQJSwV87c8PwMm6BAc98BnufRMsML7m7Iw8Or18WFvFmxqG5aOL5PBvhgq9KrKvaeIBNIymracSuHg==} - dependencies: - '@babel/runtime': 7.23.9 - '@changesets/errors': 0.1.4 - '@changesets/types': 5.2.0 - '@manypkg/get-packages': 1.1.3 - is-subdir: 1.2.0 - spawndamnit: 2.0.0 - dev: false - - /@changesets/logger@0.0.5: - resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==} - dependencies: - chalk: 2.4.2 - dev: false - - /@changesets/parse@0.3.15: - resolution: {integrity: sha512-3eDVqVuBtp63i+BxEWHPFj2P1s3syk0PTrk2d94W9JD30iG+OER0Y6n65TeLlY8T2yB9Fvj6Ev5Gg0+cKe/ZUA==} - dependencies: - '@changesets/types': 5.2.0 - js-yaml: 3.14.1 - dev: false - - /@changesets/pre@1.0.13: - resolution: {integrity: sha512-jrZc766+kGZHDukjKhpBXhBJjVQMied4Fu076y9guY1D3H622NOw8AQaLV3oQsDtKBTrT2AUFjt9Z2Y9Qx+GfA==} - dependencies: - '@babel/runtime': 7.23.9 - '@changesets/errors': 0.1.4 - '@changesets/types': 5.2.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 - dev: false - - /@changesets/read@0.5.8: - resolution: {integrity: sha512-eYaNfxemgX7f7ELC58e7yqQICW5FB7V+bd1lKt7g57mxUrTveYME+JPaBPpYx02nP53XI6CQp6YxnR9NfmFPKw==} - dependencies: - '@babel/runtime': 7.23.9 - '@changesets/git': 1.5.0 - '@changesets/logger': 0.0.5 - '@changesets/parse': 0.3.15 - '@changesets/types': 5.2.0 - chalk: 2.4.2 - fs-extra: 7.0.1 - p-filter: 2.1.0 - dev: false - /@changesets/types@4.1.0: resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} dev: false @@ -2930,16 +2762,6 @@ packages: resolution: {integrity: sha512-km/66KOqJC+eicZXsm2oq8A8bVTSpkZJ60iPV/Nl5Z5c7p9kk8xxh6XGRTlnludHldxOOfudhnDN2qPxtHmXzA==} dev: false - /@changesets/write@0.2.2: - resolution: {integrity: sha512-kCYNHyF3xaId1Q/QE+DF3UTrHTyg3Cj/f++T8S8/EkC+jh1uK2LFnM9h+EzV+fsmnZDrs7r0J4LLpeI/VWC5Hg==} - dependencies: - '@babel/runtime': 7.23.9 - '@changesets/types': 5.2.0 - fs-extra: 7.0.1 - human-id: 1.0.2 - prettier: 2.8.1 - dev: false - /@cloudflare/kv-asset-handler@0.1.3: resolution: {integrity: sha512-FNcunDuTmEfQTLRLtA6zz+buIXUHj1soPvSWzzQFBC+n2lsy+CGf/NIrR3SEPCmsVNQj70/Jx2lViCpq+09YpQ==} dependencies: @@ -5063,12 +4885,6 @@ packages: /@types/http-errors@2.0.4: resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - /@types/is-ci@3.0.0: - resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==} - dependencies: - ci-info: 3.3.2 - dev: false - /@types/istanbul-lib-coverage@2.0.3: resolution: {integrity: sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==} @@ -5161,10 +4977,6 @@ packages: /@types/minimatch@3.0.5: resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - /@types/minimist@1.2.2: - resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} - dev: false - /@types/morgan@1.9.9: resolution: {integrity: sha512-iRYSDKVaC6FkGSpEVVIvrRGw0DfJMiQzIn3qr2G5B3C//AWkulhXgaBd7tS9/J79GWSYMTHGs7PfI5b3Y8m+RQ==} dependencies: @@ -5196,10 +5008,6 @@ packages: undici-types: 5.26.5 dev: true - /@types/normalize-package-data@2.4.1: - resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} - dev: false - /@types/npmcli__package-json@4.0.4: resolution: {integrity: sha512-6QjlFUSHBmZJWuC08bz1ZCx6tm4t+7+OJXAdvM6tL2pI7n6Bh5SIp/YxQvnOLFf8MzCXs2ijyFgrzaiu1UFBGA==} dev: true @@ -5252,10 +5060,6 @@ packages: /@types/scheduler@0.16.2: resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} - /@types/semver@6.2.3: - resolution: {integrity: sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A==} - dev: false - /@types/semver@7.3.13: resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} dev: false @@ -6102,11 +5906,6 @@ packages: is-shared-array-buffer: 1.0.2 dev: false - /arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - dev: false - /as-table@1.0.55: resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} dependencies: @@ -6324,13 +6123,6 @@ packages: resolution: {integrity: sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==} dev: false - /better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} - dependencies: - is-windows: 1.0.2 - dev: false - /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} @@ -6393,12 +6185,6 @@ packages: dependencies: fill-range: 7.0.1 - /breakword@1.0.5: - resolution: {integrity: sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==} - dependencies: - wcwidth: 1.0.1 - dev: false - /browserify-zlib@0.1.4: resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==} dependencies: @@ -6493,15 +6279,6 @@ packages: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} - /camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - map-obj: 4.3.0 - quick-lru: 4.0.1 - dev: false - /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -6599,6 +6376,7 @@ packages: /chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: true /check-more-types@2.24.0: resolution: {integrity: sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==} @@ -6706,14 +6484,6 @@ packages: engines: {node: '>= 10'} dev: true - /cliui@6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 - dev: false - /cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: @@ -6921,14 +6691,6 @@ packages: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} dev: false - /cross-spawn@5.1.0: - resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} - dependencies: - lru-cache: 4.1.5 - shebang-command: 1.2.0 - which: 1.3.1 - dev: false - /cross-spawn@6.0.5: resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} engines: {node: '>=4.8'} @@ -6997,28 +6759,6 @@ packages: /csstype@3.1.1: resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} - /csv-generate@3.4.3: - resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} - dev: false - - /csv-parse@4.16.3: - resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} - dev: false - - /csv-stringify@5.6.5: - resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} - dev: false - - /csv@5.5.3: - resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} - engines: {node: '>= 0.1.90'} - dependencies: - csv-generate: 3.4.3 - csv-parse: 4.16.3 - csv-stringify: 5.6.5 - stream-transform: 2.1.3 - dev: false - /cypress@9.6.0: resolution: {integrity: sha512-nNwt9eBQmSENamwa8LxvggXksfyzpyYaQ7lNBLgks3XZ6dPE/6BCQFBzeAyAPt/bNXfH3tKPkAyhiAZPYkWoEg==} engines: {node: '>=12.0.0'} @@ -7147,19 +6887,6 @@ packages: ms: 2.1.3 supports-color: 8.1.1 - /decamelize-keys@1.1.0: - resolution: {integrity: sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==} - engines: {node: '>=0.10.0'} - dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - dev: false - - /decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - dev: false - /decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} dev: true @@ -7286,11 +7013,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'} - dev: false - /detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} @@ -8409,6 +8131,7 @@ packages: chardet: 0.7.0 iconv-lite: 0.4.24 tmp: 0.0.33 + dev: true /extract-zip@2.0.1(supports-color@8.1.1): resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} @@ -8530,13 +8253,6 @@ packages: locate-path: 6.0.0 path-exists: 4.0.0 - /find-yarn-workspace-root2@1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} - dependencies: - micromatch: 4.0.5 - pkg-dir: 4.2.0 - dev: false - /flat-cache@3.0.4: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -8912,10 +8628,6 @@ packages: /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - /grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - dev: false - /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} @@ -8936,11 +8648,6 @@ packages: through2: 2.0.5 dev: false - /hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - dev: false - /has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: false @@ -9126,10 +8833,6 @@ packages: - supports-color dev: true - /human-id@1.0.2: - resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} - dev: false - /human-signals@1.1.1: resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} engines: {node: '>=8.12.0'} @@ -9524,11 +9227,6 @@ packages: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} - /is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - dev: false - /is-plain-obj@3.0.0: resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} engines: {node: '>=10'} @@ -9600,13 +9298,6 @@ packages: has-tostringtag: 1.0.2 dev: false - /is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} - dependencies: - better-path-resolve: 1.0.0 - dev: false - /is-symbol@1.0.4: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} @@ -10482,16 +10173,6 @@ packages: strip-bom: 3.0.0 dev: false - /load-yaml-file@0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} - engines: {node: '>=6'} - dependencies: - graceful-fs: 4.2.11 - js-yaml: 3.14.1 - pify: 4.0.1 - strip-bom: 3.0.0 - dev: false - /loader-utils@3.2.1: resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} engines: {node: '>= 12.13.0'} @@ -10536,10 +10217,6 @@ packages: resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} dev: false - /lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - dev: false - /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -10595,13 +10272,6 @@ packages: resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} engines: {node: 14 || >=16.14} - /lru-cache@4.1.5: - resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} - dependencies: - pseudomap: 1.0.2 - yallist: 2.1.2 - dev: false - /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: @@ -10645,16 +10315,6 @@ packages: dependencies: tmpl: 1.0.5 - /map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - dev: false - - /map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - dev: false - /map-visit@1.0.0: resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} engines: {node: '>=0.10.0'} @@ -11002,23 +10662,6 @@ packages: engines: {node: '>= 0.10.0'} dev: false - /meow@6.1.1: - resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} - engines: {node: '>=8'} - dependencies: - '@types/minimist': 1.2.2 - camelcase-keys: 6.2.2 - decamelize-keys: 1.1.0 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 2.5.0 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.13.1 - yargs-parser: 18.1.3 - dev: false - /merge-descriptors@1.0.3: resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} @@ -11722,15 +11365,6 @@ packages: dependencies: brace-expansion: 2.0.1 - /minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - dev: false - /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: false @@ -11788,11 +11422,6 @@ packages: is-extendable: 0.1.1 dev: false - /mixme@0.5.4: - resolution: {integrity: sha512-3KYa4m4Vlqx98GPdOHghxSdNtTvcP8E0kkaJ5Dlh+h2DRzF7zpuVVcA8B0QpKd11YJeP9QQ7ASkKzOeu195Wzw==} - engines: {node: '>= 8.0.0'} - dev: false - /mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} dev: false @@ -12208,15 +11837,12 @@ packages: /os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} + dev: true /ospath@1.2.2: resolution: {integrity: sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==} dev: false - /outdent@0.5.0: - resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} - dev: false - /outdent@0.8.0: resolution: {integrity: sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==} @@ -12224,13 +11850,6 @@ packages: resolution: {integrity: sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==} dev: true - /p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} - dependencies: - p-map: 2.1.0 - dev: false - /p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -12255,11 +11874,6 @@ packages: dependencies: p-limit: 3.1.0 - /p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - dev: false - /p-map@4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} @@ -12629,16 +12243,6 @@ packages: picocolors: 1.1.1 source-map-js: 1.2.1 - /preferred-pm@3.0.3: - resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} - engines: {node: '>=10'} - dependencies: - find-up: 5.0.0 - find-yarn-workspace-root2: 1.2.16 - path-exists: 4.0.0 - which-pm: 2.0.0 - dev: false - /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -12811,10 +12415,6 @@ packages: resolution: {integrity: sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==} dev: false - /pseudomap@1.0.2: - resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} - dev: false - /psl@1.8.0: resolution: {integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==} @@ -12865,11 +12465,6 @@ packages: /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - /quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - dev: false - /radio-symbol@2.0.0: resolution: {integrity: sha512-fpuWhwGD4XG1BfUWKXhCqdguCXzGi/DDb6RzmAGZo9R75enjlx0l+ZhHF93KNG7iNpT0Vi7wEqbf8ZErbe+JtQ==} engines: {node: '>=0.10.0'} @@ -12961,15 +12556,6 @@ packages: dependencies: pify: 2.3.0 - /read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 - dev: false - /read-pkg@3.0.0: resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} engines: {node: '>=4'} @@ -12979,16 +12565,6 @@ packages: path-type: 3.0.0 dev: false - /read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - dependencies: - '@types/normalize-package-data': 2.4.1 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 - dev: false - /read-yaml-file@1.1.0: resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} engines: {node: '>=6'} @@ -13253,10 +12829,6 @@ packages: /require-like@0.1.2: resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} - /require-main-filename@2.0.0: - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - dev: false - /requireindex@1.2.0: resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} engines: {node: '>=0.10.5'} @@ -13538,10 +13110,6 @@ packages: transitivePeerDependencies: - supports-color - /set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - dev: false - /set-cookie-parser@2.6.0: resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} @@ -13689,19 +13257,6 @@ packages: is-fullwidth-code-point: 3.0.0 dev: false - /smartwrap@2.0.2: - resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} - engines: {node: '>=6'} - hasBin: true - dependencies: - array.prototype.flat: 1.3.2 - breakword: 1.0.5 - grapheme-splitter: 1.0.4 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - yargs: 15.4.1 - dev: false - /source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -13740,13 +13295,6 @@ packages: resolution: {integrity: sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==} dev: false - /spawndamnit@2.0.0: - resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} - dependencies: - cross-spawn: 5.1.0 - signal-exit: 3.0.7 - dev: false - /spdx-correct@3.1.1: resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} dependencies: @@ -13838,12 +13386,6 @@ packages: resolution: {integrity: sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==} dev: false - /stream-transform@2.1.3: - resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} - dependencies: - mixme: 0.5.4 - dev: false - /strict-event-emitter@0.2.8: resolution: {integrity: sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==} dependencies: @@ -14156,11 +13698,6 @@ packages: yallist: 4.0.0 dev: false - /term-size@2.2.1: - resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} - engines: {node: '>=8'} - dev: false - /terminal-paginator@2.0.2: resolution: {integrity: sha512-IZMT5ECF9p4s+sNCV8uvZSW9E1+9zy9Ji9xz2oee8Jfo7hUFpauyjxkhfRcIH6Lu3Wdepv5D1kVRc8Hx74/LfQ==} engines: {node: '>=0.10.0'} @@ -14222,6 +13759,7 @@ packages: engines: {node: '>=0.6.0'} dependencies: os-tmpdir: 1.0.2 + dev: true /tmp@0.2.1: resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} @@ -14309,11 +13847,6 @@ packages: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} dev: false - /trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} - dev: false - /trough@2.0.2: resolution: {integrity: sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==} dev: false @@ -14373,20 +13906,6 @@ packages: typescript: 5.1.6 dev: false - /tty-table@4.1.6: - resolution: {integrity: sha512-kRj5CBzOrakV4VRRY5kUWbNYvo/FpOsz65DzI5op9P+cHov3+IqPbo1JE1ZnQGkHdZgNFDsrEjrfqqy/Ply9fw==} - engines: {node: '>=8.0.0'} - hasBin: true - dependencies: - chalk: 4.1.2 - csv: 5.5.3 - kleur: 4.1.4 - smartwrap: 2.0.2 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - yargs: 17.5.1 - dev: false - /tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} dependencies: @@ -14411,11 +13930,6 @@ packages: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} - /type-fest@0.13.1: - resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} - engines: {node: '>=10'} - dev: false - /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -14424,16 +13938,6 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - /type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - dev: false - - /type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - dev: false - /type-fest@2.19.0: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} @@ -14969,7 +14473,7 @@ packages: debug: 4.4.0(supports-color@8.1.1) globrex: 0.1.2 tsconfck: 3.0.2(typescript@5.1.6) - vite: 6.0.6(@types/node@18.17.1) + vite: 6.0.6 transitivePeerDependencies: - supports-color - typescript @@ -15009,6 +14513,52 @@ packages: optionalDependencies: fsevents: 2.3.3 + /vite@6.0.6: + resolution: {integrity: sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + dependencies: + esbuild: 0.24.2 + postcss: 8.4.49 + rollup: 4.29.1 + optionalDependencies: + fsevents: 2.3.3 + /vite@6.0.6(@types/node@18.17.1): resolution: {integrity: sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -15175,18 +14725,6 @@ packages: is-weakset: 2.0.2 dev: false - /which-module@2.0.0: - resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} - dev: false - - /which-pm@2.0.0: - resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} - engines: {node: '>=8.15'} - dependencies: - load-yaml-file: 0.2.0 - path-exists: 4.0.0 - dev: false - /which-typed-array@1.1.14: resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==} engines: {node: '>= 0.4'} @@ -15240,6 +14778,42 @@ packages: '@cloudflare/workerd-linux-arm64': 1.20240821.1 '@cloudflare/workerd-windows-64': 1.20240821.1 + /wrangler@3.74.0: + resolution: {integrity: sha512-wmtb+tQrgb61yN+Wa2JM98G1Gt4tKFRYPw6xwuyzUcA74L+Dum1A13w22/manl9Gq1jA3dPn+7UzT5sYEVHRog==} + engines: {node: '>=16.17.0'} + hasBin: true + peerDependencies: + '@cloudflare/workers-types': ^4.20240821.1 + peerDependenciesMeta: + '@cloudflare/workers-types': + optional: true + dependencies: + '@cloudflare/kv-asset-handler': 0.3.4 + '@cloudflare/workers-shared': 0.4.1 + '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) + '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) + blake3-wasm: 2.1.5 + chokidar: 3.6.0 + date-fns: 3.6.0 + esbuild: 0.17.19 + miniflare: 3.20240821.1 + nanoid: 3.3.7 + path-to-regexp: 6.2.1 + resolve: 1.22.8 + resolve.exports: 2.0.2 + selfsigned: 2.4.1 + source-map: 0.6.1 + unenv: /unenv-nightly@2.0.0-1724863496.70db6f1 + workerd: 1.20240821.1 + xxhash-wasm: 1.0.2 + optionalDependencies: + fsevents: 2.3.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + /wrangler@3.74.0(@cloudflare/workers-types@4.20240208.0): resolution: {integrity: sha512-wmtb+tQrgb61yN+Wa2JM98G1Gt4tKFRYPw6xwuyzUcA74L+Dum1A13w22/manl9Gq1jA3dPn+7UzT5sYEVHRog==} engines: {node: '>=16.17.0'} @@ -15352,18 +14926,10 @@ packages: /xxhash-wasm@1.0.2: resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} - /y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - dev: false - /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - /yallist@2.1.2: - resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} - dev: false - /yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} @@ -15374,14 +14940,6 @@ packages: resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} engines: {node: '>= 14'} - /yargs-parser@18.1.3: - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} - engines: {node: '>=6'} - dependencies: - camelcase: 5.3.1 - decamelize: 1.2.0 - dev: false - /yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} @@ -15391,23 +14949,6 @@ packages: resolution: {integrity: sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==} engines: {node: '>=12'} - /yargs@15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} - engines: {node: '>=8'} - dependencies: - cliui: 6.0.0 - decamelize: 1.2.0 - find-up: 4.1.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - require-main-filename: 2.0.0 - set-blocking: 2.0.0 - string-width: 4.2.3 - which-module: 2.0.0 - y18n: 4.0.3 - yargs-parser: 18.1.3 - dev: false - /yargs@16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} engines: {node: '>=10'} diff --git a/scripts/changesets-release.sh b/scripts/changesets-release.sh deleted file mode 100755 index 4ca29c91989..00000000000 --- a/scripts/changesets-release.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -PACKAGE="./packages/remix/package.json" -IS_PRERELEASE=$(node -e "console.log(/-pre/.test(require('${PACKAGE}').version))") - -# Can only provide a custom --tag when not in prerelease mode -# The prerelease tags come from the `pre.json` "tag" field -if [ ${IS_PRERELEASE} == "true" ]; then - echo "Publishing with default changesets tag (pre-release)" - pnpm exec changeset publish -else - # Once we start v3 releases we'll need to use this - # echo "Publishing with version-2 tag (stable release)" - # pnpm exec changeset publish --tag version-2 - - # But for now we can continue with using the `latest` - # tag which is the default - pnpm exec changeset publish -fi diff --git a/scripts/compile-release-notes.mjs b/scripts/compile-release-notes.mjs deleted file mode 100644 index 31606feea30..00000000000 --- a/scripts/compile-release-notes.mjs +++ /dev/null @@ -1,167 +0,0 @@ -import * as fs from "node:fs"; -import path from "node:path"; -import * as url from "node:url"; -import remarkParse from "remark-parse"; -import remarkGfm from "remark-gfm"; -import rehypeStringify from "remark-stringify"; -import remarkFrontmatter from "remark-frontmatter"; -import { unified } from "unified"; -import parseFrontMatter from "front-matter"; - -// Wrote this quick and dirty, gets the job done, plz don't judge me. The idea -// is not to auto-generate release notes but to quickly compile all changesets -// into a single document from which we can easily reference changes to write -// the release notes. Much faster than going back and forth between files! The -// generated markdown file should be in .gitignore, as it's only there as a -// reference. - -const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); -const rootDir = path.join(__dirname, ".."); -const changesetsDir = path.join(rootDir, ".changeset"); -const releaseNotesPath = path.join(rootDir, "RELEASENOTES.md"); - -main(); - -async function main() { - let changesets = getChangesetPaths(); - /** @type {ReleaseNotes[]} */ - let majorReleaseNotes = []; - /** @type {ReleaseNotes[]} */ - let minorReleaseNotes = []; - /** @type {ReleaseNotes[]} */ - let patchReleaseNotes = []; - - /** @type {import('unified').Processor} */ - let markdownProcessor = await unified() - .use({ - settings: { - fences: true, - listItemIndent: "one", - tightDefinitions: true, - }, - }) - // We have multiple versions of remark-parse, TS resolves the wrong one - // @ts-expect-error - .use(remarkParse) - .use(remarkGfm) - .use(remarkFrontmatter, ["yaml", "toml"]) - // same problem - // @ts-expect-error - .use(rehypeStringify, { - bullet: "-", - emphasis: "_", - listItemIndent: "one", - }); - - for (let changeset of changesets) { - let fileContents = fs.readFileSync(changeset, "utf-8"); - let markdown = await markdownProcessor.process(fileContents); - - /** @type {{attributes: unknown; body: string}} */ - let { attributes, body } = parseFrontMatter(markdown.toString()); - if (!isPlainObject(attributes)) { - // ๐Ÿคทโ€โ™€๏ธ - continue; - } - - let affectedPackages = Object.keys(attributes); - let releaseTypes = Object.values(attributes); - if (releaseTypes.includes("major")) { - majorReleaseNotes.push({ affectedPackages, body }); - } else if (releaseTypes.includes("minor")) { - minorReleaseNotes.push({ affectedPackages, body }); - } else { - patchReleaseNotes.push({ affectedPackages, body }); - } - } - - let i = 0; - let fileContents = ""; - for (let releaseNotes of [ - majorReleaseNotes, - minorReleaseNotes, - patchReleaseNotes, - ]) { - if (releaseNotes.length === 0) { - i++; - continue; - } - - let heading = - "## " + - (i === 0 - ? "Major Changes" - : i === 1 - ? "Minor Changes" - : "Patch Changes") + - "\n"; - let body = ""; - /** @type {string[]} */ - let affectedPackages = []; - for (let note of releaseNotes) { - affectedPackages = uniq(affectedPackages, note.affectedPackages); - body += `${note.body - .split("\n") - .filter(Boolean) - .map(bulletize) - .join("\n")}\n`; - } - body = `- Affected packages: \n - ${affectedPackages - .map((p) => "`" + p + "`") - .join("\n - ")}\n${body}`; - fileContents += heading + "\n" + body + "\n"; - i++; - } - - await fs.promises.writeFile(releaseNotesPath, fileContents.trim(), "utf-8"); - - console.log("โœ… Donezo"); -} - -/** - * @param {string} fileName - * @returns - */ -function isChangeset(fileName) { - return fileName.endsWith(".md") && path.basename(fileName) !== "README.md"; -} - -function getChangesetPaths() { - return fs - .readdirSync(changesetsDir) - .filter((fileName) => isChangeset(fileName)) - .map((fileName) => path.join(changesetsDir, fileName)); -} - -/** - * - * @param {unknown} obj - * @returns {obj is Record} - */ -function isPlainObject(obj) { - return !!obj && Object.prototype.toString.call(obj) === "[object Object]"; -} - -/** @typedef {{ affectedPackages: string[]; body: string }} ReleaseNotes */ - -/** - * @param {...any} arrays - * @returns - */ -function uniq(...arrays) { - return [...new Set(arrays.flat())]; -} - -/** - * @param {string} str - * @param {number} i - */ -function bulletize(str, i) { - if (i === 0) { - return "- " + str.trim().replace(/^- /, ""); - } - if (str.startsWith("- ")) { - return " " + str.trim(); - } - return " - " + str.trim(); -} diff --git a/scripts/find-release-from-changeset.js b/scripts/find-release-from-changeset.js deleted file mode 100644 index a499ec59e24..00000000000 --- a/scripts/find-release-from-changeset.js +++ /dev/null @@ -1,37 +0,0 @@ -/** - * - * @param {string | undefined} publishedPackages - * @param {string | undefined} packageVersionToFollow - * @returns {string | undefined} - */ -function findReleaseFromChangeset(publishedPackages, packageVersionToFollow) { - if (!publishedPackages) { - throw new Error("No published packages found"); - } - - let packages = JSON.parse(publishedPackages); - - if (!Array.isArray(packages)) { - throw new Error("Published packages is not an array"); - } - - /** @see https://github.com/changesets/action#outputs */ - /** @type { { name: string; version: string }[] } */ - let typed = packages.filter((pkg) => "name" in pkg && "version" in pkg); - - let found = typed.find((pkg) => pkg.name === packageVersionToFollow); - - if (!found) { - throw new Error( - `${packageVersionToFollow} was not found in the published packages` - ); - } - - console.log(found.version); - return found.version; -} - -findReleaseFromChangeset( - process.env.PUBLISHED_PACKAGES, - process.env.PACKAGE_VERSION_TO_FOLLOW -); diff --git a/scripts/patchup-version.mjs b/scripts/patchup-version.mjs deleted file mode 100644 index 2bb9b91eecc..00000000000 --- a/scripts/patchup-version.mjs +++ /dev/null @@ -1,126 +0,0 @@ -import { execSync, spawnSync } from "node:child_process"; -import * as fs from "node:fs"; -import path from "node:path"; -import * as url from "node:url"; -import { getPackagesSync } from "@manypkg/get-packages"; - -const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); -const rootDir = path.join(__dirname, ".."); - -Promise.all([writeRemixChangelog(), bumpPeerDepRanges()]).then(() => - console.log("---\n๐ŸŽ‰ Done!") -); - -/** - * Consider this scenario: - * 1. Run `pnpm changeset:version` to bump versions - * 2. Changesets sees that a package has a minor change - * 3. Because we release packages in lockstep, all packages get a minor update - * 4. `@remix-run/dev` has "peerDependencies": { "@remix-run/serve": "1.8.0" } - * 5. This dependency will now be out of range after the update - * 6. Changesets makes the safe bet and updates `@remix-run/dev` to 2.0.0 - * because it can't be sure this doesn't result in a breaking change - * 7. Because we release packages in lockstep, all packages get a major update - * - * In practice, this means any `minor` changeset will result in a major bump, - * which definitely isn't what we want. - * - * Instead, we relaxe the peer dependency range for internal packages. That way - * the update doesn't result in an out-of-range peer dependency, and all - * packages are bumped to the next minor release instead. - * - * Because changesets doesn't automatically bump peer dependencies with the - * relaxed range (which makes sense in some cases), this script does that for - * us. This makes the change safer because updating the leading dependency will - * result in a peer dependency warning if the user doesn't bump the peer - * dependency for some reason. - * - * Thanks to Mateusz Burzyล„ski for the original script - * Copyright (c) 2015 David Khourshid, MIT License - * @see https://github.com/statelyai/xstate/blob/fb4786b80786d8ff3d44dfa818097b219dab623c/scripts/bump-peer-dep-ranges.js - */ -async function bumpPeerDepRanges() { - let gitStatusResult = spawnSync("git", ["status", "--porcelain"]); - if (gitStatusResult.status !== 0) { - process.exit(gitStatusResult.status || undefined); - } - - let allPackages = getPackagesSync(rootDir).packages; - // let pkgChanges = new Map( - // gitStatusResult.stdout - // .toString() - // .trim() - // .split("\n") - // .filter((line) => /^\s*M\s+.*\/package.json/.test(line)) - // .map((line) => { - // /** - // * @type {string} - // * This will always be defined but TS doesn't know that - // * @ts-expect-error */ - // let gitPath = line.match(/[^\s]+package.json/)[0]; - // let fsPath = path.join(rootDir, gitPath); - // let packageJson = JSON.parse(fs.readFileSync(fsPath, "utf-8")); - // let previousPackageJsonResult = spawnSync("git", [ - // "show", - // `HEAD:${gitPath}`, - // ]); - - // if (previousPackageJsonResult.status !== 0) { - // process.exit(gitStatusResult.status || undefined); - // } - - // return [ - // packageJson.name, - // { - // path: fsPath, - // packageJson: packageJson, - // versionChanged: - // packageJson.version !== - // JSON.parse(previousPackageJsonResult.stdout.toString().trim()) - // .version, - // }, - // ]; - // }) - // ); - - for (let pkg of allPackages) { - let peerPkg = pkg.packageJson.name; - let peerPkgVersion = pkg.packageJson.version; - // let peerPkgChange = pkgChanges.get(peerPkg); - // if (!peerPkgChange || !peerPkgChange.versionChanged) { - // continue; - // } - - for (let dependentPkg of allPackages) { - let peerDeps = dependentPkg.packageJson.peerDependencies; - if (!peerDeps || !peerDeps[peerPkg]) { - continue; - } - let pkgJsonCopy = { ...dependentPkg.packageJson }; - // TS not smart enough to realize we checked this before copying the object - // @ts-expect-error - pkgJsonCopy.peerDependencies[peerPkg] = `^${peerPkgVersion}`; - - await fs.promises.writeFile( - path.join(dependentPkg.dir, "package.json"), - JSON.stringify(pkgJsonCopy, null, 2) + "\n", - "utf-8" - ); - } - } - - console.log("โœ… Bumped peer dependency ranges"); - - execSync("pnpm install --no-frozen-lockfile"); - console.log( - "โœ… Synced up `pnpm-lock.yaml` via `pnpm install --no-frozen-lockfile`" - ); -} - -async function writeRemixChangelog() { - let contents = - "# `remix`\n\nSee the `CHANGELOG.md` in individual Remix packages for all changes.\n"; - let filePath = path.join(rootDir, "packages", "remix", "CHANGELOG.md"); - await fs.promises.writeFile(filePath, contents, "utf-8"); - console.log("โœ… Wrote `remix` changelog"); -} diff --git a/scripts/remove-prerelease-changelogs.mjs b/scripts/remove-prerelease-changelogs.mjs deleted file mode 100644 index 61e658ed0af..00000000000 --- a/scripts/remove-prerelease-changelogs.mjs +++ /dev/null @@ -1,123 +0,0 @@ -import * as fs from "node:fs"; -import path from "node:path"; -import * as url from "node:url"; -import { getPackagesSync } from "@manypkg/get-packages"; -import remarkParse from "remark-parse"; -import remarkGfm from "remark-gfm"; -import rehypeStringify from "remark-stringify"; -import { unified } from "unified"; -import { remove } from "unist-util-remove"; - -const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); -const rootDir = path.join(__dirname, ".."); - -main(); - -async function main() { - if (isPrereleaseMode()) { - console.log("๐Ÿšซ Skipping changelog removal in prerelease mode"); - return; - } - await removePreReleaseChangelogs(); - console.log("โœ… Removed pre-release changelogs"); -} - -async function removePreReleaseChangelogs() { - let allPackages = getPackagesSync(rootDir).packages; - - /** @type {Promise[]} */ - let processes = []; - for (let pkg of allPackages) { - let changelogPath = path.join(pkg.dir, "CHANGELOG.md"); - if (!fs.existsSync(changelogPath)) { - continue; - } - let changelogFileContents = fs.readFileSync(changelogPath, "utf-8"); - processes.push( - (async () => { - let file = await unified() - // Since we have multiple versions of remark-parse, TS resolves to the - // wrong one - // @ts-expect-error - .use(remarkParse) - .use(remarkGfm) - .use(removePreReleaseSectionFromMarkdown) - // same problem - // @ts-expect-error - .use(rehypeStringify, { - bullet: "-", - emphasis: "_", - listItemIndent: "one", - }) - .process(changelogFileContents); - - let fileContents = file.toString(); - await fs.promises.writeFile(changelogPath, fileContents, "utf-8"); - })() - ); - } - return Promise.all(processes); -} - -function removePreReleaseSectionFromMarkdown() { - /** - * @param {import('./unist').RootNode} tree - * @returns {Promise} - */ - async function transformer(tree) { - remove( - tree, - /** - * @param {import("./unist").Node & { __REMOVE__?: boolean }} node - * @param {number | null | undefined} index - * @param {*} parent - */ - (node, index, parent) => { - if (node.__REMOVE__ === true) return true; - if ( - node.type === "heading" && - node.depth === 2 && - node.children[0].type === "text" && - isPrereleaseVersion(node.children[0].value) - ) { - if (index == null || parent == null) return false; - - let nextIdx = 1; - let nextNode = parent.children[index + 1]; - let found = false; - - /** @type {import('./unist').FlowNode[]} */ - while (nextNode && !found) { - if (nextNode.type === "heading" && nextNode.depth === 2) { - found = true; - break; - } - nextNode.__REMOVE__ = true; - nextNode = parent.children[++nextIdx + index]; - } - return true; - } - - return false; - } - ); - } - return transformer; -} - -/** - * @param {string} str - * @returns - */ -function isPrereleaseVersion(str) { - return /^(v?\d+\.){2}\d+-[a-z]+\.\d+$/i.test(str.trim()); -} - -function isPrereleaseMode() { - try { - let prereleaseFilePath = path.join(rootDir, ".changeset", "pre.json"); - return fs.existsSync(prereleaseFilePath); - } catch (err) { - return false; - } -}