{
    "$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": "Target to serve.",
            "pattern": ".+:.+(:.+)?"
        },
        "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."
        },
        "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."
        },
        "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
        },
        "servePathDefaultWarning": {
            "type": "boolean",
            "description": "Show a warning when deploy-url/base-href use unsupported serve path values.",
            "default": true
        },
        "optimization": {
            "description": "Enables optimization of the build output.",
            "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"
                }
            ]
        },
        "aot": {
            "type": "boolean",
            "description": "Build using Ahead of Time compilation.",
            "x-user-analytics": 13
        },
        "sourceMap": {
            "description": "Output sourcemaps.",
            "oneOf": [
                {
                    "type": "object",
                    "properties": {
                        "scripts": {
                            "type": "boolean",
                            "description": "Output sourcemaps for all scripts.",
                            "default": true
                        },
                        "styles": {
                            "type": "boolean",
                            "description": "Output sourcemaps for all styles.",
                            "default": true
                        },
                        "hidden": {
                            "type": "boolean",
                            "description": "Output sourcemaps used for error reporting tools.",
                            "default": false
                        },
                        "vendor": {
                            "type": "boolean",
                            "description": "Resolve vendor packages sourcemaps.",
                            "default": false
                        }
                    },
                    "additionalProperties": false
                },
                {
                    "type": "boolean"
                }
            ]
        },
        "vendorSourceMap": {
            "type": "boolean",
            "description": "Resolve vendor packages sourcemaps.",
            "x-deprecated": true
        },
        "evalSourceMap": {
            "type": "boolean",
            "description": "Output in-file eval sourcemaps.",
            "x-deprecated": true
        },
        "vendorChunk": {
            "type": "boolean",
            "description": "Use a separate bundle containing only vendor libraries."
        },
        "commonChunk": {
            "type": "boolean",
            "description": "Use a separate bundle containing code used across multiple bundles."
        },
        "baseHref": {
            "type": "string",
            "description": "Base url for the application being built."
        },
        "deployUrl": {
            "type": "string",
            "description": "URL where files will be deployed."
        },
        "progress": {
            "type": "boolean",
            "description": "Log progress to the console while building."
        },
        "poll": {
            "type": "number",
            "description": "Enable and define the file watching poll time period in milliseconds."
        }
    },
    "additionalProperties": false,
    "required": [
        "browserTarget"
    ]
}
