{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/clawject-config/latest.json",
  "title": "Clawject configuration schema",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/clawject/clawject/main/packages/core/src/config/schema.json",
    "sourceSha256": "1f518baa139d2ffa3e21adfa71034c4021f4c5cfd34ba9b0fe7d78d31f6f02b7",
    "fileMatch": [
      ".clawjectrc",
      ".clawjectrc.json"
    ],
    "parsers": [
      "json"
    ]
  },
  "type": "object",
  "properties": {
    "unsafeTSVersion": {
      "type": "boolean",
      "default": false,
      "title": "Allows using TypeScript version not officially supported by this version of Clawject.",
      "examples": [
        true,
        false
      ]
    },
    "mode": {
      "type": "string",
      "default": "production",
      "title": "Defines how clawject emit metadata, in development mode for support of watch mode - clawject will emit additional metadata with information about the source file (e.g full file name), in production mode - clawject will not emit \"extra\" metadata.",
      "examples": [
        "development",
        "production"
      ]
    },
    "typeSystem": {
      "type": "string",
      "default": "nominal",
      "title": "Defines which strategy of type comparison should be used. Typescript uses structural comparison by default, clawject uses nominal comparison.",
      "examples": [
        "nominal",
        "structural"
      ]
    },
    "beans": {
      "type": "object",
      "properties": {
        "defaultExternal": {
          "type": "boolean",
          "default": true,
          "title": "Defines whether beans should be considered external by default in all configuration and application classes.",
          "examples": [
            true,
            false
          ]
        }
      },
      "additionalProperties": false
    },
    "imports": {
      "type": "object",
      "properties": {
        "defaultExternal": {
          "type": "boolean",
          "default": true,
          "title": "Defines whether import of configuration should be considered external by default in all configuration and application classes.",
          "examples": [
            true,
            false
          ]
        }
      },
      "additionalProperties": false
    },
    "logLevel": {
      "type": "string",
      "default": "none",
      "title": "Defines the level of logging.",
      "examples": [
        "error",
        "warn",
        "info",
        "debug",
        "verbose",
        "none"
      ]
    }
  },
  "additionalProperties": false,
  "additionalItems": false
}
