{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/mocharc/latest.json",
  "title": "Mocha JS Configuration File Schema",
  "description": "A JSON schema describing a .mocharc.[json|yml|yaml] file",
  "x-lintel": {
    "source": "https://www.schemastore.org/mocharc.json",
    "sourceSha256": "35e02b38a4b919f278b0efffef3e61cafe8c67e7a8b2e9bae826a7776a83c56e",
    "fileMatch": [
      ".mocharc.json",
      ".mocharc.jsonc",
      ".mocharc.yml",
      ".mocharc.yaml"
    ],
    "parsers": [
      "json",
      "jsonc",
      "yaml"
    ]
  },
  "type": "object",
  "properties": {
    "allow-uncaught": {
      "$ref": "#/$defs/bool"
    },
    "async-only": {
      "$ref": "#/$defs/bool"
    },
    "bail": {
      "$ref": "#/$defs/bool"
    },
    "check-leaks": {
      "$ref": "#/$defs/bool"
    },
    "delay": {
      "$ref": "#/$defs/bool"
    },
    "exit": {
      "$ref": "#/$defs/bool"
    },
    "forbid-only": {
      "$ref": "#/$defs/bool"
    },
    "forbid-pending": {
      "$ref": "#/$defs/bool"
    },
    "global": {
      "$ref": "#/$defs/string-array"
    },
    "jobs": {
      "$ref": "#/$defs/int"
    },
    "parallel": {
      "$ref": "#/$defs/bool"
    },
    "retries": {
      "$ref": "#/$defs/int"
    },
    "slow": {
      "$ref": "#/$defs/int"
    },
    "timeout": {
      "$ref": "#/$defs/int"
    },
    "ui": {
      "$ref": "#/$defs/string"
    },
    "color": {
      "$ref": "#/$defs/bool"
    },
    "diff": {
      "$ref": "#/$defs/bool"
    },
    "full-trace": {
      "$ref": "#/$defs/bool"
    },
    "growl": {
      "$ref": "#/$defs/bool"
    },
    "inline-diffs": {
      "$ref": "#/$defs/bool"
    },
    "reporter": {
      "$ref": "#/$defs/string"
    },
    "reporter-option": {
      "$ref": "#/$defs/string-array"
    },
    "config": {
      "$ref": "#/$defs/string"
    },
    "package": {
      "$ref": "#/$defs/string"
    },
    "extension": {
      "$ref": "#/$defs/string-array"
    },
    "file": {
      "$ref": "#/$defs/string-array"
    },
    "ignore": {
      "$ref": "#/$defs/string-array"
    },
    "recursive": {
      "$ref": "#/$defs/bool"
    },
    "require": {
      "$ref": "#/$defs/string-array"
    },
    "sort": {
      "$ref": "#/$defs/bool"
    },
    "watch": {
      "$ref": "#/$defs/bool"
    },
    "watch-files": {
      "$ref": "#/$defs/string-array"
    },
    "watch-ignore": {
      "$ref": "#/$defs/string-array"
    },
    "fgrep": {
      "$ref": "#/$defs/string"
    },
    "grep": {
      "$ref": "#/$defs/string"
    },
    "invert": {
      "$ref": "#/$defs/bool"
    },
    "spec": {
      "$ref": "#/$defs/string-array"
    },
    "enable-source-maps": {
      "$ref": "#/$defs/bool"
    }
  },
  "$defs": {
    "bool": {
      "type": "boolean"
    },
    "int": {
      "type": "integer",
      "minimum": 0
    },
    "string": {
      "type": "string"
    },
    "string-array": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    }
  },
  "additionalProperties": true
}
