{
  "$schema": "https://json-schema.org/schema",
  "$id": "NxJSReleaseVersionGenerator",
  "cli": "nx",
  "title": "Implementation details of `nx release version`",
  "description": "DO NOT INVOKE DIRECTLY WITH `nx generate`. Use `nx release version` instead.",
  "type": "object",
  "properties": {
    "projects": {
      "type": "array",
      "description": "The ProjectGraphProjectNodes being versioned in the current execution.",
      "items": {
        "type": "object"
      }
    },
    "projectGraph": {
      "type": "object",
      "description": "ProjectGraph instance"
    },
    "specifier": {
      "type": "string",
      "description": "Exact version or semver keyword to apply to the selected release group. Overrides specifierSource."
    },
    "releaseGroup": {
      "type": "object",
      "description": "The resolved release group configuration, including name, relevant to all projects in the current execution."
    },
    "specifierSource": {
      "type": "string",
      "default": "prompt",
      "description": "Which approach to use to determine the semver specifier used to bump the version of the project.",
      "enum": ["prompt", "conventional-commits", "version-plans"]
    },
    "preid": {
      "type": "string",
      "description": "The optional prerelease identifier to apply to the version, in the case that the specifier argument has been set to prerelease."
    },
    "packageRoot": {
      "type": "string",
      "description": "The root directory of the directory (containing a manifest file at its root) to publish. Defaults to the project root"
    },
    "currentVersionResolver": {
      "type": "string",
      "default": "disk",
      "description": "Which approach to use to determine the current version of the project.",
      "enum": ["registry", "disk", "git-tag"]
    },
    "currentVersionResolverMetadata": {
      "type": "object",
      "description": "Additional metadata to pass to the current version resolver.",
      "default": {}
    },
    "skipLockFileUpdate": {
      "type": "boolean",
      "description": "Whether to skip updating the lock file after updating the version."
    },
    "installArgs": {
      "type": "string",
      "description": "Additional arguments to pass to the package manager when updating the lock file with an install command."
    },
    "installIgnoreScripts": {
      "type": "boolean",
      "description": "Whether to ignore install lifecycle scripts when updating the lock file with an install command."
    }
  },
  "required": ["projects", "projectGraph", "releaseGroup"]
}
