{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/bootstraprc/latest.json",
  "title": "JSON schema for Webpack's bootstrap-loader configuration file",
  "x-lintel": {
    "source": "https://www.schemastore.org/bootstraprc.json",
    "sourceSha256": "d435b63a1c7ef57c9361c85266ac4c5a4fb3bbf408784b84a17e0ce33da42de3",
    "fileMatch": [
      ".bootstraprc"
    ]
  },
  "type": "object",
  "id": "https://json.schemastore.org/bootstraprc.json",
  "allOf": [
    {
      "$ref": "#/$defs/coreProperties"
    },
    {
      "anyOf": [
        {
          "properties": {
            "env": {
              "description": "Sets the extractStyles property based on the value of NODE_ENV",
              "type": "object",
              "properties": {
                "development": {
                  "$ref": "#/$defs/extractStyling"
                },
                "production": {
                  "$ref": "#/$defs/extractStyling"
                }
              }
            }
          },
          "not": {
            "properties": {
              "extractStyles": {}
            },
            "required": [
              "extractStyles"
            ],
            "type": "object"
          },
          "type": "object"
        },
        {
          "properties": {
            "extractStyles": {
              "$ref": "#/$defs/extractStyling/properties/extractStyles"
            }
          },
          "not": {
            "properties": {
              "env": {}
            },
            "required": [
              "env"
            ],
            "type": "object"
          },
          "type": "object"
        }
      ]
    },
    {
      "required": [
        "bootstrapVersion",
        "styleLoaders"
      ]
    }
  ],
  "$defs": {
    "extractStyling": {
      "type": "object",
      "properties": {
        "extractStyles": {
          "default": false,
          "description": "Enables/disables extraction of styles to a standalone CSS file using extract-text-webpack-plugin",
          "type": "boolean"
        }
      }
    },
    "coreProperties": {
      "type": "object",
      "properties": {
        "appStyles": {
          "description": "Import your custom styles here. Usually this endpoint file contains a list of @imports of your application styles.",
          "type": "string"
        },
        "bootstrapCustomizations": {
          "description": "The .scss file path to be loaded after Bootstrap's _variables.scss file",
          "type": "string"
        },
        "bootstrapVersion": {
          "default": 3,
          "description": "The major version of Bootstrap being used",
          "enum": [
            3,
            4
          ],
          "type": "integer"
        },
        "loglevel": {
          "description": "The verbosity of logging. Exclude this property to disable.",
          "enum": [
            "debug"
          ],
          "type": "string"
        },
        "preBootstrapCustomizations": {
          "description": "The .scss file path to be loaded before Bootstrap's _variables.scss file",
          "type": "string"
        },
        "scripts": {
          "description": "Excludes/includes Bootstrap's JavaScript modules",
          "type": [
            "boolean",
            "object"
          ]
        },
        "styleLoaders": {
          "default": [
            "style",
            "css",
            "sass"
          ],
          "description": "An array of Webpack loader names. Order matters, and sass-loader is required.",
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "type": "array",
          "uniqueItems": true
        },
        "styles": {
          "description": "Excludes/includes Bootstrap's CSS modules",
          "type": [
            "boolean",
            "object"
          ]
        },
        "useCustomIconFontPath": {
          "default": false,
          "description": "Set to true if using a custom icon font and you need to specify its path in your Sass files",
          "type": "boolean"
        },
        "useFlexbox": {
          "default": true,
          "description": "Enables/disables the flexbox model available in Bootstrap 4",
          "type": "boolean"
        }
      }
    }
  }
}
