{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "$schema": {
      "description": "JSON Schema for editor autocompletion.",
      "type": "string"
    },
    "language": {
      "default": "en",
      "description": "Language of the prompts.",
      "type": "string",
      "enum": [
        "en",
        "ru",
        "es",
        "de",
        "fr",
        "it",
        "pt",
        "pl",
        "tr",
        "uk",
        "zh",
        "ja",
        "ko"
      ]
    },
    "template": {
      "default": "{{type}}{{scope}}{{bang}}: {{emoji}} {{title}}\n\n{{description}}\n\n{{comment}}\n\n{{#if breaking}}BREAKING CHANGE: {{breaking}}{{/if}}\n{{issueFooter}}",
      "description": "Handlebars template of the commit message. Available: `type`, `emoji`, `code`, `component`, `scope` (the component in parentheses), `bang` (`!` for breaking changes), `title`, `description`, `comment`, `breaking`, `issues`, `issuePrefix` and `issueFooter` (one `<issuePrefix> <issue>` line per issue).",
      "examples": [
        "{{type}}{{scope}}{{bang}}: {{code}} {{title}}"
      ],
      "type": "string",
      "minLength": 1
    },
    "headerMaxLength": {
      "default": 100,
      "description": "Maximum length of the first line. The title counter accounts for the type, scope and emoji.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "bodyLineLength": {
      "default": 100,
      "description": "Wrap body lines at this width; `0` turns wrapping off. Footer lines are never wrapped.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "breaklineChar": {
      "default": "|",
      "description": "Typing this in the description starts a new line; an empty string turns it off.",
      "type": "string"
    },
    "lowercaseTitle": {
      "default": true,
      "description": "Lower-case the first letter of the title and drop a trailing period, as commitlint expects.",
      "type": "boolean"
    },
    "scopes": {
      "default": [],
      "description": "Scopes offered with autocompletion in the component question. Free text when empty.",
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "allowCustomScopes": {
      "default": true,
      "description": "Accept a scope that is not in `scopes`.",
      "type": "boolean"
    },
    "issuePrefix": {
      "default": "Closes",
      "description": "Footer token written before each related issue.",
      "type": "string",
      "minLength": 1
    },
    "inferFromBranch": {
      "default": true,
      "description": "In a terminal, suggest the type and the issue from the branch name, e.g. `feat/PROJ-12-login`.",
      "type": "boolean"
    },
    "useCommitlint": {
      "default": true,
      "description": "Take `scopes` and the length limits from the commitlint config when this config does not set them.",
      "type": "boolean"
    },
    "aliases": {
      "default": {},
      "description": "Ready answers for frequent commits: `jazzer :name` commits them without questions.",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "pattern": "^[\\w-]+$"
      },
      "additionalProperties": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "minLength": 1,
            "description": "Commit type."
          },
          "component": {
            "description": "Scope.",
            "type": "string"
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "Title."
          },
          "description": {
            "description": "Description.",
            "type": "string"
          },
          "breaking": {
            "description": "Breaking change.",
            "type": "string"
          },
          "issues": {
            "description": "Related issues.",
            "type": "string"
          },
          "comment": {
            "description": "Extra body paragraph.",
            "type": "string"
          }
        },
        "required": [
          "type",
          "title"
        ],
        "additionalProperties": false,
        "description": "Answers for a commit made often, used with `jazzer :name`."
      }
    },
    "confirmCommit": {
      "default": true,
      "description": "Show the final message and ask to commit, edit it in $EDITOR or cancel.",
      "type": "boolean"
    },
    "availableCommitTypes": {
      "default": [],
      "description": "Built-in commit types to offer; all of them when empty. Custom types are always offered.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "feat",
          "fix",
          "refactor",
          "perf",
          "chore",
          "clean",
          "security",
          "docs",
          "test",
          "build",
          "remove",
          "style",
          "config",
          "upgrade",
          "downgrade",
          "i18n",
          "init",
          "deploy",
          "db",
          "ux",
          "revert",
          "breaking",
          "flag",
          "a11y",
          "seo",
          "analytics",
          "mock",
          "api",
          "prune",
          "typo",
          "review",
          "experiment",
          "pkg",
          "animation",
          "script",
          "struct",
          "ci",
          "legal",
          "monitor",
          "support",
          "task",
          "arch"
        ]
      }
    },
    "availablePromptQuestions": {
      "default": [
        "type",
        "component",
        "title",
        "description",
        "breaking",
        "issues"
      ],
      "description": "Questions to ask, at least `type` and `title`. They are always asked in the built-in order.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "type",
          "component",
          "title",
          "description",
          "breaking",
          "issues",
          "comment"
        ]
      }
    },
    "baseCommitTypes": {
      "default": {},
      "description": "Overrides for built-in commit types.",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "enum": [
          "feat",
          "fix",
          "refactor",
          "perf",
          "chore",
          "clean",
          "security",
          "docs",
          "test",
          "build",
          "remove",
          "style",
          "config",
          "upgrade",
          "downgrade",
          "i18n",
          "init",
          "deploy",
          "db",
          "ux",
          "revert",
          "breaking",
          "flag",
          "a11y",
          "seo",
          "analytics",
          "mock",
          "api",
          "prune",
          "typo",
          "review",
          "experiment",
          "pkg",
          "animation",
          "script",
          "struct",
          "ci",
          "legal",
          "monitor",
          "support",
          "task",
          "arch"
        ]
      },
      "additionalProperties": {
        "type": "object",
        "properties": {
          "emoji": {
            "type": "string",
            "minLength": 1,
            "description": "Emoji inserted into the commit message.",
            "examples": [
              "🚀"
            ]
          },
          "code": {
            "type": "string",
            "minLength": 1,
            "description": "Shortcode of the emoji.",
            "examples": [
              ":rocket:"
            ]
          },
          "description": {
            "type": "string",
            "description": "Description shown in the type selection.",
            "examples": [
              "Deploying application"
            ]
          }
        },
        "additionalProperties": false
      }
    },
    "addCustomCommitTypes": {
      "default": {},
      "description": "Additional commit types, keyed by name.",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "minLength": 1
      },
      "additionalProperties": {
        "type": "object",
        "properties": {
          "emoji": {
            "type": "string",
            "minLength": 1,
            "description": "Emoji inserted into the commit message.",
            "examples": [
              "🚀"
            ]
          },
          "code": {
            "type": "string",
            "minLength": 1,
            "description": "Shortcode of the emoji.",
            "examples": [
              ":rocket:"
            ]
          },
          "description": {
            "type": "string",
            "description": "Description shown in the type selection.",
            "examples": [
              "Deploying application"
            ]
          }
        },
        "required": [
          "emoji",
          "code",
          "description"
        ],
        "additionalProperties": false
      }
    },
    "baseQuestionsOptions": {
      "default": [],
      "description": "Overrides for the built-in questions.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "enum": [
              "type",
              "component",
              "title",
              "description",
              "breaking",
              "issues",
              "comment"
            ],
            "description": "Field the question fills."
          },
          "message": {
            "description": "Question text. Overrides the translation.",
            "type": "string",
            "minLength": 1
          },
          "options": {
            "description": "How the question behaves.",
            "type": "object",
            "properties": {
              "required": {
                "description": "The answer cannot be empty.",
                "type": "boolean"
              },
              "skip": {
                "description": "Do not ask this question.",
                "type": "boolean"
              },
              "validations": {
                "description": "Answer validation.",
                "type": "object",
                "properties": {
                  "length": {
                    "description": "Length limits of the answer.",
                    "type": "object",
                    "properties": {
                      "minMessageLength": {
                        "description": "Minimum answer length.",
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 9007199254740991
                      },
                      "maxMessageLength": {
                        "description": "Maximum answer length.",
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "key"
        ],
        "additionalProperties": false
      }
    },
    "validateCommitBadWords": {
      "default": true,
      "description": "Run the profanity filter.",
      "type": "boolean"
    },
    "badWordsOptions": {
      "description": "What the profanity filter does with blocked words.",
      "default": {},
      "type": "object",
      "properties": {
        "checkHasProfaneWords": {
          "default": true,
          "description": "Reject answers that contain blocked words.",
          "type": "boolean"
        },
        "replaceProfaneWords": {
          "default": false,
          "description": "Mask blocked words with the placeholder.",
          "type": "boolean"
        },
        "clearMessage": {
          "default": false,
          "description": "Remove blocked words from the message.",
          "type": "boolean"
        },
        "options": {
          "description": "The word list.",
          "default": {},
          "type": "object",
          "properties": {
            "additionalBlockWords": {
              "default": [],
              "description": "Extra words to block.",
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1
              }
            },
            "excludedWords": {
              "default": [],
              "description": "Words that are never blocked.",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "placeholder": {
              "default": "*",
              "description": "Character a blocked word is masked with; not \"#\".",
              "type": "string",
              "minLength": 1
            },
            "overrideBlockWords": {
              "default": false,
              "description": "Block only `additionalBlockWords`, without the built-in list.",
              "type": "boolean"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "showBanner": {
      "default": false,
      "description": "Show a figlet banner before the questions.",
      "type": "boolean"
    },
    "showBannerOptions": {
      "description": "What the banner shows when `showBanner` is on.",
      "default": {},
      "type": "object",
      "properties": {
        "bannerText": {
          "default": "Commit Jazzer",
          "description": "Text rendered with figlet.",
          "type": "string"
        },
        "figletOptions": {
          "description": "Options passed to figlet.",
          "default": {},
          "type": "object",
          "properties": {
            "font": {
              "default": "Standard",
              "description": "Figlet font name.",
              "type": "string",
              "enum": [
                "1Row",
                "3-D",
                "3D Diagonal",
                "3D-ASCII",
                "3x5",
                "4Max",
                "5 Line Oblique",
                "Acrobatic",
                "Alligator",
                "Alligator2",
                "Alpha",
                "Alphabet",
                "AMC 3 Line",
                "AMC 3 Liv1",
                "AMC AAA01",
                "AMC Neko",
                "AMC Razor",
                "AMC Razor2",
                "AMC Slash",
                "AMC Slider",
                "AMC Thin",
                "AMC Tubes",
                "AMC Untitled",
                "ANSI Compact",
                "ANSI Regular",
                "ANSI Shadow",
                "Arrows",
                "ASCII 12",
                "ASCII 9",
                "ASCII New Roman",
                "Avatar",
                "B1FF",
                "Babyface Lame",
                "Babyface Leet",
                "Banner",
                "Banner3",
                "Banner3-D",
                "Banner4",
                "Barbwire",
                "Basic",
                "Bear",
                "Bell",
                "Benjamin",
                "Big",
                "Big ASCII 12",
                "Big ASCII 9",
                "Big Chief",
                "Big Money-ne",
                "Big Money-nw",
                "Big Money-se",
                "Big Money-sw",
                "Big Mono 12",
                "Big Mono 9",
                "Bigfig",
                "Binary",
                "Block",
                "Blocks",
                "Bloody",
                "BlurVision ASCII",
                "Bolger",
                "Braced",
                "Bright",
                "Broadway",
                "Broadway KB",
                "Bubble",
                "Bulbhead",
                "Caligraphy",
                "Caligraphy2",
                "Calvin S",
                "Cards",
                "Catwalk",
                "Chiseled",
                "Chunky",
                "Circle",
                "Classy",
                "Coder Mini",
                "Coinstak",
                "Cola",
                "Colossal",
                "Computer",
                "Contessa",
                "Contrast",
                "Cosmike",
                "Cosmike2",
                "Crawford",
                "Crawford2",
                "Crazy",
                "Cricket",
                "Cursive",
                "Cyberlarge",
                "Cybermedium",
                "Cybersmall",
                "Cygnet",
                "DANC4",
                "Dancing Font",
                "Decimal",
                "Def Leppard",
                "Delta Corps Priest 1",
                "DiamFont",
                "Diamond",
                "Diet Cola",
                "Digital",
                "Doh",
                "Doom",
                "DOS Rebel",
                "Dot Matrix",
                "Double",
                "Double Shorts",
                "Dr Pepper",
                "DWhistled",
                "Efti Chess",
                "Efti Font",
                "Efti Italic",
                "Efti Piti",
                "Efti Robot",
                "Efti Wall",
                "Efti Water",
                "Electronic",
                "Elite",
                "Emboss",
                "Emboss 2",
                "Epic",
                "Fender",
                "Filter",
                "Fire Font-k",
                "Fire Font-s",
                "Flipped",
                "Flower Power",
                "Font Font",
                "Four Tops",
                "Fraktur",
                "Fun Face",
                "Fun Faces",
                "Future",
                "Future Smooth",
                "Future Thin",
                "Fuzzy",
                "Georgi16",
                "Georgia11",
                "Ghost",
                "Ghoulish",
                "Glenyn",
                "Goofy",
                "Gothic",
                "Graceful",
                "Gradient",
                "Graffiti",
                "Greek",
                "Heart Left",
                "Heart Right",
                "Henry 3D",
                "Hex",
                "Hieroglyphs",
                "Hollywood",
                "Horizontal Left",
                "Horizontal Right",
                "ICL-1900",
                "Impossible",
                "Invita",
                "Isometric1",
                "Isometric2",
                "Isometric3",
                "Isometric4",
                "Italic",
                "Ivrit",
                "Jacky",
                "Jazmine",
                "Jerusalem",
                "JS Block Letters",
                "JS Bracket Letters",
                "JS Capital Curves",
                "JS Cursive",
                "JS Stick Letters",
                "Katakana",
                "Kban",
                "Keyboard",
                "Knob",
                "Konto",
                "Konto Slant",
                "Larry 3D",
                "Larry 3D 2",
                "LCD",
                "Lean",
                "Letter",
                "Letters",
                "Lil Devil",
                "Line Blocks",
                "Linguaholic Mini Block",
                "Linguaholic Neon",
                "Linguaholic Rounded",
                "Linguaholic Shadow 3D",
                "Linux",
                "Lockergnome",
                "Madrid",
                "Marquee",
                "Maxfour",
                "Merlin1",
                "Merlin2",
                "Mike",
                "Mini",
                "miniwi",
                "Mirror",
                "Mnemonic",
                "Modular",
                "Mono 12",
                "Mono 9",
                "Morse",
                "Morse2",
                "Moscow",
                "Mshebrew210",
                "Muzzle",
                "Nancyj",
                "Nancyj-Fancy",
                "Nancyj-Improved",
                "Nancyj-Underlined",
                "Nipples",
                "NScript",
                "NT Greek",
                "NV Script",
                "O8",
                "Octal",
                "Ogre",
                "Old Banner",
                "OS2",
                "Pagga",
                "Patorjk-HeX",
                "Patorjk's Cheese",
                "Pawp",
                "Peaks",
                "Peaks Slant",
                "Pebbles",
                "Pepper",
                "Poison",
                "Puffy",
                "Puzzle",
                "Pyramid",
                "Rammstein",
                "Rebel",
                "Rectangles",
                "Red Phoenix",
                "Relief",
                "Relief2",
                "Reverse",
                "Roman",
                "Rot13",
                "Rotated",
                "Rounded",
                "Rowan Cap",
                "Rozzo",
                "RubiFont",
                "Runic",
                "Runyc",
                "S Blood",
                "Santa Clara",
                "Script",
                "Serifcap",
                "Shaded Blocky",
                "Shadow",
                "Shimrod",
                "Short",
                "SL Script",
                "Slant",
                "Slant Relief",
                "Slide",
                "Small",
                "Small ASCII 12",
                "Small ASCII 9",
                "Small Block",
                "Small Braille",
                "Small Caps",
                "Small Isometric1",
                "Small Keyboard",
                "Small Mono 12",
                "Small Mono 9",
                "Small Poison",
                "Small Script",
                "Small Shadow",
                "Small Slant",
                "Small Tengwar",
                "Soft",
                "Speed",
                "Spliff",
                "Stacey",
                "Stampate",
                "Stampatello",
                "Standard",
                "Star Strips",
                "Star Wars",
                "Stellar",
                "Stforek",
                "Stick Letters",
                "Stop",
                "Straight",
                "Stronger Than All",
                "Sub-Zero",
                "Swamp Land",
                "Swan",
                "Sweet",
                "Tanja",
                "Tengwar",
                "Term",
                "Terrace",
                "Test1",
                "The Edge",
                "Thick",
                "Thin",
                "THIS",
                "Thorned",
                "Three Point",
                "Ticks",
                "Ticks Slant",
                "Tiles",
                "Tinker-Toy",
                "Tmplr",
                "Tombstone",
                "Train",
                "Trek",
                "Tsalagi",
                "Tubular",
                "Twisted",
                "Two Point",
                "Univers",
                "Upside Down Text",
                "USA Flag",
                "Varsity",
                "Wavescape",
                "Wavy",
                "Weird",
                "Wet Letter",
                "Whimsy",
                "WideTerm",
                "Wow"
              ]
            },
            "horizontalLayout": {
              "default": "default",
              "description": "Horizontal letter spacing.",
              "type": "string",
              "enum": [
                "default",
                "full",
                "fitted",
                "controlled smushing",
                "universal smushing"
              ]
            },
            "verticalLayout": {
              "default": "default",
              "description": "Vertical line spacing.",
              "type": "string",
              "enum": [
                "default",
                "full",
                "fitted",
                "controlled smushing",
                "universal smushing"
              ]
            },
            "width": {
              "description": "Maximum width before figlet wraps the text.",
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "whitespaceBreak": {
              "default": true,
              "description": "Wrap only at spaces.",
              "type": "boolean"
            }
          },
          "additionalProperties": false
        },
        "options": {
          "description": "Colors, separators and footer of the banner.",
          "default": {},
          "type": "object",
          "properties": {
            "color": {
              "default": "blue",
              "description": "Style of the banner text.",
              "type": "string",
              "enum": [
                "reset",
                "bold",
                "dim",
                "italic",
                "underline",
                "blink",
                "inverse",
                "hidden",
                "strikethrough",
                "doubleunderline",
                "black",
                "red",
                "green",
                "yellow",
                "blue",
                "magenta",
                "cyan",
                "white",
                "bgBlack",
                "bgRed",
                "bgGreen",
                "bgYellow",
                "bgBlue",
                "bgMagenta",
                "bgCyan",
                "bgWhite",
                "framed",
                "overlined",
                "gray",
                "redBright",
                "greenBright",
                "yellowBright",
                "blueBright",
                "magentaBright",
                "cyanBright",
                "whiteBright",
                "bgGray",
                "bgRedBright",
                "bgGreenBright",
                "bgYellowBright",
                "bgBlueBright",
                "bgMagentaBright",
                "bgCyanBright",
                "bgWhiteBright"
              ]
            },
            "separator": {
              "default": "⭐",
              "description": "Characters of the line under the banner.",
              "type": "string"
            },
            "separatorColor": {
              "default": "gray",
              "description": "Style of both separator lines.",
              "type": "string",
              "enum": [
                "reset",
                "bold",
                "dim",
                "italic",
                "underline",
                "blink",
                "inverse",
                "hidden",
                "strikethrough",
                "doubleunderline",
                "black",
                "red",
                "green",
                "yellow",
                "blue",
                "magenta",
                "cyan",
                "white",
                "bgBlack",
                "bgRed",
                "bgGreen",
                "bgYellow",
                "bgBlue",
                "bgMagenta",
                "bgCyan",
                "bgWhite",
                "framed",
                "overlined",
                "gray",
                "redBright",
                "greenBright",
                "yellowBright",
                "blueBright",
                "magentaBright",
                "cyanBright",
                "whiteBright",
                "bgGray",
                "bgRedBright",
                "bgGreenBright",
                "bgYellowBright",
                "bgBlueBright",
                "bgMagentaBright",
                "bgCyanBright",
                "bgWhiteBright"
              ]
            },
            "footerMessages": {
              "default": [],
              "description": "Lines printed between the separators.",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string"
                  },
                  "color": {
                    "type": "string",
                    "enum": [
                      "reset",
                      "bold",
                      "dim",
                      "italic",
                      "underline",
                      "blink",
                      "inverse",
                      "hidden",
                      "strikethrough",
                      "doubleunderline",
                      "black",
                      "red",
                      "green",
                      "yellow",
                      "blue",
                      "magenta",
                      "cyan",
                      "white",
                      "bgBlack",
                      "bgRed",
                      "bgGreen",
                      "bgYellow",
                      "bgBlue",
                      "bgMagenta",
                      "bgCyan",
                      "bgWhite",
                      "framed",
                      "overlined",
                      "gray",
                      "redBright",
                      "greenBright",
                      "yellowBright",
                      "blueBright",
                      "magentaBright",
                      "cyanBright",
                      "whiteBright",
                      "bgGray",
                      "bgRedBright",
                      "bgGreenBright",
                      "bgYellowBright",
                      "bgBlueBright",
                      "bgMagentaBright",
                      "bgCyanBright",
                      "bgWhiteBright"
                    ],
                    "description": "A `util.styleText` style, e.g. `blue` or `bgGray`."
                  }
                },
                "required": [
                  "text"
                ],
                "additionalProperties": false
              }
            },
            "footerSeparator": {
              "default": "⭐",
              "description": "Characters of the line after the footer.",
              "type": "string"
            },
            "bottomSpacing": {
              "default": 1,
              "description": "Empty lines after the banner.",
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false,
  "title": "commit-jazzer configuration",
  "description": "Configuration of the commit-jazzer CLI and Commitizen adapter."
}
