{
  "$schema": "http://json-schema.org/schema",
  "title": "Dev Server Target",
  "description": "Dev Server target options for Build Facade.",
  "type": "object",
  "properties": {
    "browserTarget": {
      "type": "string",
      "description": "A browser builder target to serve in the format of `project:target[:configuration]`. You can also pass in more than one configuration name as a comma-separated list. Example: `project:target:production,staging`.",
      "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$"
    },
    "port": {
      "type": "number",
      "description": "Port to listen on.",
      "default": 4200
    },
    "host": {
      "type": "string",
      "description": "Host to listen on.",
      "default": "localhost"
    },
    "proxyConfig": {
      "type": "string",
      "description": "Proxy configuration file."
    },
    "ssl": {
      "type": "boolean",
      "description": "Serve using HTTPS.",
      "default": false
    },
    "sslKey": {
      "type": "string",
      "description": "SSL key to use for serving HTTPS."
    },
    "sslCert": {
      "type": "string",
      "description": "SSL certificate to use for serving HTTPS."
    },
    "headers": {
      "type": "object",
      "description": "Custom HTTP headers to be added to all responses.",
      "propertyNames": {
        "pattern": "^[-_A-Za-z0-9]+$"
      },
      "additionalProperties": {
        "type": "string"
      }
    },
    "open": {
      "type": "boolean",
      "description": "Opens the url in default browser.",
      "default": false,
      "alias": "o"
    },
    "verbose": {
      "type": "boolean",
      "description": "Adds more details to output logging."
    },
    "liveReload": {
      "type": "boolean",
      "description": "Whether to reload the page on change, using live-reload.",
      "default": true
    },
    "publicHost": {
      "type": "string",
      "description": "The URL that the browser client (or live-reload client, if enabled) should use to connect to the development server. Use for a complex dev server setup, such as one with reverse proxies."
    },
    "allowedHosts": {
      "type": "array",
      "description": "List of hosts that are allowed to access the dev server.",
      "default": [],
      "items": {
        "type": "string"
      }
    },
    "servePath": {
      "type": "string",
      "description": "The pathname where the app will be served."
    },
    "disableHostCheck": {
      "type": "boolean",
      "description": "Don't verify connected clients are part of allowed hosts.",
      "default": false
    },
    "hmr": {
      "type": "boolean",
      "description": "Enable hot module replacement.",
      "default": false
    },
    "watch": {
      "type": "boolean",
      "description": "Rebuild on change.",
      "default": true
    },
    "hmrWarning": {
      "type": "boolean",
      "description": "Show a warning when the --hmr option is enabled.",
      "default": true,
      "x-deprecated": "No longer has an effect."
    },
    "servePathDefaultWarning": {
      "type": "boolean",
      "description": "Show a warning when deploy-url/base-href use unsupported serve path values.",
      "default": true,
      "x-deprecated": "No longer has an effect."
    },
    "optimization": {
      "description": "Enables optimization of the build output. Including minification of scripts and styles, tree-shaking, dead-code elimination, tree-shaking and fonts inlining. For more information, see https://angular.io/guide/workspace-config#optimization-and-source-map-configuration.",
      "x-user-analytics": 16,
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "scripts": {
              "type": "boolean",
              "description": "Enables optimization of the scripts output.",
              "default": true
            },
            "styles": {
              "type": "boolean",
              "description": "Enables optimization of the styles output.",
              "default": true
            }
          },
          "additionalProperties": false
        },
        {
          "type": "boolean"
        }
      ],
      "x-deprecated": "Use the \"optimization\" option in the browser builder instead."
    },
    "aot": {
      "type": "boolean",
      "description": "Build using Ahead of Time compilation.",
      "x-user-analytics": 13,
      "x-deprecated": "Use the \"aot\" option in the browser builder instead."
    },
    "sourceMap": {
      "description": "Output source maps.",
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "scripts": {
              "type": "boolean",
              "description": "Output source maps for all scripts.",
              "default": true
            },
            "styles": {
              "type": "boolean",
              "description": "Output source maps for all styles.",
              "default": true
            },
            "hidden": {
              "type": "boolean",
              "description": "Output source maps used for error reporting tools.",
              "default": false
            },
            "vendor": {
              "type": "boolean",
              "description": "Resolve vendor packages source maps.",
              "default": false
            }
          },
          "additionalProperties": false
        },
        {
          "type": "boolean"
        }
      ],
      "x-deprecated": "Use the \"sourceMap\" option in the browser builder instead."
    },
    "vendorChunk": {
      "type": "boolean",
      "description": "Use a separate bundle containing only vendor libraries.",
      "x-deprecated": "Use the \"vendorChunk\" option in the browser builder instead."
    },
    "commonChunk": {
      "type": "boolean",
      "description": "Use a separate bundle containing code used across multiple bundles.",
      "x-deprecated": "Use the \"commonChunk\" option in the browser builder instead."
    },
    "baseHref": {
      "type": "string",
      "description": "Base url for the application being built.",
      "x-deprecated": "Use the \"baseHref\" option in the browser builder instead."
    },
    "deployUrl": {
      "type": "string",
      "description": "URL where files will be deployed.",
      "x-deprecated": "Use the \"deployUrl\" option in the browser builder instead."
    },
    "progress": {
      "type": "boolean",
      "description": "Log progress to the console while building.",
      "x-deprecated": "Use the \"progress\" option in the browser builder instead."
    },
    "poll": {
      "type": "number",
      "description": "Enable and define the file watching poll time period in milliseconds."
    }
  },
  "additionalProperties": false,
  "required": [
    "browserTarget"
  ]
}
