{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/stella-configuration-file/latest.json",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/Shravan-1908/stellapy/master/schema.json",
    "sourceSha256": "d36e91e342d4f85eba1d31f0a813cd4f4c9b4f82ecd071a54518180b2a1b3ea5",
    "fileMatch": [
      "stella.yml",
      "stella.json"
    ],
    "parsers": [
      "json",
      "yaml"
    ]
  },
  "$defs": {
    "Stella": {
      "type": "object",
      "title": "Stella",
      "properties": {
        "browser": {
          "type": "string",
          "enum": [
            "chrome",
            "firefox",
            "edge",
            "safari"
          ],
          "description": "The browser to be used."
        },
        "include_only": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "gitignore style include-only patterns."
        },
        "scripts": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Script"
          },
          "description": "List of user-defined scripts. Similar to npm scripts."
        },
        "poll_interval": {
          "type": "number",
          "description": "The interval in milliseconds to check for file changes."
        },
        "browser_wait_interval": {
          "type": "number",
          "description": "The interval in milliseconds to wait to refresh browser window after executing command(s) on the terminal."
        }
      },
      "required": [
        "browser",
        "include_only",
        "poll_interval",
        "browser_wait_interval",
        "scripts"
      ],
      "additionalProperties": false
    },
    "Script": {
      "type": "object",
      "title": "Script",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the script. This name is used in stella run command."
        },
        "url": {
          "type": "string",
          "description": "The optional URL to listen at browser."
        },
        "command": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          ],
          "description": "The command(s) to execute on the terminal. It can be either a single string or a list of strings."
        },
        "shell": {
          "type": "boolean",
          "description": "Whether to execute these commands within a shell."
        }
      },
      "required": [
        "command",
        "name",
        "shell",
        "url"
      ],
      "additionalProperties": false
    }
  },
  "$ref": "#/$defs/Stella"
}
