# Remove package-lock.json and recreate it from package.json
# Note: It will fail if new generated package-lock.json will be same as old.

name: Recreate package-lock.json

on:
  workflow_dispatch:

jobs:
  create-release:
    name: Recreate package-lock.json
    runs-on: ubuntu-latest

    steps:

      # Checkout
      - name: Checkout
        uses: actions/checkout@v4
        with:
          token: ${{ secrets.PAT }}

      # Setup Node
      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: '20.x'
          registry-url: 'https://registry.npmjs.org'

      # NPM
      - name: NPM
        env:
          NODE_AUTH_TOKEN: ${{secrets.npm_token}}
        run: |
          rm package-lock.json
          npm cache clean --force
          npm install

      # Git - setup
      - name: Git - setup
        run: |
          git config user.email "83647248+github-actions[bot]@users.noreply.github.com"
          git config user.name "GitHub Actions"

      # Git - add files and commit changes
      - name: Git - add files and commit changes
        run: |
          git add package.json -f
          git add package-lock.json -f
          git commit -m "recreate package-lock.json"

      # Git - show differences
      - name: Git - show differences
        run: |
          git diff --staged

      # Git - push changes to repository
      - name: Git - push changes to repository
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          git push origin main && git push --tags
