{
  "tasks": {
    "compile": {
      "name": "compile",
      "category": "00.build",
      "description": "Only compile",
      "steps": [
        {
          "exec": "jsii --silence-warnings=reserved-word --no-fix-peer-dependencies"
        },
        {
          "spawn": "docgen"
        }
      ]
    },
    "test": {
      "name": "test",
      "category": "10.test",
      "description": "Run tests",
      "steps": [
        {
          "exec": "rm -fr lib/"
        },
        {
          "exec": "jest --passWithNoTests --all --updateSnapshot"
        },
        {
          "spawn": "eslint"
        }
      ]
    },
    "build": {
      "name": "build",
      "category": "00.build",
      "description": "Full release build (test+compile)",
      "steps": [
        {
          "spawn": "test"
        },
        {
          "spawn": "compile"
        },
        {
          "spawn": "package"
        }
      ]
    },
    "bump": {
      "name": "bump",
      "category": "20.release",
      "description": "Commits a bump to the package version based on conventional commits",
      "steps": [
        {
          "exec": "standard-version"
        }
      ],
      "condition": "! git log --oneline -1 | grep -q \"chore(release):\""
    },
    "release": {
      "name": "release",
      "category": "20.release",
      "description": "Bumps version & push to main",
      "steps": [
        {
          "spawn": "bump"
        },
        {
          "exec": "git push --follow-tags origin main"
        }
      ],
      "condition": "! git log --oneline -1 | grep -q \"chore(release):\""
    },
    "bootstrap": {
      "name": "bootstrap",
      "category": "00.build",
      "description": "initializes the project",
      "steps": [
        {
          "exec": "yarn install --check-files --frozen-lockfile"
        },
        {
          "exec": "npx projen"
        },
        {
          "exec": "git diff --exit-code",
          "name": "Anti-tamper check"
        }
      ]
    },
    "test:watch": {
      "name": "test:watch",
      "category": "10.test",
      "description": "Run jest in watch mode",
      "steps": [
        {
          "exec": "jest --watch"
        }
      ]
    },
    "test:update": {
      "name": "test:update",
      "category": "10.test",
      "description": "Update jest snapshots",
      "steps": [
        {
          "exec": "jest --updateSnapshot"
        }
      ]
    },
    "projen:upgrade": {
      "name": "projen:upgrade",
      "category": "30.maintain",
      "description": "upgrades projen to the latest version",
      "steps": [
        {
          "exec": "yarn upgrade -L projen"
        },
        {
          "exec": "CI=\"\" yarn projen"
        }
      ]
    },
    "watch": {
      "name": "watch",
      "category": "00.build",
      "description": "Watch & compile in the background",
      "steps": [
        {
          "exec": "jsii -w --silence-warnings=reserved-word --no-fix-peer-dependencies"
        }
      ]
    },
    "package": {
      "name": "package",
      "category": "20.release",
      "description": "Create an npm tarball",
      "steps": [
        {
          "exec": "jsii-pacmak"
        }
      ]
    },
    "eslint": {
      "name": "eslint",
      "category": "10.test",
      "description": "Runs eslint against the codebase",
      "steps": [
        {
          "exec": "eslint --ext .ts,.tsx --fix --no-error-on-unmatched-pattern src test .projenrc.js"
        }
      ]
    },
    "compat": {
      "name": "compat",
      "category": "20.release",
      "description": "Perform API compatibility check against latest version",
      "steps": [
        {
          "exec": "jsii-diff npm:$(node -p \"require('./package.json').name\") -k --ignore-file .compatignore || (echo \"\nUNEXPECTED BREAKING CHANGES: add keys such as 'removed:constructs.Node.of' to .compatignore to skip.\n\" && exit 1)"
        }
      ]
    },
    "docgen": {
      "name": "docgen",
      "category": "20.release",
      "description": "Generate API.md from .jsii manifest",
      "steps": [
        {
          "exec": "jsii-docgen"
        }
      ]
    }
  },
  "env": {
    "PATH": "$(npx -c 'echo $PATH')"
  },
  "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
}