UNPKG

@3fs/eslint-config

Version:
2,287 lines 66.1 kB
$ eslint --config ./configs/react-ts.mjs --print-config ./test.mjs { "settings": { "react": { "version": "detect" }, "import/resolver": { "node": { "paths": [ "src" ], "extensions": [ ".js", ".jsx", ".d.ts", ".ts", ".tsx", ".svg" ] } } }, "linterOptions": { "reportUnusedDisableDirectives": 1 }, "rules": { "curly": [ 0, "all" ], "no-unexpected-multiline": [ 2 ], "@typescript-eslint/lines-around-comment": [ 0 ], "@typescript-eslint/quotes": [ 0 ], "babel/quotes": [ 0 ], "unicorn/template-indent": [ 0 ], "vue/html-self-closing": [ 0 ], "vue/max-len": [ 0 ], "@babel/object-curly-spacing": [ 0 ], "@babel/semi": [ 0 ], "@typescript-eslint/block-spacing": [ 0 ], "@typescript-eslint/brace-style": [ 0 ], "@typescript-eslint/comma-dangle": [ 0 ], "@typescript-eslint/comma-spacing": [ 0 ], "@typescript-eslint/func-call-spacing": [ 0 ], "@typescript-eslint/indent": [ 0 ], "@typescript-eslint/key-spacing": [ 0 ], "@typescript-eslint/keyword-spacing": [ 0 ], "@typescript-eslint/member-delimiter-style": [ 0 ], "@typescript-eslint/no-extra-parens": [ 0 ], "@typescript-eslint/no-extra-semi": [ 0 ], "@typescript-eslint/object-curly-spacing": [ 0 ], "@typescript-eslint/semi": [ 0 ], "@typescript-eslint/space-before-blocks": [ 0 ], "@typescript-eslint/space-before-function-paren": [ 0 ], "@typescript-eslint/space-infix-ops": [ 0 ], "@typescript-eslint/type-annotation-spacing": [ 0 ], "babel/object-curly-spacing": [ 0 ], "babel/semi": [ 0 ], "flowtype/boolean-style": [ 0 ], "flowtype/delimiter-dangle": [ 0 ], "flowtype/generic-spacing": [ 0 ], "flowtype/object-type-curly-spacing": [ 0 ], "flowtype/object-type-delimiter": [ 0 ], "flowtype/quotes": [ 0 ], "flowtype/semi": [ 0 ], "flowtype/space-after-type-colon": [ 0 ], "flowtype/space-before-generic-bracket": [ 0 ], "flowtype/space-before-type-colon": [ 0 ], "flowtype/union-intersection-spacing": [ 0 ], "react/jsx-child-element-spacing": [ 0 ], "react/jsx-closing-bracket-location": [ 0 ], "react/jsx-closing-tag-location": [ 0 ], "react/jsx-curly-newline": [ 0 ], "react/jsx-curly-spacing": [ 0 ], "react/jsx-equals-spacing": [ 0 ], "react/jsx-first-prop-new-line": [ 0 ], "react/jsx-indent": [ 0 ], "react/jsx-indent-props": [ 0 ], "react/jsx-max-props-per-line": [ 0 ], "react/jsx-newline": [ 0 ], "react/jsx-one-expression-per-line": [ 0 ], "react/jsx-props-no-multi-spaces": [ 0 ], "react/jsx-tag-spacing": [ 0 ], "react/jsx-wrap-multilines": [ 0 ], "standard/array-bracket-even-spacing": [ 0 ], "standard/computed-property-even-spacing": [ 0 ], "standard/object-curly-even-spacing": [ 0 ], "unicorn/empty-brace-spaces": [ 0 ], "unicorn/no-nested-ternary": [ 0 ], "unicorn/number-literal-case": [ 0 ], "vue/array-bracket-newline": [ 0 ], "vue/array-bracket-spacing": [ 0 ], "vue/array-element-newline": [ 0 ], "vue/arrow-spacing": [ 0 ], "vue/block-spacing": [ 0 ], "vue/block-tag-newline": [ 0 ], "vue/brace-style": [ 0 ], "vue/comma-dangle": [ 0 ], "vue/comma-spacing": [ 0 ], "vue/comma-style": [ 0 ], "vue/dot-location": [ 0 ], "vue/func-call-spacing": [ 0 ], "vue/html-closing-bracket-newline": [ 0 ], "vue/html-closing-bracket-spacing": [ 0 ], "vue/html-end-tags": [ 0 ], "vue/html-indent": [ 0 ], "vue/html-quotes": [ 0 ], "vue/key-spacing": [ 0 ], "vue/keyword-spacing": [ 0 ], "vue/max-attributes-per-line": [ 0 ], "vue/multiline-html-element-content-newline": [ 0 ], "vue/multiline-ternary": [ 0 ], "vue/mustache-interpolation-spacing": [ 0 ], "vue/no-extra-parens": [ 0 ], "vue/no-multi-spaces": [ 0 ], "vue/no-spaces-around-equal-signs-in-attribute": [ 0 ], "vue/object-curly-newline": [ 0 ], "vue/object-curly-spacing": [ 0 ], "vue/object-property-newline": [ 0 ], "vue/operator-linebreak": [ 0 ], "vue/quote-props": [ 0 ], "vue/script-indent": [ 0 ], "vue/singleline-html-element-content-newline": [ 0 ], "vue/space-in-parens": [ 0 ], "vue/space-infix-ops": [ 0 ], "vue/space-unary-ops": [ 0 ], "vue/template-curly-spacing": [ 0 ], "space-unary-word-ops": [ 0 ], "generator-star": [ 0 ], "no-comma-dangle": [ 0 ], "no-reserved-keys": [ 0 ], "no-space-before-semi": [ 0 ], "no-wrap-func": [ 0 ], "space-after-function-name": [ 0 ], "space-before-function-parentheses": [ 0 ], "space-in-brackets": [ 0 ], "no-arrow-condition": [ 0 ], "space-after-keywords": [ 0 ], "space-before-keywords": [ 0 ], "space-return-throw-case": [ 0 ], "no-spaced-func": [ 0 ], "indent-legacy": [ 0 ], "array-bracket-newline": [ 0 ], "array-bracket-spacing": [ 0 ], "array-element-newline": [ 0 ], "arrow-parens": [ 0 ], "arrow-spacing": [ 0 ], "block-spacing": [ 0 ], "brace-style": [ 0 ], "comma-dangle": [ 0 ], "comma-spacing": [ 0 ], "comma-style": [ 0 ], "computed-property-spacing": [ 0 ], "dot-location": [ 0 ], "eol-last": [ 0 ], "func-call-spacing": [ 0 ], "function-call-argument-newline": [ 0 ], "function-paren-newline": [ 0 ], "generator-star-spacing": [ 0 ], "implicit-arrow-linebreak": [ 0 ], "indent": [ 0 ], "jsx-quotes": [ 0 ], "key-spacing": [ 0 ], "keyword-spacing": [ 0 ], "linebreak-style": [ 0 ], "lines-around-comment": [ 0 ], "max-len": [ 0 ], "max-statements-per-line": [ 0 ], "multiline-ternary": [ 0 ], "new-parens": [ 0 ], "newline-per-chained-call": [ 0 ], "no-confusing-arrow": [ 0 ], "no-extra-parens": [ 0 ], "no-extra-semi": [ 0 ], "no-floating-decimal": [ 0 ], "no-mixed-operators": [ 0 ], "no-mixed-spaces-and-tabs": [ 0 ], "no-multi-spaces": [ 0 ], "no-multiple-empty-lines": [ 0 ], "no-tabs": [ 0 ], "no-trailing-spaces": [ 0 ], "no-whitespace-before-property": [ 0 ], "nonblock-statement-body-position": [ 0 ], "object-curly-newline": [ 0 ], "object-curly-spacing": [ 0 ], "object-property-newline": [ 0 ], "one-var-declaration-per-line": [ 0 ], "operator-linebreak": [ 0 ], "padded-blocks": [ 0 ], "quote-props": [ 0 ], "quotes": [ 0 ], "rest-spread-spacing": [ 0 ], "semi": [ 0 ], "semi-spacing": [ 0 ], "semi-style": [ 0 ], "space-before-blocks": [ 0 ], "space-before-function-paren": [ 0 ], "space-in-parens": [ 0 ], "space-infix-ops": [ 0 ], "space-unary-ops": [ 0 ], "switch-colon-spacing": [ 0 ], "template-curly-spacing": [ 0 ], "template-tag-spacing": [ 0 ], "wrap-iife": [ 0 ], "wrap-regex": [ 0 ], "yield-star-spacing": [ 0 ], "react/jsx-space-before-closing": [ 0 ], "prettier/prettier": [ 2 ], "arrow-body-style": [ 0, "as-needed" ], "prefer-arrow-callback": [ 0, { "allowNamedFunctions": false, "allowUnboundThis": true } ], "constructor-super": [ 2 ], "for-direction": [ 2 ], "getter-return": [ 2, { "allowImplicit": false } ], "no-async-promise-executor": [ 2 ], "no-case-declarations": [ 2 ], "no-class-assign": [ 2 ], "no-compare-neg-zero": [ 2 ], "no-cond-assign": [ 2, "except-parens" ], "no-const-assign": [ 2 ], "no-constant-binary-expression": [ 2 ], "no-constant-condition": [ 2, { "checkLoops": "allExceptWhileTrue" } ], "no-control-regex": [ 2 ], "no-debugger": [ 2 ], "no-delete-var": [ 2 ], "no-dupe-args": [ 2 ], "no-dupe-class-members": [ 2 ], "no-dupe-else-if": [ 2 ], "no-dupe-keys": [ 2 ], "no-duplicate-case": [ 2 ], "no-empty": [ 2, { "allowEmptyCatch": false } ], "no-empty-character-class": [ 2 ], "no-empty-pattern": [ 2, { "allowObjectPatternsAsParameters": false } ], "no-empty-static-block": [ 2 ], "no-ex-assign": [ 2 ], "no-extra-boolean-cast": [ 2, {} ], "no-fallthrough": [ 2, { "allowEmptyCase": false, "reportUnusedFallthroughComment": false } ], "no-func-assign": [ 2 ], "no-global-assign": [ 2, { "exceptions": [] } ], "no-import-assign": [ 2 ], "no-invalid-regexp": [ 2, {} ], "no-irregular-whitespace": [ 2, { "skipComments": false, "skipJSXText": false, "skipRegExps": false, "skipStrings": true, "skipTemplates": false } ], "no-loss-of-precision": [ 2 ], "no-misleading-character-class": [ 2 ], "no-new-native-nonconstructor": [ 2 ], "no-nonoctal-decimal-escape": [ 2 ], "no-obj-calls": [ 2 ], "no-octal": [ 2 ], "no-prototype-builtins": [ 2 ], "no-redeclare": [ 2, { "builtinGlobals": true } ], "no-regex-spaces": [ 2 ], "no-self-assign": [ 2, { "props": true } ], "no-setter-return": [ 2 ], "no-shadow-restricted-names": [ 2 ], "no-sparse-arrays": [ 2 ], "no-this-before-super": [ 2 ], "no-undef": [ 2, { "typeof": false } ], "no-unreachable": [ 2 ], "no-unsafe-finally": [ 2 ], "no-unsafe-negation": [ 2, { "enforceForOrderingRelations": false } ], "no-unsafe-optional-chaining": [ 2, { "disallowArithmeticOperators": false } ], "no-unused-labels": [ 2 ], "no-unused-private-class-members": [ 2 ], "no-unused-vars": [ 2 ], "no-useless-backreference": [ 2 ], "no-useless-catch": [ 2 ], "no-useless-escape": [ 2 ], "no-with": [ 2 ], "require-yield": [ 2 ], "use-isnan": [ 2, { "enforceForIndexOf": false, "enforceForSwitchCase": true } ], "valid-typeof": [ 2, { "requireStringLiterals": false } ], "import/no-unresolved": [ 2, { "ignore": [ ".svg" ], "caseSensitive": true, "caseSensitiveStrict": false } ], "import/named": [ 0 ], "import/namespace": [ 0 ], "import/default": [ 2 ], "import/export": [ 2 ], "import/no-named-as-default": [ 1 ], "import/no-named-as-default-member": [ 1 ], "import/no-duplicates": [ 2 ], "@typescript-eslint/await-thenable": [ 2 ], "@typescript-eslint/ban-ts-comment": [ 2, { "minimumDescriptionLength": 10 } ], "no-array-constructor": [ 0 ], "@typescript-eslint/no-array-constructor": [ 2 ], "@typescript-eslint/no-array-delete": [ 2 ], "@typescript-eslint/no-base-to-string": [ 2 ], "@typescript-eslint/no-confusing-void-expression": [ 0 ], "@typescript-eslint/no-deprecated": [ 2 ], "@typescript-eslint/no-duplicate-enum-values": [ 2 ], "@typescript-eslint/no-duplicate-type-constituents": [ 2 ], "@typescript-eslint/no-dynamic-delete": [ 2 ], "@typescript-eslint/no-empty-object-type": [ 2 ], "@typescript-eslint/no-explicit-any": [ 2 ], "@typescript-eslint/no-extra-non-null-assertion": [ 2 ], "@typescript-eslint/no-extraneous-class": [ 0 ], "@typescript-eslint/no-floating-promises": [ 2 ], "@typescript-eslint/no-for-in-array": [ 2 ], "no-implied-eval": [ 0 ], "@typescript-eslint/no-implied-eval": [ 2 ], "@typescript-eslint/no-invalid-void-type": [ 2 ], "@typescript-eslint/no-meaningless-void-operator": [ 2 ], "@typescript-eslint/no-misused-new": [ 2 ], "@typescript-eslint/no-misused-promises": [ 2, { "checksVoidReturn": { "attributes": false } } ], "@typescript-eslint/no-mixed-enums": [ 2 ], "@typescript-eslint/no-namespace": [ 2 ], "@typescript-eslint/no-non-null-asserted-nullish-coalescing": [ 2 ], "@typescript-eslint/no-non-null-asserted-optional-chain": [ 2 ], "@typescript-eslint/no-non-null-assertion": [ 2 ], "@typescript-eslint/no-redundant-type-constituents": [ 2 ], "@typescript-eslint/no-require-imports": [ 2 ], "@typescript-eslint/no-this-alias": [ 2 ], "@typescript-eslint/no-unnecessary-boolean-literal-compare": [ 2 ], "@typescript-eslint/no-unnecessary-condition": [ 0 ], "@typescript-eslint/no-unnecessary-template-expression": [ 2 ], "@typescript-eslint/no-unnecessary-type-arguments": [ 2 ], "@typescript-eslint/no-unnecessary-type-assertion": [ 2 ], "@typescript-eslint/no-unnecessary-type-constraint": [ 2 ], "@typescript-eslint/no-unnecessary-type-parameters": [ 0 ], "@typescript-eslint/no-unsafe-argument": [ 2 ], "@typescript-eslint/no-unsafe-assignment": [ 0 ], "@typescript-eslint/no-unsafe-call": [ 2 ], "@typescript-eslint/no-unsafe-declaration-merging": [ 2 ], "@typescript-eslint/no-unsafe-enum-comparison": [ 2 ], "@typescript-eslint/no-unsafe-function-type": [ 2 ], "@typescript-eslint/no-unsafe-member-access": [ 2 ], "@typescript-eslint/no-unsafe-return": [ 2 ], "@typescript-eslint/no-unsafe-unary-minus": [ 2 ], "no-unused-expressions": [ 0, { "allowShortCircuit": false, "allowTernary": false, "allowTaggedTemplates": false, "enforceForJSX": false } ], "@typescript-eslint/no-unused-expressions": [ 2, { "allowShortCircuit": false, "allowTaggedTemplates": false, "allowTernary": false } ], "@typescript-eslint/no-unused-vars": [ 2 ], "no-useless-constructor": [ 0 ], "@typescript-eslint/no-useless-constructor": [ 2 ], "@typescript-eslint/no-wrapper-object-types": [ 2 ], "no-throw-literal": [ 0 ], "@typescript-eslint/only-throw-error": [ 2 ], "@typescript-eslint/prefer-as-const": [ 2 ], "@typescript-eslint/prefer-literal-enum-member": [ 2 ], "@typescript-eslint/prefer-namespace-keyword": [ 2 ], "prefer-promise-reject-errors": [ 0, { "allowEmptyReject": false } ], "@typescript-eslint/prefer-promise-reject-errors": [ 2 ], "@typescript-eslint/prefer-reduce-type-parameter": [ 2 ], "@typescript-eslint/prefer-return-this-type": [ 2 ], "@typescript-eslint/related-getter-setter-pairs": [ 2 ], "require-await": [ 2 ], "@typescript-eslint/require-await": [ 2 ], "@typescript-eslint/restrict-plus-operands": [ 2, { "allowAny": false, "allowBoolean": false, "allowNullish": false, "allowNumberAndString": false, "allowRegExp": false } ], "@typescript-eslint/restrict-template-expressions": [ 2, { "allowBoolean": true, "allowNumber": true } ], "no-return-await": [ 0 ], "@typescript-eslint/return-await": [ 2, "error-handling-correctness-only" ], "@typescript-eslint/triple-slash-reference": [ 2 ], "@typescript-eslint/unbound-method": [ 2, { "ignoreStatic": true } ], "@typescript-eslint/unified-signatures": [ 2 ], "@typescript-eslint/use-unknown-in-catch-callback-variable": [ 2 ], "react/display-name": [ 2 ], "react/jsx-key": [ 2 ], "react/jsx-no-comment-textnodes": [ 2 ], "react/jsx-no-duplicate-props": [ 2 ], "react/jsx-no-target-blank": [ 2 ], "react/jsx-no-undef": [ 2 ], "react/jsx-uses-react": [ 2 ], "react/jsx-uses-vars": [ 2 ], "react/no-children-prop": [ 2 ], "react/no-danger-with-children": [ 2 ], "react/no-deprecated": [ 2 ], "react/no-direct-mutation-state": [ 2 ], "react/no-find-dom-node": [ 2 ], "react/no-is-mounted": [ 2 ], "react/no-render-return-value": [ 2 ], "react/no-string-refs": [ 2 ], "react/no-unescaped-entities": [ 2 ], "react/no-unknown-property": [ 2 ], "react/no-unsafe": [ 0 ], "react/prop-types": [ 0 ], "react/react-in-jsx-scope": [ 0 ], "react/require-render-return": [ 2 ], "eqeqeq": [ 2, "always" ], "newline-before-return": [ 2 ], "newline-after-var": [ 2, "always" ], "no-restricted-imports": [ 2, { "paths": [ "lodash", "lodash-es" ], "patterns": [ "lodash/*", "lodash-es/*" ] } ], "no-restricted-modules": [ 2, { "patterns": [ "Helpers/Tests" ] } ], "no-console": [ 2, { "allow": [ "info", "debug", "warn", "error" ] } ], "complexity": [ 2, 12 ], "max-statements": [ 2, 20 ], "max-classes-per-file": [ 2, 1 ], "max-params": [ 2, 5 ], "max-depth": [ 2, 2 ], "max-nested-callbacks": [ 2, 3 ], "import/newline-after-import": [ 2 ], "import/no-extraneous-dependencies": [ 0, { "optionalDependencies": false } ], "import/order": [ 2, { "groups": [ "builtin", "external", "internal", "parent", "sibling", "index" ], "newlines-between": "always", "distinctGroup": true, "named": false, "warnOnUnassignedImports": false } ], "react/destructuring-assignment": [ 2 ], "react/function-component-definition": [ 2, { "namedComponents": "arrow-function", "unnamedComponents": "arrow-function" } ], "react-hooks/rules-of-hooks": [ 1 ], "react-hooks/exhaustive-deps": [ 1 ], "@typescript-eslint/adjacent-overload-signatures": [ 2 ], "@typescript-eslint/array-type": [ 2 ], "@typescript-eslint/no-restricted-types": [ 2 ], "@stylistic/ts/brace-style": [ 2 ], "@typescript-eslint/consistent-indexed-object-style": [ 2, "record" ], "@typescript-eslint/consistent-type-assertions": [ 2 ], "@typescript-eslint/consistent-type-imports": [ 2, { "prefer": "no-type-imports" } ], "@typescript-eslint/consistent-type-definitions": [ 2 ], "@typescript-eslint/dot-notation": [ 2, { "allowIndexSignaturePropertyAccess": false, "allowKeywords": true, "allowPattern": "", "allowPrivateClassPropertyAccess": false, "allowProtectedClassPropertyAccess": false } ], "@typescript-eslint/explicit-member-accessibility": [ 2, { "accessibility": "no-public" } ], "@stylistic/ts/func-call-spacing": [ 2 ], "@typescript-eslint/init-declarations": [ 0 ], "@stylistic/ts/keyword-spacing": [ 2, { "before": true, "after": true } ], "@stylistic/ts/member-delimiter-style": [ 2 ], "@typescript-eslint/no-confusing-non-null-assertion": [ 2 ], "@typescript-eslint/no-empty-function": [ 2, { "allow": [] } ], "@typescript-eslint/no-empty-interface": [ 2 ], "@typescript-eslint/no-invalid-this": [ 2, { "capIsConstructor": true } ], "@typescript-eslint/no-loop-func": [ 2 ], "@typescript-eslint/no-loss-of-precision": [ 2 ], "@typescript-eslint/no-magic-numbers": [ 0 ], "@typescript-eslint/parameter-properties": [ 2, { "allow": [ "private", "readonly", "protected", "private readonly", "protected readonly" ] } ], "@typescript-eslint/no-redeclare": [ 0 ], "@typescript-eslint/no-shadow": [ 2 ], "@typescript-eslint/no-unnecessary-qualifier": [ 2 ], "@typescript-eslint/no-use-before-define": [ 2 ], "@typescript-eslint/no-var-requires": [ 2 ], "@typescript-eslint/non-nullable-type-assertion-style": [ 2 ], "@typescript-eslint/prefer-enum-initializers": [ 2 ], "@typescript-eslint/prefer-for-of": [ 2 ], "@typescript-eslint/prefer-function-type": [ 2 ], "@typescript-eslint/prefer-includes": [ 2 ], "@typescript-eslint/prefer-nullish-coalescing": [ 2 ], "@typescript-eslint/prefer-optional-chain": [ 2 ], "@typescript-eslint/prefer-readonly": [ 2 ], "@typescript-eslint/prefer-regexp-exec": [ 2 ], "@typescript-eslint/prefer-string-starts-ends-with": [ 2 ], "@typescript-eslint/prefer-ts-expect-error": [ 2 ], "@typescript-eslint/promise-function-async": [ 2 ], "@typescript-eslint/require-array-sort-compare": [ 2 ], "@stylistic/ts/semi": [ 2 ], "@stylistic/ts/type-annotation-spacing": [ 2 ], "@stylistic/ts/space-infix-ops": [ 2 ], "@typescript-eslint/sort-type-union-intersection-members": [ 0 ], "@typescript-eslint/default-param-last": [ 2 ], "@typescript-eslint/explicit-module-boundary-types": [ 2 ], "@stylistic/ts/no-extra-semi": [ 2 ], "@typescript-eslint/ban-tslint-comment": [ 2 ], "@typescript-eslint/class-literal-property-style": [ 2 ], "@stylistic/ts/comma-spacing": [ 2, { "before": false, "after": true } ], "@typescript-eslint/no-dupe-class-members": [ 2 ], "@typescript-eslint/no-inferrable-types": [ 2, { "ignoreParameters": true, "ignoreProperties": true } ], "@typescript-eslint/prefer-readonly-parameter-types": [ 0 ], "@typescript-eslint/explicit-function-return-type": [ 2, { "allowExpressions": true } ], "@typescript-eslint/no-type-alias": [ 0 ], "@stylistic/ts/comma-dangle": [ 2, { "arrays": "always-multiline", "objects": "always-multiline", "imports": "always-multiline", "exports": "always-multiline", "enums": "always-multiline", "functions": "ignore", "generics": "always-multiline" } ], "@typescript-eslint/naming-convention": [ 2, { "selector": "default", "format": [ "camelCase" ], "leadingUnderscore": "allow", "trailingUnderscore": "allow" }, { "selector": "variableLike", "format": [ "camelCase", "UPPER_CASE", "PascalCase" ], "leadingUnderscore": "allow", "trailingUnderscore": "allow" }, { "selector": "typeProperty", "format": [ "camelCase", "UPPER_CASE", "PascalCase" ], "leadingUnderscore": "allow", "trailingUnderscore": "allow" }, { "selector": "objectLiteralProperty", "format": null, "leadingUnderscore": "allow", "trailingUnderscore": "allow" }, { "selector": "objectLiteralMethod", "format": [ "camelCase", "PascalCase" ], "leadingUnderscore": "allow", "trailingUnderscore": "allow" }, { "selector": "typeLike", "format": [ "PascalCase" ] }, { "selector": "enumMember", "format": [ "PascalCase" ] }, { "selector": "import", "format": [ "camelCase", "PascalCase" ] }, { "selector": "classProperty", "format": [ "camelCase", "UPPER_CASE", "PascalCase" ] } ], "@typescript-eslint/member-ordering": [ 2, { "default": [ "public-field", "protected-field", "private-field", "public-method", "protected-method", "private-method" ] } ], "@typescript-eslint/typedef": [ 2, { "arrayDestructuring": false, "arrowParameter": true, "objectDestructuring": false, "memberVariableDeclaration": true, "parameter": true, "propertyDeclaration": true, "variableDeclaration": false, "variableDeclarationIgnoreFunction": false } ], "@typescript-eslint/strict-boolean-expressions": [ 2, { "allowString": true, "allowNumber": false, "allowNullableObject": true, "allowNullableBoolean": true, "allowNullableString": true, "allowNullableNumber": true, "allowNullableEnum": true, "allowAny": false } ], "@stylistic/ts/lines-between-class-members": [ 2, "always", { "exceptAfterSingleLine": true, "exceptAfterOverload": true } ], "@stylistic/ts/space-before-function-paren": [ 2, { "anonymous": "always", "named": "never", "asyncArrow": "always" } ] }, "plugins": [ "@", "prettier:eslint-plugin-prettier@5.2.1", "import:eslint-plugin-import@2.31.0", "@typescript-eslint:@typescript-eslint/eslint-plugin@8.17.0", "react", "react-hooks", "@stylistic/js", "@stylistic/ts", "@stylistic/jsx" ], "language": "@/js", "languageOptions": { "sourceType": "module", "ecmaVersion": 2025, "parser": "typescript-eslint/parser@8.17.0", "parserOptions": { "projectService": true, "tsconfigRootDir": "/Users/aleksd/dev/3fs-internal/eslint-config/configs", "ecmaFeatures": { "jsx": true }, "jsxPragma": null }, "globals": { "addEventListener": false, "applicationCache": false, "atob": false, "Blob": false, "BroadcastChannel": false, "btoa": false, "ByteLengthQueuingStrategy": false, "Cache": false, "caches": false, "CacheStorage": false, "clearInterval": false, "clearTimeout": false, "Client": false, "clients": false, "Clients": false, "close": false, "CompressionStream": false, "console": false, "CountQueuingStrategy": false, "crypto": false, "Crypto": false, "CryptoKey": false, "CustomEvent": false, "DecompressionStream": false, "ErrorEvent": false, "Event": false, "ExtendableEvent": false, "ExtendableMessageEvent": false, "fetch": false, "FetchEvent": false, "File": false, "FileReaderSync": false, "FormData": false, "Headers": false, "IDBCursor": false, "IDBCursorWithValue": false, "IDBDatabase": false, "IDBFactory": false, "IDBIndex": false, "IDBKeyRange": false, "IDBObjectStore": false, "IDBOpenDBRequest": false, "IDBRequest": false, "IDBTransaction": false, "IDBVersionChangeEvent": false, "ImageData": false, "importScripts": false, "indexedDB": false, "location": true, "MessageChannel": false, "MessageEvent": false, "MessagePort": false, "name": false, "navigator": false, "Notification": false, "onclose": true, "onconnect": true, "onerror": true, "onfetch": true, "oninstall": true, "onlanguagechange": true, "onmessage": true, "onmessageerror": true, "onnotificationclick": true, "onnotificationclose": true, "onoffline": true, "ononline": true, "onpush": true, "onpushsubscriptionchange": true, "onrejectionhandled": true, "onsync": true, "onunhandledrejection": true, "performance": false, "Performance": false, "PerformanceEntry": false, "PerformanceMark": false, "PerformanceMeasure": false, "PerformanceNavigation": false, "PerformanceObserver": false, "PerformanceObserverEntryList": false, "PerformanceResourceTiming": false, "PerformanceTiming": false, "postMessage": false, "queueMicrotask": false, "ReadableByteStreamController": false, "ReadableStream": false, "ReadableStreamBYOBReader": false, "ReadableStreamBYOBRequest": false, "ReadableStreamDefaultController": false, "ReadableStreamDefaultReader": false, "registration": false, "removeEventListener": false, "Request": false, "Response": false, "self": false, "ServiceWorker": false, "ServiceWorkerContainer": false, "ServiceWorkerGlobalScope": false, "ServiceWorkerMessageEvent": false, "ServiceWorkerRegistration": false, "setInterval": false, "setTimeout": false, "skipWaiting": false, "SubtleCrypto": false, "TextDecoder": false, "TextDecoderStream": false, "TextEncoder": false, "TextEncoderStream": false, "TransformStream": false, "TransformStreamDefaultController": false, "URL": false, "URLSearchParams": false, "WebAssembly": false, "WebSocket": false, "WindowClient": false, "Worker": false, "WorkerGlobalScope": false, "WritableStream": false, "WritableStreamDefaultController": false, "WritableStreamDefaultWriter": false, "XMLHttpRequest": false, "AbortController": false, "AbortSignal": false, "AbsoluteOrientationSensor": false, "AbstractRange": false, "Accelerometer": false, "ai": false, "AI": false, "AITextSession": false, "alert": false, "AnalyserNode": false, "Animation": false, "AnimationEffect": false, "AnimationEvent": false, "AnimationPlaybackEvent": false, "AnimationTimeline": false, "Attr": false, "Audio": false, "AudioBuffer": false, "AudioBufferSourceNode": false, "AudioContext": false, "AudioData": false, "AudioDecoder": false, "AudioDestinationNode": false, "AudioEncoder": false, "AudioListener": false, "AudioNode": false, "AudioParam": false, "AudioParamMap": false, "AudioProcessingEvent": false, "AudioScheduledSourceNode": false, "AudioSinkInfo": false, "AudioWorklet": false, "AudioWorkletGlobalScope": false, "AudioWorkletNode": false, "AudioWorkletProcessor": false, "AuthenticatorAssertionResponse": false, "AuthenticatorAttestationResponse": false, "AuthenticatorResponse": false, "BackgroundFetchManager": false, "BackgroundFetchRecord": false, "BackgroundFetchRegistration": false, "BarcodeDetector": false, "BarProp": false, "BaseAudioContext": false, "BatteryManager": false, "BeforeUnloadEvent": false, "BiquadFilterNode": false, "BlobEvent": false, "Bluetooth": false, "BluetoothCharacteristicProperties": false, "BluetoothDevice": false, "BluetoothRemoteGATTCharacteristic": false, "BluetoothRemoteGATTDescriptor": false, "BluetoothRemoteGATTServer": false, "BluetoothRemoteGATTService": false, "BluetoothUUID": false, "blur": false, "BrowserCaptureMediaStreamTrack": false, "cancelAnimationFrame": false, "cancelIdleCallback": false, "CanvasCaptureMediaStream": false, "CanvasCaptureMediaStreamTrack": false, "CanvasGradient": false, "CanvasPattern": false, "CanvasRenderingContext2D": false, "CaptureController": false, "CaretPosition": false, "CDATASection": false, "ChannelMergerNode": false, "ChannelSplitterNode": false, "ChapterInformation": false, "CharacterBoundsUpdateEvent": false, "CharacterData": false, "clientInformation": false, "Clipboard": false, "ClipboardEvent": false, "ClipboardItem": false, "closed": false, "CloseEvent": false, "CloseWatcher": false, "Comment": false, "CompositionEvent": false, "confirm": false, "ConstantSourceNode": false, "ContentVisibilityAutoStateChangeEvent": false, "ConvolverNode": false, "CookieChangeEvent": false, "CookieDeprecationLabel": false, "cookieStore": false, "CookieStore": false, "CookieStoreManager": false, "createImageBitmap": false, "Credential": false, "credentialless": false, "CredentialsContainer": false, "CropTarget": false, "crossOriginIsolated": false, "CSS": false, "CSSAnimation": false, "CSSConditionRule": false, "CSSContainerRule": false, "CSSCounterStyleRule": false, "CSSFontFaceRule": false, "CSSFontFeatureValuesRule": false, "CSSFontPaletteValuesRule": false, "CSSGroupingRule": false, "CSSImageValue": false, "CSSImportRule": false, "CSSKeyframeRule": false, "CSSKeyframesRule": false, "CSSKeywordValue": false, "CSSLayerBlockRule": false, "CSSLayerStatementRule": false, "CSSMarginRule": false, "CSSMathClamp": false, "CSSMathInvert": false, "CSSMathMax": false, "CSSMathMin": false, "CSSMathNegate": false, "CSSMathProduct": false, "CSSMathSum": false, "CSSMathValue": false, "CSSMatrixComponent": false, "CSSMediaRule": false, "CSSNamespaceRule": false, "CSSNestedDeclarations": false, "CSSNumericArray": false, "CSSNumericValue": false, "CSSPageDescriptors": false, "CSSPageRule": false, "CSSPerspective": false, "CSSPositionTryDescriptors": false, "CSSPositionTryRule": false, "CSSPositionValue": false, "CSSPropertyRule": false, "CSSRotate": false, "CSSRule": false, "CSSRuleList": false, "CSSScale": false, "CSSScopeRule": false, "CSSSkew": false, "CSSSkewX": false, "CSSSkewY": false, "CSSStartingStyleRule": false, "CSSStyleDeclaration": false, "CSSStyleRule": false, "CSSStyleSheet": false, "CSSStyleValue": false, "CSSSupportsRule": false, "CSSTransformComponent": false, "CSSTransformValue": false, "CSSTransition": false, "CSSTranslate": false, "CSSUnitValue": false, "CSSUnparsedValue": false, "CSSVariableReferenceValue": false, "CSSViewTransitionRule": false, "currentFrame": false, "currentTime": false, "CustomElementRegistry": false, "customElements": false, "CustomStateSet": false, "DataTransfer": false, "DataTransferItem": false, "DataTransferItemList": false, "DelayNode": false, "DelegatedInkTrailPresenter": false, "DeviceMotionEvent": false, "DeviceMotionEventAcceleration": false, "DeviceMotionEventRotationRate": false, "DeviceOrientationEvent": false, "devicePixelRatio": false, "dispatchEvent": false, "document": false, "Document": false, "DocumentFragment": false, "documentPictureInPicture": false, "DocumentPictureInPicture": false, "DocumentPictureInPictureEvent": false, "DocumentTimeline": false, "DocumentType": false, "DOMError": false, "DOMException": false, "DOMImplementation": false, "DOMMatrix": false, "DOMMatrixReadOnly": false, "DOMParser": false, "DOMPoint": false, "DOMPointReadOnly": false, "DOMQuad": false, "DOMRect": false, "DOMRectList": false, "DOMRectReadOnly": false, "DOMStringList": false, "DOMStringMap": false, "DOMTokenList": false, "DragEvent": false, "DynamicsCompressorNode": false, "EditContext": false, "Element": false, "ElementInternals": false, "EncodedAudioChunk": false, "EncodedVideoChunk": false, "event": false, "EventCounts": false, "EventSource": false, "EventTarget": false, "external": false, "External": false, "EyeDropper": false, "FeaturePolicy": false, "FederatedCredential": false, "fence": false, "Fence": false, "FencedFrameConfig": false, "fetchLater": false, "FetchLaterResult": false, "FileList": false, "FileReader": false, "FileSystem": false, "FileSystemDirectoryEntry": false, "FileSystemDirectoryHandle": false, "FileSystemDirectoryReader": false, "FileSystemEntry": false, "FileSystemFileEntry": false, "FileSystemFileHandle": false, "FileSystemHandle": false, "FileSystemWritableFileStream": false, "find": false, "Float16Array": false, "focus": false, "FocusEvent": false, "FontData": false, "FontFace": false, "FontFaceSet": false, "FontFaceSetLoadEvent": false, "FormDataEvent": false, "FragmentDirective": false, "frameElement": false, "frames": false, "GainNode": false, "Gamepad": false, "GamepadAxisMoveEvent": false, "GamepadButton": false, "GamepadButtonEvent": false, "GamepadEvent": false, "GamepadHapticActuator": false, "GamepadPose": false, "Geolocation": false, "GeolocationCoordinates": false, "GeolocationPosition": false, "GeolocationPositionError": false, "getComputedStyle": false, "getScreenDetails": false, "getSelection": false, "GPU": false, "GPUAdapter": false, "GPUAdapterInfo": false, "GPUBindGroup": false, "GPUBindGroupLayout": false, "GPUBuffer": false, "GPUBufferUsage": false, "GPUCanvasContext": false, "GPUColorWrite": false, "GPUCommandBuffer": false, "GPUCommandEncoder": false, "GPUCompilationInfo": false, "GPUCompilationMessage": false, "GPUComputePassEncoder": false, "GPUComputePipeline": false, "GPUDevice": false, "GPUDeviceLostInfo": false, "GPUError": false, "GPUExternalTexture": false, "GPUInternalError": false, "GPUMapMode": false, "GPUOutOfMemoryError": false, "GPUPipelineError": false, "GPUPipelineLayout": false, "GPUQuerySet": false, "GPUQueue": false, "GPURenderBundle": false, "GPURenderBundleEncoder": false, "GPURenderPassEncoder": false, "GPURenderPipeline": false, "GPUSampler": false, "GPUShaderModule": false, "GPUShaderStage": false, "GPUSupportedFeatures": false, "GPUSupportedLimits": false, "GPUTexture": false, "GPUTextureUsage": false, "GPUTextureView": false, "GPUUncapturedErrorEvent": false, "GPUValidationError": false, "GravitySensor": false, "Gyroscope": false, "HashChangeEvent": false, "HID": false, "HIDConnectionEvent": false, "HIDDevice": false, "HIDInputReportEvent": false, "Highlight": false, "HighlightRegistry": false, "history": false, "History": false, "HTMLAllCollection": false, "HTMLAnchorElement": false, "HTMLAreaElement": false, "HTMLAudioElement": false, "HTMLBaseElement": false, "HTMLBodyElement": false, "HTMLBRElement": false, "HTMLButtonElement": false, "HTMLCanvasElement": false, "HTMLCollection": false, "HTMLDataElement": false, "HTMLDataListElement": false, "HTMLDetailsElement": false, "HTMLDialogElement": false, "HTMLDirectoryElement": false, "HTMLDivElement": false, "HTMLDListElement": false, "HTMLDocument": false, "HTMLElement": false, "HTMLEmbedElement": false, "HTMLFencedFrameElement": false, "HTMLFieldSetElement": false, "HTMLFontElement": false, "HTMLFormControlsCollection": false, "HTMLFormElement": false, "HTMLFrameElement": false, "HTMLFrameSetElement": false, "HTMLHeadElement": false, "HTMLHeadingElement": false, "HTMLHRElement": false, "HTMLHtmlElement": false, "HTMLIFrameElement": false, "HTMLImageElement": false, "HTMLInputElement": false, "HTMLLabelElement": false, "HTMLLegendElement": false, "HTMLLIElement": false, "HTMLLinkElement": false, "HTMLMapElement": false, "HTMLMarqueeElement": false, "HTMLMediaElement": false, "HTMLMenuElement": false, "HTMLMetaElement": false, "HTMLMeterElement": false, "HTMLModElement": false, "HTMLObjectElement": false, "HTMLOListElement": false, "HTMLOptGroupElement": false, "HTMLOptionElement": false, "HTMLOptionsCollection": false, "HTMLOutputElement": false, "HTMLParagraphElement": false, "HTMLParamElement": false, "HTMLPictureElement": false, "HTMLPreElement": false, "HTMLProgressElement": false, "HTMLQuoteElement": false, "HTMLScriptElement": false, "HTMLSelectElement": false, "HTMLSlotElement": false, "HTMLSourceElement": false, "HTMLSpanElement": false, "HTMLStyleElement": false, "HTMLTableCaptionElement": false, "HTMLTableCellElement": false, "HTMLTableColElement": false, "HTMLTableElement": false, "HTMLTableRowElement": false, "HTMLTableSectionElement": false, "HTMLTemplateElement": false, "HTMLTextAreaElement": false, "HTMLTimeElement": false, "HTMLTitleElement": false, "HTMLTrackElement": false, "HTMLUListElement": false, "HTMLUnknownElement": false, "HTMLVideoElement": false, "IdentityCredential": false, "IdentityCredentialError": false, "IdentityProvider": false, "IdleDeadline": false, "IdleDetector": false, "IIRFilterNode": false, "Image": false, "ImageBitmap": false, "ImageBitmapRenderingContext": false, "ImageCapture": false, "ImageDecoder": false, "ImageTrack": false, "ImageTrackList": false, "Ink": false, "innerHeight": false, "innerWidth": false, "InputDeviceCapabilities": false, "InputDeviceInfo": false, "InputEvent": false, "IntersectionObserver": false, "IntersectionObserverEntry": false, "isSecureContext": false, "Keyboard": false, "KeyboardEvent": false, "KeyboardLayoutMap": false, "KeyframeEffect": false, "LargestContentfulPaint": false, "LaunchParams": false, "launchQueue": false, "LaunchQueue": false, "LayoutShift": false, "LayoutShiftAttribution": false, "length": false, "LinearAccelerationSensor": false, "localStorage": false, "Location": false, "locationbar": false, "Lock": false, "LockManager": false, "matchMedia": false, "MathMLElement": false, "MediaCapabilities": false, "MediaCapabilitiesInfo": false, "MediaDeviceInfo": false, "MediaDevices": false, "MediaElementAudioSourceNode": false, "MediaEncryptedEvent": false, "MediaError": false, "MediaKeyError": false, "MediaKeyMessageEvent": false, "MediaKeys": false, "MediaKeySession": false, "MediaKeyStatusMap": false, "MediaKeySystemAccess": false, "MediaList": false, "MediaMetadata": false, "MediaQueryList": false, "MediaQueryListEvent": false, "MediaRecorder": false, "MediaRecorderErrorEvent": false, "MediaSession": false, "MediaSource": false, "MediaSourceHandle": false, "MediaStream": false, "MediaStreamAudioDestinationNode": false, "MediaStreamAudioSourceNode": false, "MediaStreamEvent": false, "MediaStreamTrack": false, "MediaStreamTrackAudioSourceNode": false, "MediaStreamTrackAudioStats": false, "MediaStreamTrackEvent": false, "MediaStreamTrackGenerator": false, "MediaStreamTrackProcessor": false, "MediaStreamTrackVideoStats": false, "menubar": false, "MIDIAccess": false, "MIDIConnectionEvent": false, "MIDIInput": false, "MIDIInputMap": false, "MIDIMessageEvent": false, "MIDIOutput": false, "MIDIOutputMap": false, "MIDIPort": false, "MimeType": false, "MimeTypeArray": false, "model": false, "ModelGenericSession": false, "ModelManager": false, "MouseEvent": false, "moveBy": false, "moveTo": false, "MutationEvent": false, "MutationObserver": false, "MutationRecord": false, "NamedNodeMap": false, "NavigateEvent": false, "navigation": false, "Navigation": false, "NavigationActivation": false, "NavigationCurrentEntryChangeEvent": false, "NavigationDestination": false, "NavigationHistoryEntry": false, "NavigationPreloadManager": false, "NavigationTransition": false, "Navigator": false, "NavigatorLogin": false, "NavigatorManagedData": false, "NavigatorUAData": false, "NetworkInformation": false, "Node": false, "NodeFilter": false, "NodeIterator": false, "NodeList": false, "NotifyPaintEvent": false, "NotRestoredReasonDetails": false, "NotRestoredReasons": false, "OfflineAudioCompletionEvent": false, "OfflineAudioContext": false, "offscreenBuffering": false, "OffscreenCanvas": false, "OffscreenCanvasRenderingContext2D": false, "onabort": true, "onafterprint": true, "onanimationcancel": true, "onanimationend": true, "onanimationiteration": true, "onanimationstart": true, "onappinstalled": true, "onauxclick": true, "onbeforeinput": true, "onbeforeinstallprompt": true, "onbeforematch": true, "onbeforeprint": true, "onbeforetoggle": true, "onbeforeunload": true, "onbeforexrselect": true, "onblur": true, "oncancel": true, "oncanplay": true, "oncanpla