diff --git a/biome.json b/biome.json index cf10b330..e235e42d 100644 --- a/biome.json +++ b/biome.json @@ -1,210 +1,382 @@ { - "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", - "vcs": { - "enabled": true, - "clientKind": "git", - "useIgnoreFile": true - }, - "files": { - "ignoreUnknown": false, - "ignore": [] - }, - "formatter": { - "enabled": true, - "useEditorconfig": true, - "formatWithErrors": false, - "indentStyle": "space", - "indentWidth": 2, - "lineEnding": "lf", - "lineWidth": 100, - "attributePosition": "auto", - "bracketSpacing": true, - "ignore": [ - "**/package.json", - "**/yarn.lock", - "coverage/**", - "**/coverage/**", - "**/build", - "**/dist", - "**/node_modules", - "**/vendor-js/**", - "**/*-css.ts", - "**/*-svg.ts" - ] - }, - "organizeImports": { - "enabled": true - }, - "linter": { - "enabled": true, - "rules": { - "recommended": false, - "a11y": { - "noBlankTarget": "error" - }, - "complexity": { - "noBannedTypes": "error", - "noExtraBooleanCast": "error", - "noMultipleSpacesInRegularExpressionLiterals": "error", - "noUselessCatch": "error", - "noUselessConstructor": "off", - "noUselessRename": "warn", - "noUselessStringConcat": "warn", - "noUselessTernary": "error", - "noUselessThisAlias": "error", - "noUselessTypeConstraint": "error", - "noUselessUndefinedInitialization": "error", - "noWith": "error", - "useArrowFunction": "warn" - }, - "correctness": { - "noConstAssign": "error", - "noConstantCondition": "error", - "noEmptyCharacterClassInRegex": "error", - "noEmptyPattern": "off", - "noGlobalObjectCalls": "error", - "noInnerDeclarations": "error", - "noInvalidConstructorSuper": "error", - "noNewSymbol": "error", - "noNonoctalDecimalEscape": "error", - "noPrecisionLoss": "error", - "noSelfAssign": "error", - "noSetterReturn": "error", - "noSwitchDeclarations": "error", - "noUndeclaredVariables": "error", - "noUnreachable": "error", - "noUnreachableSuper": "error", - "noUnsafeFinally": "error", - "noUnsafeOptionalChaining": "error", - "noUnusedImports": "error", - "noUnusedLabels": "error", - "noUnusedVariables": "error", - "useArrayLiterals": "off", - "useExhaustiveDependencies": "warn", - "useHookAtTopLevel": "error", - "useIsNan": "error", - "useJsxKeyInIterable": "error", - "useValidForDirection": "error", - "useYield": "error" - }, - "security": { - "noDangerouslySetInnerHtml": "warn" - }, - "style": { - "noArguments": "warn", - "noDoneCallback": "error", - "noNamespace": "error", - "noRestrictedGlobals": { - "level": "error", - "options": { - "deniedGlobals": [ - "parseInt" - ] - } - }, - "noUselessElse": "warn", - "noVar": "warn", - "useAsConstAssertion": "error", - "useBlockStatements": "off", - "useCollapsedElseIf": "error", - "useConsistentBuiltinInstantiation": "error", - "useTemplate": "warn" - }, - "suspicious": { - "noAssignInExpressions": "error", - "noAsyncPromiseExecutor": "error", - "noCatchAssign": "error", - "noClassAssign": "error", - "noCommentText": "error", - "noCompareNegZero": "error", - "noConsole": { - "level": "error", - "options": { - "allow": [ - "warn", - "error", - "info" - ] - } - }, - "noControlCharactersInRegex": "error", - "noDebugger": "error", - "noDuplicateCase": "error", - "noDuplicateClassMembers": "error", - "noDuplicateJsxProps": "error", - "noDuplicateObjectKeys": "error", - "noDuplicateParameters": "error", - "noEmptyBlockStatements": "off", - "noExplicitAny": "warn", - "noExportsInTest": "error", - "noExtraNonNullAssertion": "error", - "noFallthroughSwitchClause": "error", - "noFocusedTests": "error", - "noFunctionAssign": "error", - "noGlobalAssign": "error", - "noImportAssign": "error", - "noMisleadingCharacterClass": "error", - "noMisleadingInstantiator": "error", - "noMisplacedAssertion": "error", - "noPrototypeBuiltins": "error", - "noRedeclare": "error", - "noShadowRestrictedNames": "error", - "noSkippedTests": "warn", - "noSparseArray": "error", - "noUnsafeDeclarationMerging": "error", - "noUnsafeNegation": "error", - "useGetterReturn": "error", - "useValidTypeof": "error" - } - }, - "ignore": [ - "**/*.md", - "**/build", - "**/dist", - "**/node_modules", - "**/vendor-js/**", - "**/*.json" - ] - }, - "javascript": { - "formatter": { - "jsxQuoteStyle": "double", - "quoteProperties": "asNeeded", - "trailingCommas": "es5", - "semicolons": "always", - "arrowParentheses": "always", - "bracketSameLine": false, - "quoteStyle": "single", - "attributePosition": "auto", - "bracketSpacing": true - }, - "jsxRuntime": "transparent", - "globals": [ - "global", - "browser", - "expect" - ] - }, - "css": { - "parser": { - "cssModules": true - } - }, - "overrides": [ - { - "include": [ - "**/*.test.*" - ], - "linter": { - "rules": { - "suspicious": { - "noExplicitAny": "off" - }, - "correctness": { - "noUndeclaredVariables": "off" - } - } - } - } - ] -} \ No newline at end of file + "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "vcs": { + "enabled": true, + "clientKind": "git", + "useIgnoreFile": true, + "defaultBranch": "main" + }, + "files": { + "ignoreUnknown": false, + "ignore": [ + "**/node_modules", + "**/dist", + "**/build", + "**/coverage", + "**/.next", + "**/.cache", + "**/vendor-js/**", + "**/*-css.ts", + "**/*-svg.ts", + "**/package-lock.json", + "**/yarn.lock", + "**/pnpm-lock.yaml" + ], + "maxSize": 10485760 + }, + "formatter": { + "enabled": true, + "useEditorconfig": true, + "formatWithErrors": false, + "indentStyle": "space", + "indentWidth": 2, + "lineEnding": "lf", + "lineWidth": 100, + "attributePosition": "auto", + "bracketSpacing": true, + "ignore": [ + "**/package.json", + "**/yarn.lock", + "**/pnpm-lock.yaml", + "**/package-lock.json", + "coverage/**", + "**/coverage/**", + "**/build", + "**/dist", + "**/node_modules", + "**/vendor-js/**", + "**/*-css.ts", + "**/*-svg.ts", + "**/.next/**", + "**/out/**" + ] + }, + "organizeImports": { + "enabled": true + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "a11y": { + "noBlankTarget": "error", + "useAltText": "error", + "useButtonType": "error", + "useKeyWithClickEvents": "warn", + "useValidAriaProps": "error", + "useValidAriaValues": "error" + }, + "complexity": { + "noBannedTypes": "error", + "noExtraBooleanCast": "error", + "noForEach": "warn", + "noMultipleSpacesInRegularExpressionLiterals": "error", + "noStaticOnlyClass": "warn", + "noUselessCatch": "error", + "noUselessConstructor": "error", + "noUselessFragments": "error", + "noUselessLabel": "error", + "noUselessLoneBlockStatements": "error", + "noUselessRename": "error", + "noUselessStringConcat": "error", + "noUselessTernary": "error", + "noUselessThisAlias": "error", + "noUselessTypeConstraint": "error", + "noUselessUndefinedInitialization": "error", + "noVoid": "warn", + "noWith": "error", + "useArrowFunction": "warn", + "useFlatMap": "warn", + "useLiteralKeys": "warn", + "useOptionalChain": "warn", + "useRegexLiterals": "warn", + "useSimpleNumberKeys": "warn", + "useSimplifiedLogicExpression": "warn" + }, + "correctness": { + "noChildrenProp": "error", + "noConstAssign": "error", + "noConstantCondition": "error", + "noConstructorReturn": "error", + "noEmptyCharacterClassInRegex": "error", + "noEmptyPattern": "error", + "noGlobalObjectCalls": "error", + "noInnerDeclarations": "error", + "noInvalidConstructorSuper": "error", + "noInvalidNewBuiltin": "error", + "noNewSymbol": "error", + "noNonoctalDecimalEscape": "error", + "noPrecisionLoss": "error", + "noRenderReturnValue": "error", + "noSelfAssign": "error", + "noSetterReturn": "error", + "noSwitchDeclarations": "error", + "noUndeclaredVariables": "error", + "noUnreachable": "error", + "noUnreachableSuper": "error", + "noUnsafeFinally": "error", + "noUnsafeOptionalChaining": "error", + "noUnusedImports": "error", + "noUnusedLabels": "error", + "noUnusedPrivateClassMembers": "warn", + "noUnusedVariables": "error", + "noVoidElementsWithChildren": "error", + "noVoidTypeReturn": "error", + "useArrayLiterals": "warn", + "useExhaustiveDependencies": "warn", + "useHookAtTopLevel": "error", + "useIsNan": "error", + "useJsxKeyInIterable": "error", + "useValidForDirection": "error", + "useYield": "error" + }, + "nursery": { + "noDuplicateElseIf": "error", + "noEvolvingTypes": "warn", + "noMissingVarFunction": "error", + "noUndeclaredDependencies": "off", + "noUnusedFunctionParameters": "warn", + "useAdjacentOverloadSignatures": "error", + "useSortedClasses": "off" + }, + "performance": { + "noAccumulatingSpread": "warn", + "noDelete": "warn" + }, + "security": { + "noDangerouslySetInnerHtml": "warn", + "noDangerouslySetInnerHtmlWithChildren": "error", + "noGlobalEval": "error" + }, + "style": { + "noArguments": "error", + "noCommaOperator": "warn", + "noDefaultExport": "off", + "noDoneCallback": "error", + "noImplicitBoolean": "off", + "noInferrableTypes": "warn", + "noNamespace": "error", + "noNamespaceImport": "off", + "noNegationElse": "off", + "noNonNullAssertion": "warn", + "noParameterAssign": "warn", + "noParameterProperties": "off", + "noRestrictedGlobals": { + "level": "error", + "options": { + "deniedGlobals": ["parseInt", "parseFloat", "isNaN", "isFinite"] + } + }, + "noShoutyConstants": "off", + "noUnusedTemplateLiteral": "warn", + "noUselessElse": "warn", + "noVar": "error", + "useAsConstAssertion": "error", + "useBlockStatements": "off", + "useCollapsedElseIf": "error", + "useConsistentArrayType": { + "level": "warn", + "options": { + "syntax": "shorthand" + } + }, + "useConsistentBuiltinInstantiation": "error", + "useConst": "error", + "useDefaultParameterLast": "warn", + "useEnumInitializers": "warn", + "useExponentiationOperator": "error", + "useExportType": "warn", + "useFilenamingConvention": "off", + "useForOf": "warn", + "useFragmentSyntax": "warn", + "useImportType": "warn", + "useNamingConvention": "off", + "useNodejsImportProtocol": "off", + "useNumberNamespace": "error", + "useNumericLiterals": "error", + "useSelfClosingElements": "warn", + "useShorthandArrayType": "warn", + "useShorthandAssign": "warn", + "useShorthandFunctionType": "warn", + "useSingleCaseStatement": "warn", + "useSingleVarDeclarator": "warn", + "useTemplate": "error", + "useWhile": "warn" + }, + "suspicious": { + "noApproximativeNumericConstant": "warn", + "noArrayIndexKey": "warn", + "noAssignInExpressions": "error", + "noAsyncPromiseExecutor": "error", + "noCatchAssign": "error", + "noClassAssign": "error", + "noCommentText": "error", + "noCompareNegZero": "error", + "noConfusingLabels": "error", + "noConfusingVoidType": "warn", + "noConsole": { + "level": "warn", + "options": { + "allow": ["warn", "error", "info", "debug"] + } + }, + "noConsoleLog": "off", + "noConstEnum": "warn", + "noControlCharactersInRegex": "error", + "noDebugger": "error", + "noDoubleEquals": "warn", + "noDuplicateCase": "error", + "noDuplicateClassMembers": "error", + "noDuplicateJsxProps": "error", + "noDuplicateObjectKeys": "error", + "noDuplicateParameters": "error", + "noDuplicateTestHooks": "error", + "noEmptyBlockStatements": "warn", + "noEmptyInterface": "warn", + "noExplicitAny": "warn", + "noExportsInTest": "error", + "noExtraNonNullAssertion": "error", + "noFallthroughSwitchClause": "error", + "noFocusedTests": "error", + "noFunctionAssign": "error", + "noGlobalAssign": "error", + "noImportAssign": "error", + "noLabelVar": "error", + "noMisleadingCharacterClass": "error", + "noMisleadingInstantiator": "error", + "noMisplacedAssertion": "error", + "noPrototypeBuiltins": "error", + "noRedeclare": "error", + "noRedundantUseStrict": "error", + "noSelfCompare": "error", + "noShadowRestrictedNames": "error", + "noSkippedTests": "warn", + "noSparseArray": "error", + "noThenProperty": "error", + "noUnsafeDeclarationMerging": "error", + "noUnsafeNegation": "error", + "useAwait": "error", + "useDefaultSwitchClauseLast": "error", + "useGetterReturn": "error", + "useIsArray": "warn", + "useNamespaceKeyword": "error", + "useValidTypeof": "error" + } + }, + "ignore": [ + "**/*.md", + "**/build", + "**/dist", + "**/node_modules", + "**/vendor-js/**", + "**/*.json", + "**/.next/**", + "**/out/**", + "**/coverage/**" + ] + }, + "javascript": { + "formatter": { + "jsxQuoteStyle": "double", + "quoteProperties": "asNeeded", + "trailingCommas": "es5", + "semicolons": "always", + "arrowParentheses": "always", + "bracketSameLine": false, + "quoteStyle": "single", + "attributePosition": "auto", + "bracketSpacing": true + }, + "jsxRuntime": "transparent", + "globals": ["global", "browser", "expect", "process", "console", "__dirname", "__filename"] + }, + "json": { + "parser": { + "allowComments": true, + "allowTrailingCommas": false + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 2, + "lineWidth": 100, + "trailingCommas": "none" + } + }, + "css": { + "parser": { + "cssModules": true + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 2, + "lineWidth": 100, + "quoteStyle": "single" + }, + "linter": { + "enabled": true + } + }, + "overrides": [ + { + "include": ["**/*.test.*", "**/*.spec.*", "**/__tests__/**", "**/__mocks__/**"], + "linter": { + "rules": { + "suspicious": { + "noExplicitAny": "off", + "noConsole": "off" + }, + "correctness": { + "noUndeclaredVariables": "off" + }, + "style": { + "noNonNullAssertion": "off" + }, + "complexity": { + "noUselessConstructor": "off" + } + } + } + }, + { + "include": ["**/*.config.*", "**/config/**"], + "linter": { + "rules": { + "suspicious": { + "noExplicitAny": "off" + }, + "style": { + "noDefaultExport": "off" + } + } + } + }, + { + "include": ["**/*.d.ts"], + "linter": { + "rules": { + "correctness": { + "noUnusedVariables": "off" + }, + "suspicious": { + "noExplicitAny": "off", + "noEmptyInterface": "off" + }, + "style": { + "useNamingConvention": "off" + } + } + } + }, + { + "include": ["**/scripts/**", "**/cli/**"], + "linter": { + "rules": { + "suspicious": { + "noConsole": "off" + } + } + } + } + ]