{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "definitions": {
    "lessOptions": {
      "properties": {
        "inputFile": {
          "pattern": "\\.less$"
        },
        "options": {
          "$ref": "https://json.schemastore.org/compilerdefaults.json#/definitions/less"
        },
        "minify": {
          "$ref": "https://json.schemastore.org/compilerdefaults.json#/definitions/cssMinify"
        }
      }
    },
    "sassOptions": {
      "properties": {
        "inputFile": {
          "pattern": "\\.(scss|sass)$"
        },
        "options": {
          "$ref": "https://json.schemastore.org/compilerdefaults.json#/definitions/sass"
        },
        "minify": {
          "$ref": "https://json.schemastore.org/compilerdefaults.json#/definitions/cssMinify"
        }
      }
    },
    "stylusOptions": {
      "properties": {
        "inputFile": {
          "pattern": "\\.styl$"
        },
        "options": {
          "$ref": "https://json.schemastore.org/compilerdefaults.json#/definitions/stylus"
        },
        "minify": {
          "$ref": "https://json.schemastore.org/compilerdefaults.json#/definitions/cssMinify"
        }
      }
    },
    "coffeeScriptOptions": {
      "properties": {
        "inputFile": {
          "pattern": "\\.coffee$|\\.litcoffee$"
        },
        "options": {
          "$ref": "https://json.schemastore.org/compilerdefaults.json#/definitions/coffeeScript"
        },
        "minify": {
          "$ref": "https://json.schemastore.org/compilerdefaults.json#/definitions/javascriptMinify"
        }
      }
    },
    "icedCoffeeScriptOptions": {
      "properties": {
        "inputFile": {
          "pattern": "\\.iced$"
        },
        "options": {
          "$ref": "https://json.schemastore.org/compilerdefaults.json#/definitions/coffeeScript"
        },
        "minify": {
          "$ref": "https://json.schemastore.org/compilerdefaults.json#/definitions/javascriptMinify"
        }
      }
    },
    "babelOptions": {
      "properties": {
        "inputFile": {
          "pattern": "\\.(jsx|js|es6)$"
        },
        "minify": {
          "$ref": "https://json.schemastore.org/compilerdefaults.json#/definitions/javascriptMinify"
        }
      }
    },
    "handlebarsOptions": {
      "properties": {
        "inputFile": {
          "pattern": "\\.(hbs|handlebars)$"
        },
        "options": {
          "$ref": "https://json.schemastore.org/compilerdefaults.json#/definitions/handlebars"
        },
        "minify": {
          "$ref": "https://json.schemastore.org/compilerdefaults.json#/definitions/javascriptMinify"
        }
      }
    },
    "config": {
      "required": ["outputFile", "inputFile"],
      "properties": {
        "includeInProject": {
          "description": "Set to true to include the output file in the project. Doesn't work in some Visual Studio project types like ASP.NET 5 applications.",
          "type": "boolean",
          "default": true
        },
        "inputFile": {
          "description": "One or more relative file names to bundle.",
          "type": "string",
          "format": "compiler_relativepath"
        },
        "minify": {
          "description": "Specify options for minification of the output file.",
          "type": "object",
          "allOf": [
            {
              "$ref": "https://json.schemastore.org/compilerdefaults.json#/definitions/baseMinify"
            }
          ]
        },
        "outputFile": {
          "description": "The relative path to the desired output file name.",
          "type": "string",
          "minLength": 1
        },
        "sourceMap": {
          "description": "DEPRECATED! Use 'options/sourceMap' instead.",
          "type": "boolean",
          "default": false
        }
      },
      "oneOf": [
        {
          "$ref": "#/definitions/lessOptions"
        },
        {
          "$ref": "#/definitions/sassOptions"
        },
        {
          "$ref": "#/definitions/stylusOptions"
        },
        {
          "$ref": "#/definitions/coffeeScriptOptions"
        },
        {
          "$ref": "#/definitions/icedCoffeeScriptOptions"
        },
        {
          "$ref": "#/definitions/babelOptions"
        },
        {
          "$ref": "#/definitions/handlebarsOptions"
        }
      ]
    }
  },
  "description": "Schema for bundleconfig.json files",
  "id": "https://json.schemastore.org/compilerconfig.json",
  "items": {
    "$ref": "#/definitions/config"
  },
  "type": "array"
}
