{
  "$schema": "https://biomejs.dev/schemas/latest/schema.json",
  "vcs": {
    "enabled": true,
    "clientKind": "git",
    "useIgnoreFile": true,
    "defaultBranch": "main"
  },
  "files": {
    "ignoreUnknown": false,
    "maxSize": 2097152
  },
  "formatter": {
    "enabled": true,
    "indentStyle": "space",
    "indentWidth": 2,
    "lineWidth": 100,
    "lineEnding": "lf"
  },
  "javascript": {
    "formatter": {
      "quoteStyle": "double",
      "jsxQuoteStyle": "double",
      "quoteProperties": "asNeeded",
      "trailingCommas": "all",
      "semicolons": "always",
      "arrowParentheses": "always",
      "bracketSameLine": false
    }
  },
  "json": {
    "formatter": {
      "trailingCommas": "none"
    }
  },
  "linter": {
    "enabled": true,
    "rules": {
      "recommended": true,
      "correctness": {
        "noUnresolvedImports": "error"
      },
      "suspicious": {
        "noConsole": {
          "level": "warn",
          "options": { "allow": ["error", "warn", "info"] }
        },
        "noImportCycles": "warn",
        "noUnusedExpressions": "error"
      },
      "style": {
        "useForOf": "warn",
        "useNamingConvention": "warn",
        "useConsistentTypeDefinitions": {
          "level": "warn",
          "options": { "define": "interface" }
        }
      },
      "complexity": {
        "noExcessiveCognitiveComplexity": {
          "level": "warn",
          "options": { "maxAllowedComplexity": 15 }
        }
      },
      "performance": {
        "noDelete": "warn"
      },
      "security": {
        "noBlankTarget": "error",
        "noDangerouslySetInnerHtml": "error",
        "noDangerouslySetInnerHtmlWithChildren": "error",
        "noGlobalEval": "error",
        "noSecrets": "warn"
      }
    }
  },
  "overrides": [
    {
      "includes": ["**/*.test.*", "**/*.spec.*", "**/test/**"],
      "linter": {
        "rules": {
          "suspicious": {
            "noConsole": "off",
            "noImportCycles": "off"
          }
        }
      }
    }
  ]
}
