{
    "$schema": "https://biomejs.dev/schemas/2.2.5/schema.json",
    "vcs": { "enabled": true, "clientKind": "git", "useIgnoreFile": false },
    "files": {
        "ignoreUnknown": true,
        "includes": [
            "**/src/**",
            "**/tests/**",
            "apollo.config.js",
            "biome.json",
            "codegen.yml",
            "nodemon.json",
            "package.json",
            "tsconfig.json",
            "tsconfig.build.json",
            "vitest.config.mts",
            "vitest.setup.mts",
            "!**/generated"
        ]
    },
    "formatter": {
        "enabled": true,
        "useEditorconfig": true,
        "formatWithErrors": false,
        "indentStyle": "space",
        "indentWidth": 4,
        "lineEnding": "lf",
        "lineWidth": 80,
        "attributePosition": "auto",
        "bracketSpacing": true,
        "includes": ["**"]
    },
    "assist": {
        "actions": {
            "source": {
                "organizeImports": {
                    "level": "on",
                    "options": {
                        "groups": [":NODE:", { "type": false }]
                    }
                }
            }
        }
    },
    "linter": {
        "enabled": true,
        "domains": { "react": "none" },
        "rules": {
            "a11y": "off",
            "complexity": {
                "noExcessiveCognitiveComplexity": "info",
                "noExcessiveNestedTestSuites": "off",
                "noImportantStyles": "off",
                "noUselessFragments": "warn",
                "useOptionalChain": "info"
            },
            "correctness": {
                "noNestedComponentDefinitions": "info",
                "noReactPropAssignments": "error",
                "noUnknownProperty": "info",
                "useExhaustiveDependencies": "warn",
                "useUniqueElementIds": "off",
                "noUnusedFunctionParameters": "off"
            },
            "performance": {
                "noAccumulatingSpread": "warn",
                "noAwaitInLoops": "warn",
                "noDelete": "warn",
                "useTopLevelRegex": "warn"
            },
            "security": {
                "noBlankTarget": "warn",
                "noDangerouslySetInnerHtml": "off"
            },
            "style": {
                "noDefaultExport": "warn",
                "noDescendingSpecificity": "info",
                "noEnum": "error",
                "useAtIndex": "warn",
                "useConsistentArrayType": "warn",
                "useExplicitLengthCheck": "warn",
                "useFilenamingConvention": {
                    "level": "error",
                    "options": {
                        "strictCase": true,
                        "requireAscii": true,
                        "filenameCases": ["kebab-case"]
                    }
                },
                "useForOf": "warn",
                "useImportType": {
                    "level": "warn",
                    "options": {
                        "style": "separatedType"
                    }
                },
                "useTemplate": "info",
                "useThrowNewError": "error",
                "useThrowOnlyError": "error"
            },
            "suspicious": {
                "noArrayIndexKey": "info",
                "noConsole": {
                    "level": "warn",
                    "options": { "allow": ["warn", "error"] }
                },
                "noImplicitAnyLet": "off",
                "noMisplacedAssertion": "error",
                "useGuardForIn": "warn",
                "useIterableCallbackReturn": "off"
            },
            "nursery": {}
        },
        "includes": [
            "**/scripts/**",
            "**/src/**",
            "**/tests/**",
            "!**/generated/**",
            "!**/tests/definitions/**"
        ]
    },
    "graphql": {
        "assist": { "enabled": true },
        "formatter": { "enabled": true },
        "linter": { "enabled": true }
    },
    "javascript": {
        "formatter": {
            "jsxQuoteStyle": "double",
            "quoteProperties": "asNeeded",
            "trailingCommas": "es5",
            "semicolons": "always",
            "arrowParentheses": "asNeeded",
            "bracketSameLine": false,
            "quoteStyle": "single",
            "attributePosition": "auto",
            "bracketSpacing": true
        }
    },
    "overrides": [
        {
            "includes": ["**/*.yml", "**/*.yaml"],
            "formatter": { "indentWidth": 2 }
        },
        {
            "includes": ["**/package.json"],
            "formatter": { "indentWidth": 4 }
        },
        {
            "includes": ["**/__mocks__/**", "**/__tests__/**", "**/*.spec.*"],
            "linter": {
                "rules": {
                    "complexity": {
                        "noBannedTypes": "off"
                    },
                    "performance": {
                        "noDelete": "off",
                        "useTopLevelRegex": "off"
                    },
                    "style": {
                        "noNonNullAssertion": "off"
                    },
                    "suspicious": {
                        "noMisplacedAssertion": "error",
                        "noExplicitAny": "off"
                    }
                }
            }
        },
        {
            "includes": ["**/connectors/ows-account/formatters/formatters.ts"],
            "linter": {
                "rules": {
                    "complexity": {
                        "noExcessiveCognitiveComplexity": "off"
                    }
                }
            }
        }
    ]
}
