{
    "plugins": [
        "header",
        "no-barrel-files",
        "import-x",
        "sonarjs",
        "react",
        "react-hooks",
        "@vitest",
        "no-only-tests"
    ],
    "rules": {
        "constructor-super": "error",
        "for-direction": "error",
        "getter-return": "error",
        "no-async-promise-executor": "error",
        "no-case-declarations": "error",
        "no-class-assign": "error",
        "no-compare-neg-zero": "error",
        "no-cond-assign": "error",
        "no-const-assign": "error",
        "no-constant-binary-expression": "error",
        "no-constant-condition": "error",
        "no-control-regex": "error",
        "no-debugger": "error",
        "no-delete-var": 2,
        "no-dupe-args": "error",
        "no-dupe-class-members": "error",
        "no-dupe-else-if": "error",
        "no-dupe-keys": "error",
        "no-duplicate-case": "error",
        "no-empty": "error",
        "no-empty-character-class": "error",
        "no-empty-pattern": "error",
        "no-empty-static-block": "error",
        "no-ex-assign": "error",
        "no-fallthrough": "error",
        "no-func-assign": "error",
        "no-global-assign": "error",
        "no-import-assign": "error",
        "no-invalid-regexp": "error",
        "no-irregular-whitespace": "error",
        "no-loss-of-precision": "error",
        "no-misleading-character-class": "error",
        "no-new-native-nonconstructor": "error",
        "no-nonoctal-decimal-escape": "error",
        "no-obj-calls": "error",
        "no-octal": "error",
        "no-prototype-builtins": "error",
        "no-redeclare": "error",
        "no-regex-spaces": "error",
        "no-self-assign": "error",
        "no-setter-return": "error",
        "no-shadow-restricted-names": "error",
        "no-sparse-arrays": "error",
        "no-this-before-super": "error",
        "no-undef": "error",
        "no-unreachable": "error",
        "no-unsafe-finally": "error",
        "no-unsafe-negation": "error",
        "no-unsafe-optional-chaining": "error",
        "no-unused-labels": "error",
        "no-unused-private-class-members": "error",
        "no-unused-vars": "error",
        "no-useless-backreference": "error",
        "no-useless-catch": "error",
        "no-with": "error",
        "require-yield": "error",
        "use-isnan": "error",
        "valid-typeof": "error",
        "no-restricted-imports": [
            "error",
            {
                "paths": [
                    {
                        "name": "react",
                        "importNames": [
                            "default"
                        ],
                        "message": "Default import from React is not allowed. Use named imports instead."
                    },
                    {
                        "name": "react-dom",
                        "importNames": [
                            "default"
                        ],
                        "message": "Default import from React DOM is not allowed. Use named imports instead."
                    },
                    {
                        "name": "@gooddata/sdk-ui-kit",
                        "importNames": [
                            "Icon"
                        ],
                        "message": "The Icon export cannot be tree-shaken, use {IconName}Icon imports instead."
                    },
                    {
                        "name": "vitest",
                        "importNames": [
                            "test"
                        ],
                        "message": "Use 'it' instead of 'test' for consistency."
                    }
                ],
                "patterns": [
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "get",
                            "getOr"
                        ],
                        "message": "Please use the ?. and ?? operators instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "keys"
                        ],
                        "message": "Please use Object.keys() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "values"
                        ],
                        "message": "Please use Object.values() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "entries",
                            "toPairs"
                        ],
                        "message": "Please use Object.entries() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "map"
                        ],
                        "message": "Please use Array.prototype.map() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "flatMap"
                        ],
                        "message": "Please use Array.prototype.flatMap() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "filter"
                        ],
                        "message": "Please use Array.prototype.filter() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "find"
                        ],
                        "message": "Please use Array.prototype.find() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "findIndex"
                        ],
                        "message": "Please use Array.prototype.findIndex() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "includes"
                        ],
                        "message": "Please use Array.prototype.includes() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "some"
                        ],
                        "message": "Please use Array.prototype.some() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "every"
                        ],
                        "message": "Please use Array.prototype.every() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "concat"
                        ],
                        "message": "Please use Array.prototype.concat() or spread [...arr1, ...arr2] instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "reverse"
                        ],
                        "message": "Please use Array.prototype.reverse() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "slice"
                        ],
                        "message": "Please use Array.prototype.slice() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "indexOf"
                        ],
                        "message": "Please use Array.prototype.indexOf() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "lastIndexOf"
                        ],
                        "message": "Please use Array.prototype.lastIndexOf() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "fill"
                        ],
                        "message": "Please use Array.prototype.fill() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "startsWith"
                        ],
                        "message": "Please use String.prototype.startsWith() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "endsWith"
                        ],
                        "message": "Please use String.prototype.endsWith() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "repeat"
                        ],
                        "message": "Please use String.prototype.repeat() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "padStart"
                        ],
                        "message": "Please use String.prototype.padStart() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "padEnd"
                        ],
                        "message": "Please use String.prototype.padEnd() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "trim"
                        ],
                        "message": "Please use String.prototype.trim() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "trimStart",
                            "trimLeft"
                        ],
                        "message": "Please use String.prototype.trimStart() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "trimEnd",
                            "trimRight"
                        ],
                        "message": "Please use String.prototype.trimEnd() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "toUpper"
                        ],
                        "message": "Please use String.prototype.toUpperCase() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "toLower"
                        ],
                        "message": "Please use String.prototype.toLowerCase() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "isArray"
                        ],
                        "message": "Please use Array.isArray() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "isNaN"
                        ],
                        "message": "Please use Number.isNaN() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "isFinite"
                        ],
                        "message": "Please use Number.isFinite() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "isInteger"
                        ],
                        "message": "Please use Number.isInteger() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "isNull"
                        ],
                        "message": "Please use value === null instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "isUndefined"
                        ],
                        "message": "Please use value === undefined instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "defaultTo"
                        ],
                        "message": "Please use value ?? defaultValue instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "assign"
                        ],
                        "message": "Please use Object.assign() or spread syntax {...obj} instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "flatten"
                        ],
                        "message": "Please use Array.prototype.flat() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "flattenDeep"
                        ],
                        "message": "Please use Array.prototype.flat(Infinity) instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "isNil"
                        ],
                        "message": "Please use value === null || value === undefined instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "noop"
                        ],
                        "message": "Please use () => {} instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "identity"
                        ],
                        "message": "Please use x => x instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "first",
                            "head"
                        ],
                        "message": "Please use Array.prototype.at(0) instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "last"
                        ],
                        "message": "Please use Array.prototype.at(-1) instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "forEach"
                        ],
                        "message": "Please use Array.prototype.forEach() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "fromPairs"
                        ],
                        "message": "Please use Object.fromEntries() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "join"
                        ],
                        "message": "Please use Array.prototype.join() instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "isDate"
                        ],
                        "message": "Please use val instanceof Date instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "isFunction"
                        ],
                        "message": "Please use typeof val === 'function' instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "isNumber"
                        ],
                        "message": "Please use typeof val === 'number' instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "isObject"
                        ],
                        "message": "Please use val !== null && typeof val === 'object' instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "isString"
                        ],
                        "message": "Please use typeof val === 'string' instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "toString"
                        ],
                        "message": "Please use String(val) instead."
                    },
                    {
                        "group": [
                            "lodash-es"
                        ],
                        "importNames": [
                            "flow",
                            "flowRight"
                        ],
                        "message": "Please use refactoring your code instead."
                    }
                ]
            }
        ],
        "sort-imports": [
            "error",
            {
                "ignoreCase": false,
                "ignoreDeclarationSort": true,
                "ignoreMemberSort": false
            }
        ],
        "no-useless-escape": "off",
        "no-unneeded-ternary": [
            "error",
            {
                "defaultAssignment": false
            }
        ],
        "no-extra-boolean-cast": "error",
        "no-unexpected-multiline": 0,
        "no-duplicate-imports": [
            "error",
            {
                "includeExports": true
            }
        ],
        "prefer-const": "off",
        "no-console": [
            2,
            {
                "allow": [
                    "warn",
                    "error"
                ]
            }
        ],
        "no-restricted-exports": [
            2,
            {
                "restrictDefaultExports": {
                    "direct": true,
                    "named": true,
                    "defaultFrom": true,
                    "namedFrom": true,
                    "namespaceFrom": true
                }
            }
        ],
        "no-restricted-syntax": [
            "error",
            {
                "selector": "MemberExpression[object.name='React']",
                "message": "Do not use `React.*`. Use named imports instead."
            },
            {
                "selector": "MemberExpression[object.name='ReactDOM']",
                "message": "Do not use `ReactDOM.*`. Use named imports instead."
            }
        ],
        "no-negated-condition": "error",
        "header/header": [
            2,
            "line",
            {
                "pattern": "^ \\(C\\) \\d{4}(-\\d{4})? GoodData Corporation$",
                "template": " (C) 2026 GoodData Corporation"
            }
        ],
        "no-barrel-files/no-barrel-files": "error",
        "import-x/named": "error",
        "import-x/namespace": "error",
        "import-x/default": "error",
        "import-x/export": "error",
        "import-x/no-named-as-default": "warn",
        "import-x/no-named-as-default-member": "warn",
        "import-x/no-duplicates": "warn",
        "import-x/no-unassigned-import": "error",
        "sonarjs/function-name": "off",
        "sonarjs/max-lines": "off",
        "sonarjs/no-tab": "off",
        "sonarjs/variable-name": "off",
        "sonarjs/comment-regex": "off",
        "sonarjs/elseif-without-else": "off",
        "sonarjs/no-fallthrough": "error",
        "sonarjs/nested-control-flow": "off",
        "sonarjs/too-many-break-or-continue-in-loop": "off",
        "sonarjs/max-lines-per-function": "off",
        "sonarjs/no-nested-incdec": "off",
        "sonarjs/no-equals-in-for-termination": "error",
        "sonarjs/no-extra-arguments": "error",
        "sonarjs/no-collapsible-if": "off",
        "sonarjs/expression-complexity": "off",
        "sonarjs/no-redundant-parentheses": "off",
        "sonarjs/no-labels": "error",
        "sonarjs/no-redundant-boolean": "error",
        "sonarjs/prefer-single-boolean-return": "error",
        "sonarjs/unused-import": "error",
        "sonarjs/useless-string-operation": "off",
        "sonarjs/no-unused-function-argument": "off",
        "sonarjs/no-case-label-in-switch": "error",
        "sonarjs/no-parameter-reassignment": "error",
        "sonarjs/prefer-while": "error",
        "sonarjs/no-sonar-comments": "off",
        "sonarjs/no-small-switch": "error",
        "sonarjs/no-hardcoded-ip": "error",
        "sonarjs/label-position": "error",
        "sonarjs/file-header": "off",
        "sonarjs/call-argument-line": "error",
        "sonarjs/max-switch-cases": "error",
        "sonarjs/prefer-immediate-return": "off",
        "sonarjs/function-inside-loop": "error",
        "sonarjs/no-variable-usage-before-declaration": "off",
        "sonarjs/future-reserved-words": "error",
        "sonarjs/array-constructor": "off",
        "sonarjs/bitwise-operators": "error",
        "sonarjs/no-function-declaration-in-block": "off",
        "sonarjs/no-primitive-wrappers": "error",
        "sonarjs/for-in": "off",
        "sonarjs/cyclomatic-complexity": "off",
        "sonarjs/no-identical-expressions": "error",
        "sonarjs/no-nested-switch": "off",
        "sonarjs/no-identical-conditions": "error",
        "sonarjs/no-duplicated-branches": "error",
        "sonarjs/misplaced-loop-counter": "error",
        "sonarjs/sql-queries": "error",
        "sonarjs/insecure-cookie": "error",
        "sonarjs/no-useless-increment": "error",
        "sonarjs/no-undefined-assignment": "off",
        "sonarjs/no-wildcard-import": "off",
        "sonarjs/for-loop-increment-sign": "error",
        "sonarjs/cookies": "off",
        "sonarjs/null-dereference": "error",
        "sonarjs/updated-loop-counter": "error",
        "sonarjs/block-scoped-var": "error",
        "sonarjs/no-built-in-override": "off",
        "sonarjs/prefer-object-literal": "off",
        "sonarjs/no-gratuitous-expressions": "error",
        "sonarjs/file-uploads": "error",
        "sonarjs/file-permissions": "error",
        "sonarjs/no-empty-character-class": "error",
        "sonarjs/no-unenclosed-multiline-block": "error",
        "sonarjs/index-of-compare-to-positive-number": "error",
        "sonarjs/no-useless-catch": "error",
        "sonarjs/xml-parser-xxe": "error",
        "sonarjs/non-existent-operator": "error",
        "sonarjs/web-sql-database": "off",
        "sonarjs/no-array-delete": "error",
        "sonarjs/no-incomplete-assertions": "error",
        "sonarjs/no-global-this": "error",
        "sonarjs/new-operator-misuse": "error",
        "sonarjs/no-delete-var": "error",
        "sonarjs/strings-comparison": "off",
        "sonarjs/file-name-differ-from-class": "off",
        "sonarjs/cookie-no-httponly": "error",
        "sonarjs/no-incorrect-string-concat": "off",
        "sonarjs/inverted-assertion-arguments": "error",
        "sonarjs/shorthand-property-grouping": "off",
        "sonarjs/updated-const-var": "error",
        "sonarjs/arguments-usage": "off",
        "sonarjs/destructuring-assignment-syntax": "off",
        "sonarjs/arrow-function-convention": "off",
        "sonarjs/class-prototype": "off",
        "sonarjs/no-require-or-define": "off",
        "sonarjs/no-associative-arrays": "error",
        "sonarjs/comma-or-logical-or-case": "error",
        "sonarjs/no-redundant-jump": "error",
        "sonarjs/inconsistent-function-call": "error",
        "sonarjs/no-use-of-empty-return-value": "error",
        "sonarjs/enforce-trailing-comma": "off",
        "sonarjs/operation-returning-nan": "off",
        "sonarjs/values-not-convertible-to-numbers": "off",
        "sonarjs/non-number-in-arithmetic-expression": "off",
        "sonarjs/in-operator-type-error": "error",
        "sonarjs/declarations-in-global-scope": "off",
        "sonarjs/no-inconsistent-returns": "off",
        "sonarjs/no-reference-error": "off",
        "sonarjs/super-invocation": "error",
        "sonarjs/no-all-duplicated-branches": "error",
        "sonarjs/no-same-line-conditional": "error",
        "sonarjs/conditional-indentation": "off",
        "sonarjs/no-collection-size-mischeck": "error",
        "sonarjs/no-unthrown-error": "error",
        "sonarjs/no-unused-collection": "error",
        "sonarjs/no-for-in-iterable": "off",
        "sonarjs/no-element-overwrite": "error",
        "sonarjs/no-identical-functions": "error",
        "sonarjs/no-empty-collection": "error",
        "sonarjs/no-redundant-assignments": "error",
        "sonarjs/prefer-type-guard": "error",
        "sonarjs/no-return-type-any": "off",
        "sonarjs/no-implicit-dependencies": "off",
        "sonarjs/weak-ssl": "error",
        "sonarjs/no-weak-keys": "error",
        "sonarjs/csrf": "error",
        "sonarjs/production-debug": "error",
        "sonarjs/no-in-misuse": "error",
        "sonarjs/no-duplicate-in-composite": "error",
        "sonarjs/max-union-size": "off",
        "sonarjs/no-nested-template-literals": "error",
        "sonarjs/regular-expr": "off",
        "sonarjs/encryption": "off",
        "sonarjs/hashing": "error",
        "sonarjs/bool-param-default": "off",
        "sonarjs/xpath": "off",
        "sonarjs/sockets": "off",
        "sonarjs/process-argv": "off",
        "sonarjs/standard-input": "off",
        "sonarjs/unverified-certificate": "error",
        "sonarjs/cors": "error",
        "sonarjs/disabled-auto-escaping": "error",
        "sonarjs/no-table-as-layout": "error",
        "sonarjs/table-header-reference": "error",
        "sonarjs/object-alt-content": "error",
        "sonarjs/publicly-writable-directories": "error",
        "sonarjs/unverified-hostname": "error",
        "sonarjs/encryption-secure-mode": "error",
        "sonarjs/no-weak-cipher": "error",
        "sonarjs/no-intrusive-permissions": "error",
        "sonarjs/insecure-jwt-token": "error",
        "sonarjs/x-powered-by": "error",
        "sonarjs/hidden-files": "error",
        "sonarjs/content-length": "error",
        "sonarjs/disabled-resource-integrity": "error",
        "sonarjs/content-security-policy": "error",
        "sonarjs/no-mixed-content": "error",
        "sonarjs/frame-ancestors": "error",
        "sonarjs/no-mime-sniff": "error",
        "sonarjs/no-referrer-policy": "error",
        "sonarjs/strict-transport-security": "error",
        "sonarjs/certificate-transparency": "off",
        "sonarjs/dns-prefetching": "off",
        "sonarjs/confidential-information-logging": "error",
        "sonarjs/no-ip-forward": "error",
        "sonarjs/no-invalid-regexp": "error",
        "sonarjs/unused-named-groups": "error",
        "sonarjs/no-same-argument-assert": "error",
        "sonarjs/unicode-aware-regex": "off",
        "sonarjs/no-misleading-character-class": "error",
        "sonarjs/session-regeneration": "error",
        "sonarjs/test-check-exception": "error",
        "sonarjs/stable-tests": "error",
        "sonarjs/no-empty-after-reluctant": "error",
        "sonarjs/no-code-after-done": "error",
        "sonarjs/disabled-timeout": "error",
        "sonarjs/chai-determinate-assertion": "error",
        "sonarjs/aws-s3-bucket-server-encryption": "off",
        "sonarjs/aws-s3-bucket-insecure-http": "error",
        "sonarjs/aws-s3-bucket-versioning": "error",
        "sonarjs/aws-s3-bucket-granted-access": "error",
        "sonarjs/no-angular-bypass-sanitization": "error",
        "sonarjs/aws-iam-public-access": "error",
        "sonarjs/aws-ec2-unencrypted-ebs-volume": "error",
        "sonarjs/aws-s3-bucket-public-access": "error",
        "sonarjs/no-vue-bypass-sanitization": "off",
        "sonarjs/aws-iam-all-privileges": "error",
        "sonarjs/aws-rds-unencrypted-databases": "error",
        "sonarjs/aws-iam-all-resources-accessible": "off",
        "sonarjs/aws-opensearchservice-domain": "error",
        "sonarjs/aws-iam-privilege-escalation": "error",
        "sonarjs/aws-sagemaker-unencrypted-notebook": "error",
        "sonarjs/aws-restricted-ip-admin-access": "error",
        "sonarjs/no-empty-alternatives": "error",
        "sonarjs/no-regex-spaces": "error",
        "sonarjs/aws-sns-unencrypted-topics": "error",
        "sonarjs/existing-groups": "error",
        "sonarjs/aws-ec2-rds-dms-public": "error",
        "sonarjs/aws-sqs-unencrypted-queue": "error",
        "sonarjs/no-empty-group": "error",
        "sonarjs/aws-efs-unencrypted": "error",
        "sonarjs/aws-apigateway-public-api": "error",
        "sonarjs/stateful-regex": "error",
        "sonarjs/single-char-in-character-classes": "error",
        "sonarjs/no-exclusive-tests": "error",
        "sonarjs/hardcoded-secret-signatures": "error",
        "sonarjs/jsx-no-leaked-render": "error",
        "sonarjs/no-hook-setter-in-body": "error",
        "sonarjs/no-uniq-key": "error",
        "sonarjs/no-internal-api-use": "error",
        "sonarjs/no-literal-call": "error",
        "sonarjs/review-blockchain-mnemonic": "error",
        "sonarjs/dynamically-constructed-templates": "error",
        "sonarjs/no-duplicate-string": "off",
        "sonarjs/cognitive-complexity": "warn",
        "sonarjs/todo-tag": "warn",
        "sonarjs/no-hardcoded-passwords": "off",
        "sonarjs/no-alphabetical-sort": "off",
        "sonarjs/no-os-command-from-path": "off",
        "sonarjs/os-command": "off",
        "sonarjs/prefer-regexp-exec": "off",
        "sonarjs/no-clear-text-protocols": "off",
        "sonarjs/deprecation": "off",
        "sonarjs/no-nested-conditional": "off",
        "sonarjs/no-ignored-exceptions": "off",
        "sonarjs/slow-regex": "off",
        "sonarjs/prefer-read-only-props": "off",
        "sonarjs/no-skipped-tests": "off",
        "sonarjs/no-commented-code": "off",
        "sonarjs/no-ignored-return": "off",
        "sonarjs/array-callback-without-return": "off",
        "sonarjs/pseudo-random": "off",
        "sonarjs/no-nested-functions": "off",
        "sonarjs/no-async-constructor": "off",
        "sonarjs/assertions-in-tests": "off",
        "sonarjs/function-return-type": "off",
        "sonarjs/no-unused-vars": "off",
        "sonarjs/no-invariant-returns": "off",
        "sonarjs/different-types-comparison": "off",
        "sonarjs/no-selector-parameter": "off",
        "sonarjs/anchor-precedence": "off",
        "sonarjs/redundant-type-aliases": "off",
        "sonarjs/no-redundant-optional": "off",
        "sonarjs/reduce-initial-value": "off",
        "sonarjs/no-globals-shadowing": "off",
        "sonarjs/use-type-alias": "off",
        "sonarjs/void-use": "off",
        "sonarjs/no-undefined-argument": "off",
        "sonarjs/no-useless-react-setstate": "off",
        "sonarjs/no-inverted-boolean-check": "off",
        "sonarjs/concise-regex": "off",
        "sonarjs/no-dead-store": "off",
        "sonarjs/public-static-readonly": "off",
        "sonarjs/code-eval": "off",
        "sonarjs/no-misleading-array-reverse": "off",
        "sonarjs/fixme-tag": "off",
        "sonarjs/argument-type": "off",
        "sonarjs/constructor-for-side-effects": "off",
        "sonarjs/no-useless-intersection": "off",
        "sonarjs/no-empty-test-file": "off",
        "sonarjs/prefer-default-last": "off",
        "sonarjs/prefer-promise-shorthand": "off",
        "sonarjs/no-unsafe-unzip": "off",
        "sonarjs/no-nested-assignment": "off",
        "sonarjs/generator-without-yield": "off",
        "sonarjs/no-try-promise": "off",
        "sonarjs/single-character-alternation": "off",
        "sonarjs/class-name": "off",
        "sonarjs/no-hardcoded-secrets": "off",
        "sonarjs/regex-complexity": "off",
        "sonarjs/post-message": "off",
        "sonarjs/link-with-target-blank": "off",
        "sonarjs/duplicates-in-character-class": "off",
        "sonarjs/arguments-order": "off",
        "sonarjs/empty-string-repetition": "off",
        "sonarjs/table-header": "off",
        "sonarjs/no-implicit-global": "off",
        "sonarjs/no-control-regex": "off",
        "no-caller": 2,
        "no-eval": 2,
        "no-octal-escape": 2,
        "curly": 0,
        "@typescript-eslint/lines-around-comment": 0,
        "@typescript-eslint/quotes": 0,
        "unicorn/template-indent": 0,
        "@typescript-eslint/block-spacing": "off",
        "@typescript-eslint/brace-style": "off",
        "@typescript-eslint/comma-dangle": "off",
        "@typescript-eslint/comma-spacing": "off",
        "@typescript-eslint/func-call-spacing": "off",
        "@typescript-eslint/indent": "off",
        "@typescript-eslint/key-spacing": "off",
        "@typescript-eslint/keyword-spacing": "off",
        "@typescript-eslint/member-delimiter-style": "off",
        "@typescript-eslint/no-extra-parens": "off",
        "@typescript-eslint/no-extra-semi": "off",
        "@typescript-eslint/object-curly-spacing": "off",
        "@typescript-eslint/semi": "off",
        "@typescript-eslint/space-before-blocks": "off",
        "@typescript-eslint/space-before-function-paren": "off",
        "@typescript-eslint/space-infix-ops": "off",
        "@typescript-eslint/type-annotation-spacing": "off",
        "react/jsx-child-element-spacing": "off",
        "react/jsx-closing-bracket-location": "off",
        "react/jsx-closing-tag-location": "off",
        "react/jsx-curly-newline": "off",
        "react/jsx-curly-spacing": "off",
        "react/jsx-equals-spacing": "off",
        "react/jsx-first-prop-new-line": "off",
        "react/jsx-indent": "off",
        "react/jsx-indent-props": "off",
        "react/jsx-max-props-per-line": "off",
        "react/jsx-newline": "off",
        "react/jsx-one-expression-per-line": "off",
        "react/jsx-props-no-multi-spaces": "off",
        "react/jsx-tag-spacing": "off",
        "react/jsx-wrap-multilines": "off",
        "unicorn/empty-brace-spaces": "off",
        "unicorn/no-nested-ternary": "off",
        "unicorn/number-literal-case": "off",
        "react/no-danger": "error",
        "react/prop-types": "off",
        "react/function-component-definition": [
            "error",
            {
                "namedComponents": "function-declaration",
                "unnamedComponents": "arrow-function"
            }
        ],
        "react/jsx-no-leaked-render": [
            "warn",
            {
                "validStrategies": [
                    "ternary",
                    "coerce"
                ]
            }
        ],
        "react/jsx-boolean-value": [
            "error",
            "never"
        ],
        "react/react-in-jsx-scope": "off",
        "react-hooks/rules-of-hooks": "error",
        "react-hooks/exhaustive-deps": "error",
        "@vitest/no-conditional-expect": "error",
        "@vitest/no-import-node-test": "error",
        "@vitest/no-interpolation-in-snapshots": "error",
        "@vitest/no-mocks-import": "error",
        "@vitest/no-standalone-expect": "error",
        "@vitest/no-unneeded-async-expect-function": "error",
        "@vitest/prefer-called-exactly-once-with": "error",
        "@vitest/require-local-test-context-for-concurrent-snapshots": "error",
        "@vitest/valid-describe-callback": "error",
        "@vitest/expect-expect": "off",
        "@vitest/no-commented-out-tests": "warn",
        "@vitest/valid-title": "error",
        "@vitest/no-disabled-tests": "warn",
        "@vitest/no-focused-tests": "warn",
        "@vitest/no-identical-title": "warn",
        "@vitest/valid-expect": "warn",
        "@vitest/valid-expect-in-promise": "error",
        "no-only-tests/no-only-tests": [
            "error",
            {
                "block": [
                    "fixture"
                ],
                "focus": [
                    "only"
                ]
            }
        ]
    },
    "overrides": [
        {
            "files": [
                "**/*.ts",
                "**/*.tsx"
            ],
            "rules": {
                "no-restricted-imports": [
                    "error",
                    {
                        "paths": [
                            {
                                "name": "react",
                                "importNames": [
                                    "default"
                                ],
                                "message": "Default import from React is not allowed. Use named imports instead."
                            },
                            {
                                "name": "react-dom",
                                "importNames": [
                                    "default"
                                ],
                                "message": "Default import from React DOM is not allowed. Use named imports instead."
                            },
                            {
                                "name": "@gooddata/sdk-ui-kit",
                                "importNames": [
                                    "Icon"
                                ],
                                "message": "The Icon export cannot be tree-shaken, use {IconName}Icon imports instead."
                            },
                            {
                                "name": "vitest",
                                "importNames": [
                                    "test"
                                ],
                                "message": "Use 'it' instead of 'test' for consistency."
                            }
                        ],
                        "patterns": [
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "get",
                                    "getOr"
                                ],
                                "message": "Please use the ?. and ?? operators instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "keys"
                                ],
                                "message": "Please use Object.keys() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "values"
                                ],
                                "message": "Please use Object.values() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "entries",
                                    "toPairs"
                                ],
                                "message": "Please use Object.entries() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "map"
                                ],
                                "message": "Please use Array.prototype.map() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "flatMap"
                                ],
                                "message": "Please use Array.prototype.flatMap() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "filter"
                                ],
                                "message": "Please use Array.prototype.filter() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "find"
                                ],
                                "message": "Please use Array.prototype.find() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "findIndex"
                                ],
                                "message": "Please use Array.prototype.findIndex() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "includes"
                                ],
                                "message": "Please use Array.prototype.includes() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "some"
                                ],
                                "message": "Please use Array.prototype.some() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "every"
                                ],
                                "message": "Please use Array.prototype.every() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "concat"
                                ],
                                "message": "Please use Array.prototype.concat() or spread [...arr1, ...arr2] instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "reverse"
                                ],
                                "message": "Please use Array.prototype.reverse() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "slice"
                                ],
                                "message": "Please use Array.prototype.slice() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "indexOf"
                                ],
                                "message": "Please use Array.prototype.indexOf() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "lastIndexOf"
                                ],
                                "message": "Please use Array.prototype.lastIndexOf() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "fill"
                                ],
                                "message": "Please use Array.prototype.fill() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "startsWith"
                                ],
                                "message": "Please use String.prototype.startsWith() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "endsWith"
                                ],
                                "message": "Please use String.prototype.endsWith() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "repeat"
                                ],
                                "message": "Please use String.prototype.repeat() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "padStart"
                                ],
                                "message": "Please use String.prototype.padStart() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "padEnd"
                                ],
                                "message": "Please use String.prototype.padEnd() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "trim"
                                ],
                                "message": "Please use String.prototype.trim() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "trimStart",
                                    "trimLeft"
                                ],
                                "message": "Please use String.prototype.trimStart() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "trimEnd",
                                    "trimRight"
                                ],
                                "message": "Please use String.prototype.trimEnd() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "toUpper"
                                ],
                                "message": "Please use String.prototype.toUpperCase() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "toLower"
                                ],
                                "message": "Please use String.prototype.toLowerCase() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isArray"
                                ],
                                "message": "Please use Array.isArray() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isNaN"
                                ],
                                "message": "Please use Number.isNaN() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isFinite"
                                ],
                                "message": "Please use Number.isFinite() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isInteger"
                                ],
                                "message": "Please use Number.isInteger() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isNull"
                                ],
                                "message": "Please use value === null instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isUndefined"
                                ],
                                "message": "Please use value === undefined instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "defaultTo"
                                ],
                                "message": "Please use value ?? defaultValue instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "assign"
                                ],
                                "message": "Please use Object.assign() or spread syntax {...obj} instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "flatten"
                                ],
                                "message": "Please use Array.prototype.flat() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "flattenDeep"
                                ],
                                "message": "Please use Array.prototype.flat(Infinity) instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isNil"
                                ],
                                "message": "Please use value === null || value === undefined instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "noop"
                                ],
                                "message": "Please use () => {} instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "identity"
                                ],
                                "message": "Please use x => x instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "first",
                                    "head"
                                ],
                                "message": "Please use Array.prototype.at(0) instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "last"
                                ],
                                "message": "Please use Array.prototype.at(-1) instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "forEach"
                                ],
                                "message": "Please use Array.prototype.forEach() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "fromPairs"
                                ],
                                "message": "Please use Object.fromEntries() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "join"
                                ],
                                "message": "Please use Array.prototype.join() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isDate"
                                ],
                                "message": "Please use val instanceof Date instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isFunction"
                                ],
                                "message": "Please use typeof val === 'function' instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isNumber"
                                ],
                                "message": "Please use typeof val === 'number' instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isObject"
                                ],
                                "message": "Please use val !== null && typeof val === 'object' instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isString"
                                ],
                                "message": "Please use typeof val === 'string' instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "toString"
                                ],
                                "message": "Please use String(val) instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "flow",
                                    "flowRight"
                                ],
                                "message": "Please use refactoring your code instead."
                            },
                            {
                                "group": [
                                    "vitest"
                                ],
                                "message": "Importing from vitest is only allowed in test files."
                            }
                        ]
                    }
                ]
            }
        },
        {
            "files": [
                "**/vitest.config.ts",
                "**/vitest.*.config.ts",
                "**/vitest.setup.ts",
                "**/vitest.setup.tsx",
                "**/*.test.ts",
                "**/*.test.tsx",
                "**/*.test.utils.ts",
                "**/*.test.utils.tsx",
                "**/*.test.helpers.ts",
                "**/*.test.helpers.tsx"
            ],
            "rules": {
                "no-restricted-imports": [
                    "error",
                    {
                        "paths": [
                            {
                                "name": "react",
                                "importNames": [
                                    "default"
                                ],
                                "message": "Default import from React is not allowed. Use named imports instead."
                            },
                            {
                                "name": "react-dom",
                                "importNames": [
                                    "default"
                                ],
                                "message": "Default import from React DOM is not allowed. Use named imports instead."
                            },
                            {
                                "name": "@gooddata/sdk-ui-kit",
                                "importNames": [
                                    "Icon"
                                ],
                                "message": "The Icon export cannot be tree-shaken, use {IconName}Icon imports instead."
                            },
                            {
                                "name": "vitest",
                                "importNames": [
                                    "test"
                                ],
                                "message": "Use 'it' instead of 'test' for consistency."
                            }
                        ],
                        "patterns": [
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "get",
                                    "getOr"
                                ],
                                "message": "Please use the ?. and ?? operators instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "keys"
                                ],
                                "message": "Please use Object.keys() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "values"
                                ],
                                "message": "Please use Object.values() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "entries",
                                    "toPairs"
                                ],
                                "message": "Please use Object.entries() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "map"
                                ],
                                "message": "Please use Array.prototype.map() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "flatMap"
                                ],
                                "message": "Please use Array.prototype.flatMap() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "filter"
                                ],
                                "message": "Please use Array.prototype.filter() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "find"
                                ],
                                "message": "Please use Array.prototype.find() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "findIndex"
                                ],
                                "message": "Please use Array.prototype.findIndex() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "includes"
                                ],
                                "message": "Please use Array.prototype.includes() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "some"
                                ],
                                "message": "Please use Array.prototype.some() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "every"
                                ],
                                "message": "Please use Array.prototype.every() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "concat"
                                ],
                                "message": "Please use Array.prototype.concat() or spread [...arr1, ...arr2] instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "reverse"
                                ],
                                "message": "Please use Array.prototype.reverse() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "slice"
                                ],
                                "message": "Please use Array.prototype.slice() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "indexOf"
                                ],
                                "message": "Please use Array.prototype.indexOf() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "lastIndexOf"
                                ],
                                "message": "Please use Array.prototype.lastIndexOf() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "fill"
                                ],
                                "message": "Please use Array.prototype.fill() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "startsWith"
                                ],
                                "message": "Please use String.prototype.startsWith() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "endsWith"
                                ],
                                "message": "Please use String.prototype.endsWith() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "repeat"
                                ],
                                "message": "Please use String.prototype.repeat() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "padStart"
                                ],
                                "message": "Please use String.prototype.padStart() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "padEnd"
                                ],
                                "message": "Please use String.prototype.padEnd() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "trim"
                                ],
                                "message": "Please use String.prototype.trim() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "trimStart",
                                    "trimLeft"
                                ],
                                "message": "Please use String.prototype.trimStart() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "trimEnd",
                                    "trimRight"
                                ],
                                "message": "Please use String.prototype.trimEnd() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "toUpper"
                                ],
                                "message": "Please use String.prototype.toUpperCase() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "toLower"
                                ],
                                "message": "Please use String.prototype.toLowerCase() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isArray"
                                ],
                                "message": "Please use Array.isArray() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isNaN"
                                ],
                                "message": "Please use Number.isNaN() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isFinite"
                                ],
                                "message": "Please use Number.isFinite() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isInteger"
                                ],
                                "message": "Please use Number.isInteger() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isNull"
                                ],
                                "message": "Please use value === null instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isUndefined"
                                ],
                                "message": "Please use value === undefined instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "defaultTo"
                                ],
                                "message": "Please use value ?? defaultValue instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "assign"
                                ],
                                "message": "Please use Object.assign() or spread syntax {...obj} instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "flatten"
                                ],
                                "message": "Please use Array.prototype.flat() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "flattenDeep"
                                ],
                                "message": "Please use Array.prototype.flat(Infinity) instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isNil"
                                ],
                                "message": "Please use value === null || value === undefined instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "noop"
                                ],
                                "message": "Please use () => {} instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "identity"
                                ],
                                "message": "Please use x => x instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "first",
                                    "head"
                                ],
                                "message": "Please use Array.prototype.at(0) instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "last"
                                ],
                                "message": "Please use Array.prototype.at(-1) instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "forEach"
                                ],
                                "message": "Please use Array.prototype.forEach() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "fromPairs"
                                ],
                                "message": "Please use Object.fromEntries() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "join"
                                ],
                                "message": "Please use Array.prototype.join() instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isDate"
                                ],
                                "message": "Please use val instanceof Date instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isFunction"
                                ],
                                "message": "Please use typeof val === 'function' instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isNumber"
                                ],
                                "message": "Please use typeof val === 'number' instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isObject"
                                ],
                                "message": "Please use val !== null && typeof val === 'object' instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "isString"
                                ],
                                "message": "Please use typeof val === 'string' instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "toString"
                                ],
                                "message": "Please use String(val) instead."
                            },
                            {
                                "group": [
                                    "lodash-es"
                                ],
                                "importNames": [
                                    "flow",
                                    "flowRight"
                                ],
                                "message": "Please use refactoring your code instead."
                            }
                        ]
                    }
                ]
            }
        },
        {
            "files": [
                "**/eslint.config.ts",
                "**/eslint.config.js"
            ],
            "rules": {
                "no-restricted-exports": "off"
            }
        },
        {
            "files": [
                "**/*.ts",
                "**/*.tsx",
                "**/*.mts",
                "**/*.cts"
            ],
            "rules": {
                "constructor-super": "off",
                "getter-return": "off",
                "no-class-assign": "off",
                "no-const-assign": "off",
                "no-dupe-args": "off",
                "no-dupe-class-members": "off",
                "no-dupe-keys": "off",
                "no-func-assign": "off",
                "no-import-assign": "off",
                "no-new-native-nonconstructor": "off",
                "no-new-symbol": "off",
                "no-obj-calls": "off",
                "no-redeclare": "off",
                "no-setter-return": "off",
                "no-this-before-super": "off",
                "no-undef": "off",
                "no-unreachable": "off",
                "no-unsafe-negation": "off",
                "no-var": "error",
                "no-with": "off",
                "prefer-const": "error",
                "prefer-rest-params": "error",
                "prefer-spread": "error",
                "no-array-constructor": "off",
                "no-unused-expressions": "off",
                "no-unused-vars": "off",
                "@typescript-eslint/no-array-constructor": "error",
                "@typescript-eslint/no-duplicate-enum-values": "error",
                "@typescript-eslint/no-empty-object-type": "error",
                "@typescript-eslint/no-extra-non-null-assertion": "error",
                "@typescript-eslint/no-misused-new": "error",
                "@typescript-eslint/no-namespace": "error",
                "@typescript-eslint/no-non-null-asserted-optional-chain": "error",
                "@typescript-eslint/no-require-imports": "error",
                "@typescript-eslint/no-this-alias": "error",
                "@typescript-eslint/no-unnecessary-type-constraint": "error",
                "@typescript-eslint/no-unsafe-declaration-merging": "error",
                "@typescript-eslint/prefer-as-const": "error",
                "@typescript-eslint/prefer-namespace-keyword": "error",
                "@typescript-eslint/triple-slash-reference": "error",
                "@typescript-eslint/explicit-function-return-type": 0,
                "@typescript-eslint/no-use-before-define": 0,
                "@typescript-eslint/no-empty-function": 0,
                "@typescript-eslint/no-unused-vars": [
                    2,
                    {
                        "varsIgnorePattern": "^_.*$",
                        "argsIgnorePattern": "^_.*$"
                    }
                ],
                "@typescript-eslint/no-explicit-any": "error",
                "@typescript-eslint/array-type": "off",
                "@typescript-eslint/ban-ts-comment": [
                    "error",
                    {
                        "ts-expect-error": "allow-with-description"
                    }
                ],
                "@typescript-eslint/no-wrapper-object-types": "error",
                "@typescript-eslint/no-unsafe-function-type": "error",
                "@typescript-eslint/no-restricted-types": [
                    "error",
                    {
                        "types": {
                            "String": {
                                "message": "Use 'string' instead",
                                "fixWith": "string"
                            },
                            "Number": {
                                "message": "Use 'number' instead",
                                "fixWith": "number"
                            },
                            "Boolean": {
                                "message": "Use 'boolean' instead",
                                "fixWith": "boolean"
                            },
                            "Symbol": {
                                "message": "Use 'symbol' instead",
                                "fixWith": "symbol"
                            }
                        }
                    }
                ],
                "@typescript-eslint/explicit-member-accessibility": "off",
                "@typescript-eslint/interface-name-prefix": "off",
                "@typescript-eslint/member-ordering": "off",
                "@typescript-eslint/no-inferrable-types": "off",
                "@typescript-eslint/no-non-null-assertion": "off",
                "no-restricted-syntax": [
                    "error",
                    {
                        "selector": "MemberExpression[object.name='React']",
                        "message": "Do not use `React.*`. Use named imports instead."
                    },
                    {
                        "selector": "TSTypeReference[typeName.type='TSQualifiedName'][typeName.left.name='React']",
                        "message": "Do not use `React.*` types. Use named imports instead."
                    },
                    {
                        "selector": "ExportNamespaceSpecifier",
                        "message": "Usage of 'export * as …' is forbidden."
                    },
                    {
                        "selector": "ExportAllDeclaration",
                        "message": "Usage of `export * from` is forbidden."
                    },
                    {
                        "selector": "ImportDeclaration[source.value=/^(?!.*reference_workspace)\\./] ImportNamespaceSpecifier",
                        "message": "Do not use `import * as ...` from relative paths."
                    }
                ],
                "@typescript-eslint/consistent-type-imports": [
                    "error",
                    {
                        "prefer": "type-imports",
                        "fixStyle": "inline-type-imports"
                    }
                ],
                "@typescript-eslint/prefer-optional-chain": "error",
                "@typescript-eslint/consistent-type-exports": [
                    "error",
                    {
                        "fixMixedExportsWithInlineTypeSpecifier": false
                    }
                ],
                "@typescript-eslint/naming-convention": [
                    "error",
                    {
                        "selector": "interface",
                        "format": [
                            "PascalCase"
                        ],
                        "custom": {
                            "regex": "^I[A-Z]",
                            "match": true
                        }
                    }
                ]
            },
            "parser": "@typescript-eslint/parser",
            "parserOptions": {
                "ecmaVersion": 2022,
                "sourceType": "module",
                "projectService": true
            }
        },
        {
            "files": [
                "**/eslint.config.ts"
            ],
            "rules": {
                "no-barrel-files/no-barrel-files": "off"
            }
        },
        {
            "files": [
                "**/*.ts",
                "**/*.cts",
                "**/*.mts",
                "**/*.tsx"
            ],
            "settings": {
                "import-x/extensions": [
                    ".ts",
                    ".cts",
                    ".mts",
                    ".tsx",
                    ".js",
                    ".jsx",
                    ".mjs",
                    ".cjs"
                ],
                "import-x/external-module-folders": [
                    "node_modules",
                    "node_modules/@types"
                ],
                "import-x/parsers": {
                    "@typescript-eslint/parser": [
                        ".ts",
                        ".cts",
                        ".mts",
                        ".tsx"
                    ]
                },
                "import-x/resolver": {
                    "typescript": {
                        "alwaysTryTypes": true
                    }
                }
            }
        },
        {
            "files": [
                "**/*.{js,cjs,mjs,jsx}"
            ],
            "plugins": [
                "jsdoc"
            ],
            "settings": {
                "jsdoc": {
                    "mode": "jsdoc"
                }
            },
            "rules": {
                "jsdoc/require-param": "error"
            }
        },
        {
            "files": [
                "*.test.ts",
                "*.test.tsx",
                "*.spec.ts"
            ],
            "rules": {
                "sonarjs/no-identical-functions": "off"
            }
        }
    ],
    "settings": {
        "import-x/extensions": [
            ".js",
            ".jsx",
            ".mjs",
            ".cjs"
        ],
        "react": {
            "version": "detect"
        }
    },
    "env": {
        "node": true,
        "es2022": true,
        "browser": true
    },
    "ignorePatterns": [
        "**/dist/**/*.*",
        "**/esm/**/*.*",
        "**/node_modules/**/*.*",
        "**/ci/results/**",
        "**/__version.ts",
        "**/cypress/results/**",
        "**/cypress/screenshots/**",
        "**/cypress/videos/**",
        "**/temp/**",
        "**/reference_workspace/**"
    ],
    "parserOptions": {
        "ecmaVersion": 2022,
        "sourceType": "module"
    }
}