{
  "$schema": "http://json-schema.org/schema",
  "$id": "SchematicsLibrary",
  "title": "Library Options Schema",
  "type": "object",
  "description": "Creates a new generic library project in the current workspace.",
  "long-description": "./library-long.md",
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the library.",
      "$default": {
        "$source": "argv",
        "index": 0
      },
      "x-prompt": "What name would you like to use for the library?"
    },
    "scope": {
      "type": "string",
      "description": "The npm scope of the library."
    },
    "ci": {
      "description": "Determine which CI tool to use.",
      "type": "string",
      "enum": ["github-actions", "travis", "circle"],
      "default": "github-actions",
      "x-prompt": "Which CI would you like to use?"
    },
    "repositoryUrl": {
      "description": "The repository Url",
      "type": "string",
      "x-prompt": "What is you repository's host url? (https://github.com/...)"
    },
    "skipLib": {
      "description": "When true, will not create the library",
      "type": "boolean"
    },
    "entryFile": {
      "type": "string",
      "format": "path",
      "description": "The path at which to create the library's public API file, relative to the workspace root.",
      "default": "public-api"
    },
    "prefix": {
      "type": "string",
      "format": "html-selector",
      "description": "A prefix to apply to generated selectors.",
      "default": "lib",
      "alias": "p"
    },
    "skipPackageJson": {
      "type": "boolean",
      "default": false,
      "description": "When true, does not add dependencies to the \"package.json\" file. "
    },
    "skipInstall": {
      "description": "When true, does not install dependency packages.",
      "type": "boolean",
      "default": false
    },
    "skipTsConfig": {
      "type": "boolean",
      "default": false,
      "description": "When true, does not update \"tsconfig.json\" to add a path mapping for the new library. The path mapping is needed to use the library in an app, but can be disabled here to simplify development."
    },
    "skipSchematics": {
      "type": "boolean",
      "default": false,
      "description": "When true, does not set schematics to support \"ng add ...\" command"
    },
    "skipAngularCliGhPages": {
      "type": "boolean",
      "default": false,
      "description": "When true, skips setting angular-cli-ghpages configurations"
    },
    "botName": {
      "type": "string",
      "default": "",
      "description": "This name will be used while deploying on GitHub Pages",
      "x-prompt": "What name should we use for deploying on GitHub Pages? (e.g. Mr. X's Bot)"
    },
    "botEmail": {
      "type": "string",
      "default": "",
      "description": "This email will be used while deploying on GitHub Pages",
      "x-prompt": "What email should we use for deploying on GitHub Pages?"
    },
    "cocEmail": {
      "type": "string",
      "default": "",
      "description": "This email will be used in Code of Conduct",
      "x-prompt": "What email should we use for Code of Conduct?"
    },
    "skipSpectator": {
      "type": "boolean",
      "default": false,
      "description": "When true, does not add @ngneat/spectator"
    },
    "skipPrompts": {
      "type": "boolean",
      "default": false,
      "description": "When true, skips prompts"
    },
    "importModule": {
      "type": "boolean",
      "default": false,
      "description": "When true, \"ng add ...\" command will import your module in client. Works only if skipPrompts is true"
    },
    "importStatement": {
      "type": "string",
      "default": "",
      "description": "The import statement when run through ng add. Works only if importModule is true"
    },
    "packages": {
      "type": "array",
      "default": [],
      "description": "3rd party packages to add when run through ng add. Works only if skipPrompts is true"
    }
  },
  "required": ["name"]
}
