{
    "$schema": "https://biomejs.dev/schemas/2.4.10/schema.json",
    "vcs": {
        "enabled": true,
        "clientKind": "git",
        "useIgnoreFile": true
    },
    "formatter": {
        "indentStyle": "space",
        "indentWidth": 4,
        "lineWidth": 150,
        "bracketSpacing": false
    },
    "files": {
        "includes": ["**", "!package.json", "!!**/dist", "!!**/coverage"]
    },
    "linter": {
        "includes": ["**"],
        "rules": {
            "correctness": {
                "noUnusedImports": "error"
            },
            "style": {
                "noParameterAssign": "off",
                "useThrowNewError": "error",
                "useThrowOnlyError": "error",
                "useNamingConvention": {
                    "level": "error",
                    "options": {
                        "strictCase": false,
                        "conventions": [
                            {
                                "selector": {
                                    "kind": "objectLiteralProperty"
                                },
                                "formats": ["snake_case", "camelCase", "CONSTANT_CASE", "PascalCase"]
                            },
                            {
                                "selector": {
                                    "kind": "const"
                                },
                                "formats": ["snake_case", "camelCase", "CONSTANT_CASE", "PascalCase"]
                            },
                            {
                                "selector": {
                                    "kind": "typeProperty"
                                },
                                "formats": ["snake_case", "camelCase", "CONSTANT_CASE", "PascalCase"]
                            },
                            {
                                "selector": {
                                    "kind": "enumMember"
                                },
                                "formats": ["CONSTANT_CASE", "PascalCase"]
                            }
                        ]
                    }
                },
                "useAsConstAssertion": "error",
                "useDefaultParameterLast": "error",
                "useEnumInitializers": "error",
                "useSelfClosingElements": "error",
                "useSingleVarDeclarator": "error",
                "noUnusedTemplateLiteral": "error",
                "useNumberNamespace": "error",
                "noInferrableTypes": "error",
                "noUselessElse": "error"
            },
            "performance": {
                "noDelete": "off"
            },
            "suspicious": {
                "noConstEnum": "off",
                "useAwait": "error"
            },
            "nursery": {
                "useExhaustiveSwitchCases": "error",
                "noFloatingPromises": "error",
                "noMisusedPromises": "error"
            }
        }
    },
    "overrides": [
        {
            "includes": ["test/**"],
            "linter": {
                "rules": {
                    "style": {
                        "noNonNullAssertion": "off",
                        "useNamingConvention": "off"
                    },
                    "suspicious": {
                        "noImplicitAnyLet": "off"
                    }
                }
            }
        }
    ]
}
