# Unpublish from npm if Github Release is deleted or hidden.
# Requires: `NPM_TOKEN` as secret

name: npm:unpublish
env: 
  NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
on:
  release:
      types:
        - deleted
        - unpublished

jobs:
  npm-unpublish:
    runs-on: ubuntu-latest
    env: 
      REL_VERSION: ${{ github.event.release.tag_name }}
    permissions:
      contents: write
      id-token: write
    steps:
      - uses: actions/checkout@v4
      - name: Setup latest Node
        uses: actions/setup-node@v4
        with:
          node-version: 'latest'
          registry-url: 'https://registry.npmjs.org'

      - name: Unpublish from npm
        run: |
          num_version=$(echo "$REL_VERSION" | sed 's/[^0-9.]*//g')
          pkg_name="$(npm pkg get name | tr -d '"')"

          npm unpublish "$pkg_name"@"$num_version"
