{
  "branches": [
    "main",
    {
      "name": "dev",
      "prerelease": true
    }
  ],
  "plugins": [
    [
      "@semantic-release/commit-analyzer",
      {
        "preset": "conventionalcommits",
        "parserOpts": {
          "noteKeywords": [
            "BREAKING CHANGE",
            "BREAKING CHANGES",
            "BREAKING"
          ]
        },
        "releaseRules": [
          {
            "breaking": true,
            "release": "major"
          },
          {
            "type": "feat",
            "release": "minor"
          },
          {
            "type": "fix",
            "release": "patch"
          },
          {
            "type": "perf",
            "release": "patch"
          },
          {
            "type": "revert",
            "release": "patch"
          },
          {
            "type": "docs",
            "scope": "docs-*",
            "release": "minor"
          },
          {
            "type": "docs",
            "release": false
          },
          {
            "type": "style",
            "release": "patch"
          },
          {
            "type": "refactor",
            "release": "patch"
          },
          {
            "type": "test",
            "release": "patch"
          },
          {
            "type": "build",
            "release": "patch"
          },
          {
            "type": "ci",
            "scope": "ci-*",
            "release": "patch"
          },
          {
            "type": "chore",
            "release": false
          },
          {
            "type": "no-release",
            "release": false
          }
        ]
      }
    ],
    [
      "@semantic-release/release-notes-generator",
      {
        "preset": "conventionalcommits",
        "parserOpts": {
          "noteKeywords": [
            "BREAKING CHANGE",
            "BREAKING CHANGES",
            "BREAKING"
          ]
        },
        "writerOpts": {
          "commitsSort": [
            "subject",
            "scope"
          ]
        },
        "presetConfig": {
          "types": [
            {
              "type": "feat",
              "section": "🍕 Features"
            },
            {
              "type": "feature",
              "section": "🍕 Features"
            },
            {
              "type": "fix",
              "section": "🐛 Bug Fixes"
            },
            {
              "type": "perf",
              "section": "🔥 Performance Improvements"
            },
            {
              "type": "revert",
              "section": "⏩ Reverts"
            },
            {
              "type": "docs",
              "section": "📝 Documentation"
            },
            {
              "type": "style",
              "section": "🎨 Styles"
            },
            {
              "type": "refactor",
              "section": "🧑‍💻 Code Refactoring"
            },
            {
              "type": "test",
              "section": "✅ Tests"
            },
            {
              "type": "build",
              "section": "🤖 Build System"
            },
            {
              "type": "ci",
              "section": "🔁 Continuous Integration"
            }
          ]
        }
      }
    ],
    [
      "@semantic-release/changelog",
      {
        "changelogTitle": "# 📦 Changelog \n[![conventional commits](https://img.shields.io/badge/conventional%20commits-1.0.0-yellow.svg)](https://conventionalcommits.org)\n[![semantic versioning](https://img.shields.io/badge/semantic%20versioning-2.0.0-green.svg)](https://semver.org)\n> All notable changes to this project will be documented in this file"
      }
    ],
    [
      "@semantic-release/exec",
      {
        "prepareCmd": "./scripts/prepareCMD.sh ${nextRelease.version}",
        "publishCmd": "echo Publishing ${nextRelease.version}"
      }
    ],
    [
      "@semantic-release/github",
      {
        "addReleases": "bottom",
        "assets": [
          {
            "path": "./dist/**/*.{msi,deb,rpm,AppImage,dmg,zip}"
          }
        ]
      }
    ],
    [
      "@semantic-release/git",
      {
        "assets": [
          "package.json",
          "src-tauri/tauri.conf.json",
          "src-tauri/Cargo.toml",
          "LICENSE*",
          "CHANGELOG.md"
        ],
        "message": "chore(${nextRelease.type}): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
      }
    ]
  ]
}
