name: 🔄 Update @wxt-dev/browser
on:
  workflow_dispatch:
  schedule:
    - cron: '0 0 * * *' # Every day at midnight

permissions:
  contents: read

jobs:
  sync:
    name: 'Sync with @types/chrome'
    runs-on: ubuntu-latest
    if: github.repository_owner == 'wxt-dev'
    permissions:
      contents: write # Push version changes
      id-token: write # OIDC for NPM publishing
    steps:
      - name: Checkout
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
        with:
          ssh-key: ${{ secrets.DEPLOY_KEY }}

      - name: Setup
        uses: ./.github/actions/setup
        with:
          installArgs: --ignore-scripts

      - name: Generate Latest Code
        working-directory: packages/browser
        run: pnpm gen

      - name: Run Checks
        working-directory: packages/browser
        run: pnpm check

      - name: Commit Changes
        id: commit
        uses: stefanzweifel/git-auto-commit-action@04702edda442b2e678b25b537cec683a1493fcb9 # v7.1.0
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          commit_message: 'fix: Upgrade `@wxt-dev/browser` to latest `@types/chrome` version'

      - name: Publish to NPM
        if: steps.commit.outputs.changes_detected == 'true'
        working-directory: packages/browser
        run: |
          pnpm pack
          sudo npm i -g npm@latest
          /usr/local/bin/npm publish *.tgz
