{
  "$schema": "https://json-schema.org/schema",
  "$id": "GeneratorAngularUniversalSetup",
  "cli": "nx",
  "title": "Generate Angular Universal (SSR) setup for an Angular App",
  "description": "Create the additional configuration required to enable SSR via Angular Universal for an Angular application.",
  "type": "object",
  "properties": {
    "project": {
      "type": "string",
      "description": "The name of the application to generate the Angular Universal configuration for.",
      "$default": {
        "$source": "argv",
        "index": 0
      },
      "x-prompt": "What app would you like to generate an Angular Universal configuration for?",
      "x-dropdown": "projects"
    },
    "main": {
      "type": "string",
      "format": "path",
      "description": "The name of the main entry-point file.",
      "default": "main.server.ts"
    },
    "serverFileName": {
      "type": "string",
      "default": "server.ts",
      "description": "The name of the Express server file."
    },
    "serverPort": {
      "type": "number",
      "default": 4000,
      "description": "The port for the Express server."
    },
    "rootModuleFileName": {
      "type": "string",
      "format": "path",
      "description": "The name of the root module file",
      "default": "app.server.module.ts"
    },
    "rootModuleClassName": {
      "type": "string",
      "description": "The name of the root module class.",
      "default": "AppServerModule"
    },
    "standalone": {
      "type": "boolean",
      "description": "Use Standalone Components to bootstrap SSR."
    },
    "hydration": {
      "type": "boolean",
      "description": "Set up Hydration for the SSR application.",
      "default": true
    },
    "serverRouting": {
      "description": "Creates a server application using the Server Routing and App Engine APIs for application using the `application` builder (Developer Preview). _Note: this is only supported in Angular versions 19.x.x_. From Angular 20 onwards, SSR will always enable server routing when using the `application` builder.",
      "type": "boolean"
    },
    "skipFormat": {
      "type": "boolean",
      "description": "Skip formatting the workspace after the generator completes.",
      "x-priority": "internal"
    },
    "skipPackageJson": {
      "type": "boolean",
      "default": false,
      "description": "Do not add dependencies to `package.json`.",
      "x-priority": "internal"
    }
  },
  "required": ["project"],
  "additionalProperties": false
}
