{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/karakum-configuration-file/latest.json",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/karakum-team/karakum/master/karakum-schema/karakum-schema.json",
    "sourceSha256": "0be6e4c6a9791e38537473b0f509224d99bf743d33c9428921db2895f2ad6fd2",
    "fileMatch": [
      "karakum.config.json"
    ],
    "parsers": [
      "json"
    ]
  },
  "type": "object",
  "properties": {
    "annotations": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ],
      "title": "annotations"
    },
    "compilerOptions": {
      "title": "compilerOptions",
      "type": "object",
      "$ref": "https://catalog.lintel.tools/schemas/schemastore/karakum-configuration-file/_shared/latest--tsconfig.json#/$defs/compilerOptionsDefinition/properties/compilerOptions",
      "additionalProperties": false
    },
    "conflictResolutionStrategy": {
      "title": "conflictResolutionStrategy",
      "type": "object",
      "additionalProperties": {
        "$ref": "#/$defs/ConflictResolutionStrategy"
      }
    },
    "cwd": {
      "type": "string",
      "title": "cwd"
    },
    "disclaimer": {
      "type": "string",
      "title": "disclaimer"
    },
    "ignoreInput": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ],
      "title": "ignoreInput"
    },
    "ignoreOutput": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ],
      "title": "ignoreOutput"
    },
    "importInjector": {
      "title": "importInjector",
      "type": "object",
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "importMapper": {
      "title": "importMapper",
      "type": "object",
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        ]
      }
    },
    "inheritanceModifiers": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ],
      "title": "inheritanceModifiers"
    },
    "injections": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ],
      "title": "injections"
    },
    "input": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ],
      "title": "input"
    },
    "inputResolutionStrategy": {
      "anyOf": [
        {
          "$ref": "#/$defs/InputResolutionStrategy"
        },
        {
          "type": "null"
        }
      ],
      "title": "inputResolutionStrategy"
    },
    "inputRoots": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ],
      "title": "inputRoots"
    },
    "isolatedOutputPackage": {
      "type": "boolean",
      "title": "isolatedOutputPackage"
    },
    "libraryName": {
      "type": "string",
      "title": "libraryName"
    },
    "libraryNameOutputPrefix": {
      "type": "boolean",
      "title": "libraryNameOutputPrefix"
    },
    "moduleNameMapper": {
      "title": "moduleNameMapper",
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "mutabilityModifiers": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ],
      "title": "mutabilityModifiers"
    },
    "nameResolvers": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ],
      "title": "nameResolvers"
    },
    "namespaceStrategy": {
      "title": "namespaceStrategy",
      "type": "object",
      "additionalProperties": {
        "$ref": "#/$defs/NamespaceStrategy"
      }
    },
    "output": {
      "type": "string",
      "title": "output"
    },
    "packageNameMapper": {
      "title": "packageNameMapper",
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "plugins": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ],
      "title": "plugins"
    },
    "varianceModifiers": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ],
      "title": "varianceModifiers"
    },
    "verbose": {
      "type": "boolean",
      "title": "verbose"
    }
  },
  "$defs": {
    "NamespaceStrategy": {
      "enum": [
        "ignore",
        "object",
        "package"
      ],
      "type": "string"
    },
    "ConflictResolutionStrategy": {
      "enum": [
        "join",
        "replace",
        "error"
      ],
      "type": "string"
    },
    "InputResolutionStrategy": {
      "enum": [
        "node",
        "plain"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false
}
