{
  "$schema": "http://json-schema.org/schema",
  "title": "Start Storybook",
  "description": "Serve up storybook in development mode.",
  "type": "object",
  "properties": {
    "browserTarget": {
      "type": "string",
      "description": "Build target to be served in project-name:builder:config format. Should generally target on the builder: '@angular-devkit/build-angular:browser'. Useful for Storybook to use options (styles, assets, ...).",
      "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$",
      "default": null
    },
    "tsConfig": {
      "type": "string",
      "description": "The full path for the TypeScript configuration file, relative to the current workspace."
    },
    "port": {
      "type": "number",
      "description": "Port to listen on.",
      "default": 9009
    },
    "host": {
      "type": "string",
      "description": "Host to listen on.",
      "default": "localhost"
    },
    "configDir": {
      "type": "string",
      "description": "Directory where to load Storybook configurations from.",
      "default": ".storybook"
    },
    "https": {
      "type": "boolean",
      "description": "Serve Storybook over HTTPS. Note: You must provide your own certificate information.",
      "default": false
    },
    "sslCa": {
      "type": "string",
      "description": "Provide an SSL certificate authority. (Optional with --https, required if using a self-signed certificate)."
    },
    "sslCert": {
      "type": "string",
      "description": "Provide an SSL certificate. (Required with --https)."
    },
    "sslKey": {
      "type": "string",
      "description": "SSL key to use for serving HTTPS."
    },
    "smokeTest": {
      "type": "boolean",
      "description": "Exit after successful start.",
      "default": false
    },
    "ci": {
      "type": "boolean",
      "description": "CI mode (skip interactive prompts, don't open browser).",
      "default": false
    },
    "quiet": {
      "type": "boolean",
      "description": "Suppress verbose build output.",
      "default": false
    },
    "docsMode": {
      "type": "boolean",
      "description": "Starts Storybook in documentation mode. Learn more about it : https://storybook.js.org/docs/react/writing-docs/build-documentation#preview-storybooks-documentation.",
      "default": false
    },
    "compodoc": {
      "type": "boolean",
      "description": "Execute compodoc before.",
      "default": true
    },
    "compodocArgs": {
      "type": "array",
      "description": "Compodoc options : https://compodoc.app/guides/options.html. Options `-p` with tsconfig path and `-d` with workspace root is always given.",
      "default": ["-e", "json"],
      "items": {
        "type": "string"
      }
    },
    "styles": {
      "type": "array",
      "description": "Global styles to be included in the build.",
      "items": {
        "$ref": "#/definitions/extraEntryPoint"
      },
      "default": ""
    },
    "stylePreprocessorOptions": {
      "description": "Options to pass to style preprocessors.",
      "type": "object",
      "properties": {
        "includePaths": {
          "description": "Paths to include. Paths will be resolved to workspace root.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false,
      "default": ""
    }
  },
  "additionalProperties": false,
  "definitions": {
    "extraEntryPoint": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "input": {
              "type": "string",
              "description": "The file to include."
            },
            "bundleName": {
              "type": "string",
              "pattern": "^[\\w\\-.]*$",
              "description": "The bundle name for this extra entry point."
            },
            "inject": {
              "type": "boolean",
              "description": "If the bundle will be referenced in the HTML file.",
              "default": true
            }
          },
          "additionalProperties": false,
          "required": ["input"]
        },
        {
          "type": "string",
          "description": "The file to include."
        }
      ]
    }
  }
}
