{
  "$schema": "../node_modules/@biomejs/biome/configuration_schema.json",
  "vcs": {
    "enabled": true,
    "clientKind": "git",
    "useIgnoreFile": true
  },
  "assist": {
    "actions": {
      "source": {
        "organizeImports": {
          "level": "on",
          "options": {
            "groups": [
              ":URL:",
              [":BUN:", ":NODE:"],
              ":BLANK_LINE:",
              ":PACKAGE:",
              ":PACKAGE_WITH_PROTOCOL:",
              ":BLANK_LINE:",
              ":ALIAS:",
              ":BLANK_LINE:",
              ":PATH:"
            ],
            "identifierOrder": "natural"
          }
        }
      }
    }
  },
  "formatter": {
    "useEditorconfig": true,
    "enabled": true,
    "lineEnding": "lf",
    "indentStyle": "space",
    "indentWidth": 2
  },
  "json": {
    "formatter": {
      "enabled": true,
      "trailingCommas": "none",
      "lineWidth": 80,
      "indentStyle": "space",
      "indentWidth": 2,
      "lineEnding": "lf"
    }
  },
  "javascript": {
    "formatter": {
      "enabled": true,
      "arrowParentheses": "always",
      "bracketSpacing": true,
      "indentWidth": 2,
      "indentStyle": "space",
      "semicolons": "always",
      "lineWidth": 80,
      "quoteStyle": "single",
      "trailingCommas": "all"
    }
  },
  "linter": {
    "domains": {
      "project": "all"
    },
    "rules": {
      "complexity": {
        "noAdjacentSpacesInRegex": "error",
        "noArguments": "error",
        "noBannedTypes": "error",
        "noCommaOperator": "error",
        "noEmptyTypeParameters": "error",
        "noExcessiveCognitiveComplexity": "error",
        "noExcessiveLinesPerFunction": "off",
        "noExcessiveNestedTestSuites": "error",
        "noExtraBooleanCast": "error",
        "noFlatMapIdentity": "error",
        "noForEach": "error",
        "noImplicitCoercions": "off",
        "noStaticOnlyClass": "error",
        "noThisInStatic": "error",
        "noUselessCatch": "error",
        "noUselessConstructor": "error",
        "noUselessContinue": "error",
        "noUselessEmptyExport": "error",
        "noUselessEscapeInRegex": "error",
        "noUselessLabel": "error",
        "noUselessLoneBlockStatements": "error",
        "noUselessRename": "error",
        "noUselessStringConcat": "error",
        "noUselessStringRaw": "error",
        "noUselessSwitchCase": "error",
        "noUselessTernary": "error",
        "noUselessThisAlias": "error",
        "noUselessTypeConstraint": "error",
        "noUselessUndefinedInitialization": "error",
        "noVoid": "error",
        "useArrowFunction": "error",
        "useDateNow": "error",
        "useFlatMap": "error",
        "useIndexOf": "error",
        "useLiteralKeys": "error",
        "useNumericLiterals": "error",
        "useOptionalChain": "error",
        "useRegexLiterals": "error",
        "useSimpleNumberKeys": "error",
        "useSimplifiedLogicExpression": "error",
        "useWhile": "error"
      },
      "correctness": {
        "noChildrenProp": "off",
        "noConstAssign": "error",
        "noConstantCondition": "error",
        "noConstantMathMinMaxClamp": "error",
        "noConstructorReturn": "error",
        "noEmptyCharacterClassInRegex": "error",
        "noEmptyPattern": "error",
        "noGlobalDirnameFilename": "error",
        "noGlobalObjectCalls": "error",
        "noInnerDeclarations": "error",
        "noInvalidBuiltinInstantiation": "error",
        "noInvalidConstructorSuper": "error",
        "noInvalidUseBeforeDeclaration": "error",
        "noNonoctalDecimalEscape": "error",
        "noPrecisionLoss": "error",
        "noPrivateImports": "error",
        "noProcessGlobal": "error",
        "noRenderReturnValue": "off",
        "noSelfAssign": "error",
        "noSetterReturn": "error",
        "noStringCaseMismatch": "error",
        "noSwitchDeclarations": "error",
        "noUndeclaredDependencies": "error",
        "noUndeclaredVariables": "error",
        "noUnreachable": "error",
        "noUnreachableSuper": "error",
        "noUnsafeFinally": "error",
        "noUnsafeOptionalChaining": "error",
        "noUnusedFunctionParameters": "error",
        "noUnusedImports": "error",
        "noUnusedLabels": "error",
        "noUnusedPrivateClassMembers": "error",
        "noUnusedVariables": {
          "level": "error",
          "fix": "none"
        },
        "noVoidTypeReturn": "error",
        "useGraphqlNamedOperations": "error",
        "useImportExtensions": "error",
        "useIsNan": "error",
        "useJsonImportAttributes": "error",
        "useParseIntRadix": "error",
        "useSingleJsDocAsterisk": "error",
        "useValidForDirection": "error",
        "useValidTypeof": "error",
        "useYield": "error"
      },
      "nursery": {
        "noContinue": "error",
        "noDeprecatedImports": "error",
        "noDuplicateDependencies": "off",
        "noEmptySource": "error",
        "noEqualsToNull": "off",
        "noFloatingPromises": "error",
        "noForIn": "error",
        "noImportCycles": "error",
        "noIncrementDecrement": "error",
        "noMisusedPromises": "error",
        "noMultiStr": "error",
        "noParametersOnlyUsedInRecursion": "error",
        "noProto": "error",
        "noShadow": "error",
        "noUnnecessaryConditions": "error",
        "noUnusedExpressions": "error",
        "noUselessCatchBinding": "error",
        "noUselessUndefined": "error",
        "useArraySortCompare": "info",
        "useConsistentArrowReturn": "error",
        "useExhaustiveSwitchCases": "error",
        "useExplicitType": "off",
        "useFind": "error",
        "useMaxParams": {
          "level": "error",
          "options": {
            "max": 4
          }
        },
        "useSpread": "error"
      },
      "performance": {
        "noAccumulatingSpread": "error",
        "noAwaitInLoops": "error",
        "noBarrelFile": "error",
        "noDelete": "error",
        "noDynamicNamespaceImportAccess": "error",
        "noNamespaceImport": "off",
        "noReExportAll": "error",
        "useTopLevelRegex": "info"
      },
      "security": {
        "noGlobalEval": "error"
      },
      "style": {
        "noCommonJs": "error",
        "noDefaultExport": "error",
        "noEnum": "error",
        "noExportedImports": "error",
        "noInferrableTypes": "error",
        "noMagicNumbers": "off",
        "noNamespace": "error",
        "noNegationElse": "error",
        "noNestedTernary": "error",
        "noNonNullAssertion": "error",
        "noParameterAssign": "error",
        "noShoutyConstants": "error",
        "noSubstr": "error",
        "noUnusedTemplateLiteral": "error",
        "noUselessElse": "error",
        "noYodaExpression": "error",
        "useArrayLiterals": "error",
        "useAsConstAssertion": "error",
        "useAtIndex": "error",
        "useBlockStatements": "error",
        "useCollapsedElseIf": "error",
        "useCollapsedIf": "error",
        "useConst": "error",
        "useConsistentArrayType": {
          "level": "error",
          "options": {
            "syntax": "generic"
          }
        },
        "useConsistentBuiltinInstantiation": "error",
        "useConsistentMemberAccessibility": {
          "level": "error",
          "options": {
            "accessibility": "explicit"
          }
        },
        "useConsistentObjectDefinitions": {
          "level": "error",
          "options": {
            "syntax": "shorthand"
          }
        },
        "useConsistentTypeDefinitions": {
          "level": "error",
          "options": {
            "style": "interface"
          }
        },
        "useDefaultParameterLast": "error",
        "useDefaultSwitchClause": "error",
        "useEnumInitializers": "error",
        "useExplicitLengthCheck": "error",
        "useExportType": "error",
        "useExponentiationOperator": "error",
        "useExportsLast": "off",
        "useFilenamingConvention": "off",
        "useForOf": "error",
        "useGraphqlNamingConvention": "error",
        "useGroupedAccessorPairs": "error",
        "useImportType": {
          "level": "error",
          "options": {
            "style": "separatedType"
          }
        },
        "useLiteralEnumMembers": "error",
        "useNamingConvention": {
          "level": "error",
          "options": {
            "strictCase": false
          }
        },
        "useNodejsImportProtocol": "error",
        "useNumberNamespace": "error",
        "useNumericSeparators": "error",
        "useObjectSpread": "error",
        "useSelfClosingElements": "error",
        "useShorthandAssign": "error",
        "useShorthandFunctionType": "error",
        "useSingleVarDeclarator": "error",
        "useSymbolDescription": "error",
        "useTemplate": "error",
        "useThrowNewError": "error",
        "useThrowOnlyError": "error",
        "useTrimStartEnd": "error",
        "useUnifiedTypeSignatures": "error"
      },
      "suspicious": {
        "noAlert": "error",
        "noApproximativeNumericConstant": "error",
        "noAssignInExpressions": "error",
        "noAsyncPromiseExecutor": "error",
        "noBiomeFirstException": "error",
        "noBitwiseOperators": "error",
        "noCatchAssign": "error",
        "noClassAssign": "error",
        "noCompareNegZero": "error",
        "noConfusingLabels": "error",
        "noConfusingVoidType": "error",
        "noConsole": "error",
        "noConstEnum": "error",
        "noConstantBinaryExpressions": "error",
        "noControlCharactersInRegex": "error",
        "noDebugger": "error",
        "noDocumentCookie": "error",
        "noDoubleEquals": "error",
        "noDuplicateCase": "error",
        "noDuplicateClassMembers": "error",
        "noDuplicateElseIf": "error",
        "noDuplicateObjectKeys": "error",
        "noDuplicateParameters": "error",
        "noDuplicateTestHooks": "error",
        "noEmptyBlock": "error",
        "noEmptyBlockStatements": "error",
        "noEmptyInterface": "error",
        "noEvolvingTypes": "error",
        "noExplicitAny": "error",
        "noExportsInTest": "error",
        "noExtraNonNullAssertion": "error",
        "noFallthroughSwitchClause": "error",
        "noFocusedTests": "error",
        "noFunctionAssign": "error",
        "noGlobalAssign": "error",
        "noGlobalIsFinite": "error",
        "noGlobalIsNan": "error",
        "noImportAssign": "error",
        "noImplicitAnyLet": "error",
        "noIrregularWhitespace": "error",
        "noLabelVar": "error",
        "noMisleadingCharacterClass": "error",
        "noMisleadingInstantiator": "error",
        "noMisplacedAssertion": "error",
        "noMisrefactoredShorthandAssign": "error",
        "noNonNullAssertedOptionalChain": "error",
        "noOctalEscape": "error",
        "noPrototypeBuiltins": "error",
        "noQuickfixBiome": "error",
        "noRedundantUseStrict": "error",
        "noRedeclare": "error",
        "noSelfCompare": "error",
        "noShadowRestrictedNames": "error",
        "noSkippedTests": "error",
        "noTemplateCurlyInString": "error",
        "noThenProperty": "error",
        "noTsIgnore": "error",
        "noUnassignedVariables": "error",
        "noUnsafeDeclarationMerging": "error",
        "noUnsafeNegation": "error",
        "noUselessEscapeInString": "error",
        "noUselessRegexBackrefs": "error",
        "noVar": "error",
        "noWith": "error",
        "useAdjacentOverloadSignatures": "error",
        "useAwait": "error",
        "useBiomeIgnoreFolder": "error",
        "useDefaultSwitchClauseLast": "error",
        "useErrorMessage": "error",
        "useGetterReturn": "error",
        "useGoogleFontDisplay": "error",
        "useGuardForIn": "off",
        "useIsArray": "error",
        "useIterableCallbackReturn": "error",
        "useNamespaceKeyword": "off",
        "useNumberToFixedDigitsArgument": "error",
        "useStaticResponseMethods": "error",
        "useStrictMode": "off"
      }
    }
  },
  "overrides": [
    {
      "includes": ["**/{vite,vitest}.config.ts", "**/.vitepress/config.ts"],
      "linter": {
        "rules": {
          "style": {
            "noDefaultExport": "off"
          }
        }
      }
    },
    {
      "includes": ["**/*.spec.{ts,tsx}"],
      "linter": {
        "rules": {
          "style": {
            "useNamingConvention": {
              "level": "error",
              "options": {
                "strictCase": false,
                "conventions": [
                  {
                    "selector": {
                      "kind": "objectLiteralProperty"
                    },
                    "formats": ["PascalCase", "camelCase"]
                  },
                  {
                    "selector": {
                      "kind": "typeProperty"
                    },
                    "formats": ["PascalCase", "camelCase"]
                  }
                ]
              }
            }
          }
        }
      }
    }
  ]
}
