Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(typescript): add @typescript-eslint/class-methods-use-this rule #1245

Merged

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Sep 1, 2023

Bumps @typescript-eslint/eslint-plugin from 6.1.0 to 6.5.0.

Release notes

Sourced from @​typescript-eslint/eslint-plugin's releases.

v6.5.0

6.5.0 (2023-08-28)

Bug Fixes

  • eslint-plugin: [consistent-type-assertions] wrap object return value with parentheses (#6885) (23ac499)

Features

  • bump supported TS version to 5.2 (#7535) (f18c88d)
  • support Explicit Resource Management syntax for TS 5.2 (#7479) (c11e05c)

You can read about our versioning strategy and releases on our website.

v6.4.1

6.4.1 (2023-08-21)

Bug Fixes

  • eslint-plugin: [no-unnecessary-condition] false positives with branded types (#7466) (b52658f), closes #7293
  • utils: [ts-eslint] small type fixes (#7474) (4402db1)

You can read about our versioning strategy and releases on our website.

v6.4.0

6.4.0 (2023-08-14)

Bug Fixes

  • eslint-plugin: [non-nullable-type-assertion-style] consider operator precedence when fixing (#7289) (bad37a2)
  • eslint-plugin: [strict-boolean-expressions] replace dangerous fixer with suggestions (#7394) (ad8401a)
  • typescript-estree: support declare and export modifiers for nested namespace declaration (#7410) (49a53f0)
  • utils: add new properties since eslint 8.40.0 (#7460) (660aff7)
  • utils: add to JSONSchema4Type missing Array and Object (#7406) (60df0bb)

Features

You can read about our versioning strategy and releases on our website.

v6.3.0

... (truncated)

Changelog

Sourced from @​typescript-eslint/eslint-plugin's changelog.

6.5.0 (2023-08-28)

Bug Fixes

  • eslint-plugin: [consistent-type-assertions] wrap object return value with parentheses (#6885) (23ac499)

You can read about our versioning strategy and releases on our website.

6.4.1 (2023-08-21)

Bug Fixes

  • eslint-plugin: [no-unnecessary-condition] false positives with branded types (#7466) (b52658f), closes #7293

You can read about our versioning strategy and releases on our website.

6.4.0 (2023-08-14)

Bug Fixes

  • eslint-plugin: [non-nullable-type-assertion-style] consider operator precedence when fixing (#7289) (bad37a2)
  • eslint-plugin: [strict-boolean-expressions] replace dangerous fixer with suggestions (#7394) (ad8401a)

You can read about our versioning strategy and releases on our website.

6.3.0 (2023-08-07)

Bug Fixes

  • eslint-plugin: [no-extra-parens] keep parens around call expression arguments when type arguments contain parens (#7375) (38e5e4e)
  • eslint-plugin: [no-restricted-imports] allow inline type qualifiers when allowTypeImports enabled (#7379) (cc9a46d)

Features

... (truncated)

Commits
  • 4f34d0b chore: publish v6.5.0
  • 23ac499 fix(eslint-plugin): [consistent-type-assertions] wrap object return value wit...
  • 85f34da docs: add info for no-extra-semi (#7330)
  • ef1367e chore: publish v6.4.1
  • 2e1cfd5 chore: upgrade to yarn 3 (#6162)
  • b52658f fix(eslint-plugin): [no-unnecessary-condition] false positives with branded t...
  • 66cc514 chore: enable logical-assignment-operators rule internally (#7484)
  • e1897db docs: fix typo in member-ordering (#7488)
  • 14bea42 chore: publish v6.4.0
  • 9181252 docs: add note on common misconceptions about type narrowing (#7391)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

@dependabot dependabot bot added dependencies Pull requests that update a dependency file javascript Pull requests that update Javascript code labels Sep 1, 2023
@github-actions github-actions bot enabled auto-merge (squash) September 1, 2023 03:45
@github-actions
Copy link
Contributor

github-actions bot commented Sep 1, 2023

Diff between @typescript-eslint/eslint-plugin 6.1.0 and 6.5.0
diff --git a/dist/configs/all.js b/dist/configs/all.js
index v6.1.0..v6.5.0 100644
--- a/dist/configs/all.js
+++ b/dist/configs/all.js
@@ -20,4 +20,6 @@
         '@typescript-eslint/brace-style': 'error',
         '@typescript-eslint/class-literal-property-style': 'error',
+        'class-methods-use-this': 'off',
+        '@typescript-eslint/class-methods-use-this': 'error',
         'comma-dangle': 'off',
         '@typescript-eslint/comma-dangle': 'error',
diff --git a/dist/rules/prefer-optional-chain-utils/analyzeChain.js b/dist/rules/prefer-optional-chain-utils/analyzeChain.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/prefer-optional-chain-utils/analyzeChain.js
+++ b/dist/rules/prefer-optional-chain-utils/analyzeChain.js
@@ -252,13 +252,11 @@
                 };
             }
-            else {
-                const unaryOperator = lastOperand.node.left.type === utils_1.AST_NODE_TYPES.UnaryExpression
-                    ? lastOperand.node.left.operator + ' '
-                    : '';
-                return {
-                    left: unaryOperator + newCode,
-                    right: sourceCode.getText(lastOperand.node.right),
-                };
-            }
+            const unaryOperator = lastOperand.node.left.type === utils_1.AST_NODE_TYPES.UnaryExpression
+                ? lastOperand.node.left.operator + ' '
+                : '';
+            return {
+                left: unaryOperator + newCode,
+                right: sourceCode.getText(lastOperand.node.right),
+            };
         })();
         newCode = `${left} ${operator} ${right}`;
diff --git a/dist/rules/consistent-type-assertions.js b/dist/rules/consistent-type-assertions.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/consistent-type-assertions.js
+++ b/dist/rules/consistent-type-assertions.js
@@ -25,5 +25,7 @@
 Object.defineProperty(exports, "__esModule", { value: true });
 const utils_1 = require("@typescript-eslint/utils");
+const ts = __importStar(require("typescript"));
 const util = __importStar(require("../util"));
+const getWrappedCode_1 = require("../util/getWrappedCode");
 exports.default = util.createRule({
     name: 'consistent-type-assertions',
@@ -85,4 +87,5 @@
     create(context, [options]) {
         const sourceCode = context.getSourceCode();
+        const parserServices = util.getParserServices(context, true);
         function isConst(node) {
             if (node.type !== utils_1.AST_NODE_TYPES.TSTypeReference) {
@@ -117,8 +120,24 @@
                     : {},
                 fix: messageId === 'as'
-                    ? (fixer) => [
-                        fixer.replaceText(node, getTextWithParentheses(node.expression)),
-                        fixer.insertTextAfter(node, ` as ${getTextWithParentheses(node.typeAnnotation)}`),
-                    ]
+                    ? (fixer) => {
+                        const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node);
+                        /**
+                         * AsExpression has lower precedence than TypeAssertionExpression,
+                         * so we don't need to wrap expression and typeAnnotation in parens.
+                         */
+                        const expressionCode = sourceCode.getText(node.expression);
+                        const typeAnnotationCode = sourceCode.getText(node.typeAnnotation);
+                        const asPrecedence = util.getOperatorPrecedence(ts.SyntaxKind.AsExpression, ts.SyntaxKind.Unknown);
+                        const parentPrecedence = util.getOperatorPrecedence(tsNode.parent.kind, ts.isBinaryExpression(tsNode.parent)
+                            ? tsNode.parent.operatorToken.kind
+                            : ts.SyntaxKind.Unknown, ts.isNewExpression(tsNode.parent)
+                            ? tsNode.parent.arguments != null &&
+                                tsNode.parent.arguments.length > 0
+                            : undefined);
+                        const text = `${expressionCode} as ${typeAnnotationCode}`;
+                        return fixer.replaceText(node, util.isParenthesized(node, sourceCode)
+                            ? text
+                            : (0, getWrappedCode_1.getWrappedCode)(text, asPrecedence, parentPrecedence));
+                    }
                     : undefined,
             });
diff --git a/dist/rules/consistent-type-imports.js b/dist/rules/consistent-type-imports.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/consistent-type-imports.js
+++ b/dist/rules/consistent-type-imports.js
@@ -83,12 +83,12 @@
                         const source = node.source.value;
                         // sourceImports is the object containing all the specifics for a particular import source, type or value
-                        const sourceImports = sourceImportsMap[source] ??
-                            (sourceImportsMap[source] = {
-                                source,
-                                reportValueImports: [],
-                                typeOnlyNamedImport: null,
-                                valueOnlyNamedImport: null,
-                                valueImport: null, // if only value imports
-                            });
+                        sourceImportsMap[source] ??= {
+                            source,
+                            reportValueImports: [],
+                            typeOnlyNamedImport: null,
+                            valueOnlyNamedImport: null,
+                            valueImport: null, // if only value imports
+                        };
+                        const sourceImports = sourceImportsMap[source];
                         if (node.importKind === 'type') {
                             if (!sourceImports.typeOnlyNamedImport &&
@@ -232,25 +232,19 @@
                                                 };
                                             }
-                                            else {
-                                                return {
-                                                    messageId: 'aImportIsOnlyTypes',
-                                                    data: { typeImports },
-                                                };
-                                            }
+                                            return {
+                                                messageId: 'aImportIsOnlyTypes',
+                                                data: { typeImports },
+                                            };
                                         }
-                                        else {
-                                            if (isTypeImport) {
-                                                return {
-                                                    messageId: 'someImportsInDecoMeta',
-                                                    data: { typeImports }, // typeImports are all the value specifiers that are in the type position
-                                                };
-                                            }
-                                            else {
-                                                return {
-                                                    messageId: 'someImportsAreOnlyTypes',
-                                                    data: { typeImports }, // typeImports are all the type specifiers in the value position
-                                                };
-                                            }
+                                        if (isTypeImport) {
+                                            return {
+                                                messageId: 'someImportsInDecoMeta',
+                                                data: { typeImports }, // typeImports are all the value specifiers that are in the type position
+                                            };
                                         }
+                                        return {
+                                            messageId: 'someImportsAreOnlyTypes',
+                                            data: { typeImports }, // typeImports are all the type specifiers in the value position
+                                        };
                                     })();
                                     context.report({
diff --git a/dist/rules/prefer-optional-chain-utils/gatherLogicalOperands.js b/dist/rules/prefer-optional-chain-utils/gatherLogicalOperands.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/prefer-optional-chain-utils/gatherLogicalOperands.js
+++ b/dist/rules/prefer-optional-chain-utils/gatherLogicalOperands.js
@@ -95,11 +95,9 @@
                         };
                     }
-                    else {
-                        return {
-                            comparedExpression: operand.right,
-                            comparedValue: getComparisonValueType(operand.left),
-                            isYoda: true,
-                        };
-                    }
+                    return {
+                        comparedExpression: operand.right,
+                        comparedValue: getComparisonValueType(operand.left),
+                        isYoda: true,
+                    };
                 })();
                 if (comparedValue === "UndefinedStringLiteral" /* ComparisonValueType.UndefinedStringLiteral */) {
diff --git a/dist/util/getFunctionHeadLoc.js b/dist/util/getFunctionHeadLoc.js
index v6.1.0..v6.5.0 100644
--- a/dist/util/getFunctionHeadLoc.js
+++ b/dist/util/getFunctionHeadLoc.js
@@ -1,51 +1,161 @@
 "use strict";
+// adapted from https://github.com/eslint/eslint/blob/5bdaae205c3a0089ea338b382df59e21d5b06436/lib/rules/utils/ast-utils.js#L1668-L1787
 Object.defineProperty(exports, "__esModule", { value: true });
 exports.getFunctionHeadLoc = void 0;
 const utils_1 = require("@typescript-eslint/utils");
+const astUtils_1 = require("./astUtils");
 /**
- * Creates a report location for the given function.
- * The location only encompasses the "start" of the function, and not the body
+ * Gets the `(` token of the given function node.
+ * @param node The function node to get.
+ * @param sourceCode The source code object to get tokens.
+ * @returns `(` token.
+ */
+function getOpeningParenOfParams(node, sourceCode) {
+    // If the node is an arrow function and doesn't have parens, this returns the identifier of the first param.
+    if (node.type === utils_1.AST_NODE_TYPES.ArrowFunctionExpression &&
+        node.params.length === 1) {
+        const argToken = utils_1.ESLintUtils.nullThrows(sourceCode.getFirstToken(node.params[0]), utils_1.ESLintUtils.NullThrowsReasons.MissingToken('parameter', 'arrow function'));
+        const maybeParenToken = sourceCode.getTokenBefore(argToken);
+        return maybeParenToken && (0, astUtils_1.isOpeningParenToken)(maybeParenToken)
+            ? maybeParenToken
+            : argToken;
+    }
+    // Otherwise, returns paren.
+    return node.id != null
+        ? utils_1.ESLintUtils.nullThrows(sourceCode.getTokenAfter(node.id, astUtils_1.isOpeningParenToken), utils_1.ESLintUtils.NullThrowsReasons.MissingToken('id', 'function'))
+        : utils_1.ESLintUtils.nullThrows(sourceCode.getFirstToken(node, astUtils_1.isOpeningParenToken), utils_1.ESLintUtils.NullThrowsReasons.MissingToken('opening parenthesis', 'function'));
+}
+/**
+ * Gets the location of the given function node for reporting.
  *
- * eg.
- *
- * ```
- * function foo(args) {}
- * ^^^^^^^^^^^^^^^^^^
- *
- * get y(args) {}
- * ^^^^^^^^^^^
- *
- * const x = (args) => {}
- *           ^^^^^^^^^
- * ```
+ * - `function foo() {}`
+ *    ^^^^^^^^^^^^
+ * - `(function foo() {})`
+ *     ^^^^^^^^^^^^
+ * - `(function() {})`
+ *     ^^^^^^^^
+ * - `function* foo() {}`
+ *    ^^^^^^^^^^^^^
+ * - `(function* foo() {})`
+ *     ^^^^^^^^^^^^^
+ * - `(function*() {})`
+ *     ^^^^^^^^^
+ * - `() => {}`
+ *       ^^
+ * - `async () => {}`
+ *             ^^
+ * - `({ foo: function foo() {} })`
+ *       ^^^^^^^^^^^^^^^^^
+ * - `({ foo: function() {} })`
+ *       ^^^^^^^^^^^^^
+ * - `({ ['foo']: function() {} })`
+ *       ^^^^^^^^^^^^^^^^^
+ * - `({ [foo]: function() {} })`
+ *       ^^^^^^^^^^^^^^^
+ * - `({ foo() {} })`
+ *       ^^^
+ * - `({ foo: function* foo() {} })`
+ *       ^^^^^^^^^^^^^^^^^^
+ * - `({ foo: function*() {} })`
+ *       ^^^^^^^^^^^^^^
+ * - `({ ['foo']: function*() {} })`
+ *       ^^^^^^^^^^^^^^^^^^
+ * - `({ [foo]: function*() {} })`
+ *       ^^^^^^^^^^^^^^^^
+ * - `({ *foo() {} })`
+ *       ^^^^
+ * - `({ foo: async function foo() {} })`
+ *       ^^^^^^^^^^^^^^^^^^^^^^^
+ * - `({ foo: async function() {} })`
+ *       ^^^^^^^^^^^^^^^^^^^
+ * - `({ ['foo']: async function() {} })`
+ *       ^^^^^^^^^^^^^^^^^^^^^^^
+ * - `({ [foo]: async function() {} })`
+ *       ^^^^^^^^^^^^^^^^^^^^^
+ * - `({ async foo() {} })`
+ *       ^^^^^^^^^
+ * - `({ get foo() {} })`
+ *       ^^^^^^^
+ * - `({ set foo(a) {} })`
+ *       ^^^^^^^
+ * - `class A { constructor() {} }`
+ *              ^^^^^^^^^^^
+ * - `class A { foo() {} }`
+ *              ^^^
+ * - `class A { *foo() {} }`
+ *              ^^^^
+ * - `class A { async foo() {} }`
+ *              ^^^^^^^^^
+ * - `class A { ['foo']() {} }`
+ *              ^^^^^^^
+ * - `class A { *['foo']() {} }`
+ *              ^^^^^^^^
+ * - `class A { async ['foo']() {} }`
+ *              ^^^^^^^^^^^^^
+ * - `class A { [foo]() {} }`
+ *              ^^^^^
+ * - `class A { *[foo]() {} }`
+ *              ^^^^^^
+ * - `class A { async [foo]() {} }`
+ *              ^^^^^^^^^^^
+ * - `class A { get foo() {} }`
+ *              ^^^^^^^
+ * - `class A { set foo(a) {} }`
+ *              ^^^^^^^
+ * - `class A { static foo() {} }`
+ *              ^^^^^^^^^^
+ * - `class A { static *foo() {} }`
+ *              ^^^^^^^^^^^
+ * - `class A { static async foo() {} }`
+ *              ^^^^^^^^^^^^^^^^
+ * - `class A { static get foo() {} }`
+ *              ^^^^^^^^^^^^^^
+ * - `class A { static set foo(a) {} }`
+ *              ^^^^^^^^^^^^^^
+ * - `class A { foo = function() {} }`
+ *              ^^^^^^^^^^^^^^
+ * - `class A { static foo = function() {} }`
+ *              ^^^^^^^^^^^^^^^^^^^^^
+ * - `class A { foo = (a, b) => {} }`
+ *              ^^^^^^
+ * @param node The function node to get.
+ * @param sourceCode The source code object to get tokens.
+ * @returns The location of the function node for reporting.
  */
 function getFunctionHeadLoc(node, sourceCode) {
-    function getLocStart() {
-        if (node.parent.type === utils_1.AST_NODE_TYPES.MethodDefinition) {
-            // return the start location for class method
-            if (node.parent.decorators && node.parent.decorators.length > 0) {
-                // exclude decorators
-                return sourceCode.getTokenAfter(node.parent.decorators[node.parent.decorators.length - 1]).loc.start;
-            }
-            return node.parent.loc.start;
+    const parent = node.parent;
+    let start = null;
+    let end = null;
+    if (parent.type === utils_1.AST_NODE_TYPES.MethodDefinition ||
+        parent.type === utils_1.AST_NODE_TYPES.PropertyDefinition) {
+        // the decorator's range is included within the member
+        // however it's usually irrelevant to the member itself - so we don't want
+        // to highlight it ever.
+        if (parent.decorators.length > 0) {
+            const lastDecorator = parent.decorators[parent.decorators.length - 1];
+            const firstTokenAfterDecorator = utils_1.ESLintUtils.nullThrows(sourceCode.getTokenAfter(lastDecorator), utils_1.ESLintUtils.NullThrowsReasons.MissingToken('modifier or member name', 'class member'));
+            start = firstTokenAfterDecorator.loc.start;
         }
-        if (node.parent.type === utils_1.AST_NODE_TYPES.Property && node.parent.method) {
-            // return the start location for object method shorthand
-            return node.parent.loc.start;
+        else {
+            start = parent.loc.start;
         }
-        // return the start location for a regular function
-        return node.loc.start;
+        end = getOpeningParenOfParams(node, sourceCode).loc.start;
     }
-    function getLocEnd() {
-        if (node.type === utils_1.AST_NODE_TYPES.ArrowFunctionExpression) {
-            // find the end location for arrow function expression
-            return sourceCode.getTokenBefore(node.body, token => token.type === utils_1.AST_TOKEN_TYPES.Punctuator && token.value === '=>').loc.end;
-        }
-        // return the end location for a regular function
-        return sourceCode.getTokenBefore(node.body).loc.end;
+    else if (parent.type === utils_1.AST_NODE_TYPES.Property) {
+        start = parent.loc.start;
+        end = getOpeningParenOfParams(node, sourceCode).loc.start;
     }
+    else if (node.type === utils_1.AST_NODE_TYPES.ArrowFunctionExpression) {
+        const arrowToken = utils_1.ESLintUtils.nullThrows(sourceCode.getTokenBefore(node.body, astUtils_1.isArrowToken), utils_1.ESLintUtils.NullThrowsReasons.MissingToken('arrow token', 'arrow function'));
+        start = arrowToken.loc.start;
+        end = arrowToken.loc.end;
+    }
+    else {
+        start = node.loc.start;
+        end = getOpeningParenOfParams(node, sourceCode).loc.start;
+    }
     return {
-        start: getLocStart(),
-        end: getLocEnd(),
+        start: Object.assign({}, start),
+        end: Object.assign({}, end),
     };
 }
diff --git a/dist/util/getOperatorPrecedence.js b/dist/util/getOperatorPrecedence.js
index v6.1.0..v6.5.0 100644
--- a/dist/util/getOperatorPrecedence.js
+++ b/dist/util/getOperatorPrecedence.js
@@ -313,4 +313,5 @@
             return OperatorPrecedence.Member;
         case typescript_1.SyntaxKind.AsExpression:
+        case typescript_1.SyntaxKind.SatisfiesExpression:
             return OperatorPrecedence.Relational;
         case typescript_1.SyntaxKind.ThisKeyword:
diff --git a/dist/util/getWrappingFixer.js b/dist/util/getWrappingFixer.js
index v6.1.0..v6.5.0 100644
--- a/dist/util/getWrappingFixer.js
+++ b/dist/util/getWrappingFixer.js
@@ -13,8 +13,11 @@
         const innerCodes = innerNodes.map(innerNode => {
             let code = sourceCode.getText(innerNode);
-            // check the inner expression's precedence
-            if (!isStrongPrecedenceNode(innerNode)) {
-                // the code we are adding might have stronger precedence than our wrapped node
-                // let's wrap our node in parens in case it has a weaker precedence than the code we are wrapping it in
+            /**
+             * Wrap our node in parens to prevent the following cases:
+             * - It has a weaker precedence than the code we are wrapping it in
+             * - It's gotten mistaken as block statement instead of object expression
+             */
+            if (!isStrongPrecedenceNode(innerNode) ||
+                isObjectExpressionInOneLineReturn(node, innerNode)) {
                 code = `(${code})`;
             }
@@ -45,4 +48,6 @@
     return (innerNode.type === utils_1.AST_NODE_TYPES.Literal ||
         innerNode.type === utils_1.AST_NODE_TYPES.Identifier ||
+        innerNode.type === utils_1.AST_NODE_TYPES.TSTypeReference ||
+        innerNode.type === utils_1.AST_NODE_TYPES.TSTypeOperator ||
         innerNode.type === utils_1.AST_NODE_TYPES.ArrayExpression ||
         innerNode.type === utils_1.AST_NODE_TYPES.ObjectExpression ||
@@ -50,5 +55,6 @@
         innerNode.type === utils_1.AST_NODE_TYPES.CallExpression ||
         innerNode.type === utils_1.AST_NODE_TYPES.NewExpression ||
-        innerNode.type === utils_1.AST_NODE_TYPES.TaggedTemplateExpression);
+        innerNode.type === utils_1.AST_NODE_TYPES.TaggedTemplateExpression ||
+        innerNode.type === utils_1.AST_NODE_TYPES.TSInstantiationExpression);
 }
 exports.isStrongPrecedenceNode = isStrongPrecedenceNode;
@@ -139,3 +145,11 @@
     return false;
 }
+/**
+ * Checks if a node's parent is arrow function expression and a inner node is object expression
+ */
+function isObjectExpressionInOneLineReturn(node, innerNode) {
+    return (node.parent?.type === utils_1.AST_NODE_TYPES.ArrowFunctionExpression &&
+        node.parent.body === node &&
+        innerNode.type === utils_1.AST_NODE_TYPES.ObjectExpression);
+}
 //# sourceMappingURL=getWrappingFixer.js.map
\ No newline at end of file
diff --git a/dist/rules/indent.js b/dist/rules/indent.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/indent.js
+++ b/dist/rules/indent.js
@@ -163,19 +163,17 @@
                 };
             }
-            else {
-                return {
-                    type,
-                    accessibility: undefined,
-                    declare: false,
-                    decorators: [],
-                    definite: false,
-                    optional: false,
-                    override: false,
-                    readonly: false,
-                    static: false,
-                    typeAnnotation: undefined,
-                    ...base,
-                };
-            }
+            return {
+                type,
+                accessibility: undefined,
+                declare: false,
+                decorators: [],
+                definite: false,
+                optional: false,
+                override: false,
+                readonly: false,
+                static: false,
+                typeAnnotation: undefined,
+                ...base,
+            };
         }
         return Object.assign({}, rules, {
diff --git a/dist/rules/index.js b/dist/rules/index.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/index.js
+++ b/dist/rules/index.js
@@ -13,4 +13,5 @@
 const brace_style_1 = __importDefault(require("./brace-style"));
 const class_literal_property_style_1 = __importDefault(require("./class-literal-property-style"));
+const class_methods_use_this_1 = __importDefault(require("./class-methods-use-this"));
 const comma_dangle_1 = __importDefault(require("./comma-dangle"));
 const comma_spacing_1 = __importDefault(require("./comma-spacing"));
@@ -146,4 +147,5 @@
     'brace-style': brace_style_1.default,
     'class-literal-property-style': class_literal_property_style_1.default,
+    'class-methods-use-this': class_methods_use_this_1.default,
     'comma-dangle': comma_dangle_1.default,
     'comma-spacing': comma_spacing_1.default,
diff --git a/dist/util/index.js b/dist/util/index.js
index v6.1.0..v6.5.0 100644
--- a/dist/util/index.js
+++ b/dist/util/index.js
@@ -22,4 +22,5 @@
 __exportStar(require("./getFunctionHeadLoc"), exports);
 __exportStar(require("./getOperatorPrecedence"), exports);
+__exportStar(require("./getStaticStringValue"), exports);
 __exportStar(require("./getStringLength"), exports);
 __exportStar(require("./getThisExpression"), exports);
diff --git a/dist/rules/key-spacing.js b/dist/rules/key-spacing.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/key-spacing.js
+++ b/dist/rules/key-spacing.js
@@ -117,7 +117,5 @@
                             ]);
                         }
-                        else {
-                            return fixer.insertTextBefore(typeAnnotation, ' '.repeat(-difference));
-                        }
+                        return fixer.insertTextBefore(typeAnnotation, ' '.repeat(-difference));
                     },
                     data: {
@@ -144,7 +142,5 @@
                             ]);
                         }
-                        else {
-                            return fixer.insertTextBefore(typeAnnotation.typeAnnotation, ' '.repeat(-difference));
-                        }
+                        return fixer.insertTextBefore(typeAnnotation.typeAnnotation, ' '.repeat(-difference));
                     },
                     data: {
@@ -251,7 +247,5 @@
                                 ]);
                             }
-                            else {
-                                return fixer.insertTextBefore(toCheck, ' '.repeat(-difference));
-                            }
+                            return fixer.insertTextBefore(toCheck, ' '.repeat(-difference));
                         },
                         data: {
diff --git a/dist/rules/member-ordering.js b/dist/rules/member-ordering.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/member-ordering.js
+++ b/dist/rules/member-ordering.js
@@ -616,4 +616,7 @@
         }
         function naturalOutOfOrder(name, previousName, order) {
+            if (name === previousName) {
+                return false;
+            }
             switch (order) {
                 case 'alphabetically':
diff --git a/dist/util/misc.js b/dist/util/misc.js
index v6.1.0..v6.5.0 100644
--- a/dist/util/misc.js
+++ b/dist/util/misc.js
@@ -130,10 +130,8 @@
             };
         }
-        else {
-            return {
-                type: MemberNameType.Normal,
-                name,
-            };
-        }
+        return {
+            type: MemberNameType.Normal,
+            name,
+        };
     }
     return {
diff --git a/dist/rules/no-extra-parens.js b/dist/rules/no-extra-parens.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/no-extra-parens.js
+++ b/dist/rules/no-extra-parens.js
@@ -45,4 +45,5 @@
     defaultOptions: ['all'],
     create(context) {
+        const sourceCode = context.getSourceCode();
         const rules = baseRule.create(context);
         function binaryExp(node) {
@@ -87,6 +88,7 @@
             }
             if (node.arguments.length === 1 &&
-                node.typeArguments?.params.some(param => param.type === utils_1.AST_NODE_TYPES.TSImportType ||
-                    param.type === utils_1.AST_NODE_TYPES.TSArrayType)) {
+                // is there any opening parenthesis in type arguments
+                sourceCode.getTokenAfter(node.callee, util.isOpeningParenToken) !==
+                    sourceCode.getTokenBefore(node.arguments[0], util.isOpeningParenToken)) {
                 return rule({
                     ...node,
diff --git a/dist/rules/no-floating-promises.js b/dist/rules/no-floating-promises.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/no-floating-promises.js
+++ b/dist/rules/no-floating-promises.js
@@ -102,10 +102,8 @@
                                             return fixer.insertTextBefore(node, 'void ');
                                         }
-                                        else {
-                                            return [
-                                                fixer.insertTextBefore(node, 'void ('),
-                                                fixer.insertTextAfterRange([expression.range[1], expression.range[1]], ')'),
-                                            ];
-                                        }
+                                        return [
+                                            fixer.insertTextBefore(node, 'void ('),
+                                            fixer.insertTextAfterRange([expression.range[1], expression.range[1]], ')'),
+                                        ];
                                     },
                                 },
@@ -131,10 +129,8 @@
                                             return fixer.insertTextBefore(node, 'await ');
                                         }
-                                        else {
-                                            return [
-                                                fixer.insertTextBefore(node, 'await ('),
-                                                fixer.insertTextAfterRange([expression.range[1], expression.range[1]], ')'),
-                                            ];
-                                        }
+                                        return [
+                                            fixer.insertTextBefore(node, 'await ('),
+                                            fixer.insertTextAfterRange([expression.range[1], expression.range[1]], ')'),
+                                        ];
                                     },
                                 },
@@ -196,7 +192,5 @@
                         return { isUnhandled: false };
                     }
-                    else {
-                        return { isUnhandled: true, nonFunctionHandler: true };
-                    }
+                    return { isUnhandled: true, nonFunctionHandler: true };
                 }
                 const thenRejectionHandler = getRejectionHandlerFromThenCall(node);
@@ -205,7 +199,5 @@
                         return { isUnhandled: false };
                     }
-                    else {
-                        return { isUnhandled: true, nonFunctionHandler: true };
-                    }
+                    return { isUnhandled: true, nonFunctionHandler: true };
                 }
                 // `x.finally()` is transparent to resolution of the promise, so check `x`.
@@ -225,7 +217,5 @@
                     return alternateResult;
                 }
-                else {
-                    return isUnhandledPromise(checker, node.consequent);
-                }
+                return isUnhandledPromise(checker, node.consequent);
             }
             else if (node.type === utils_1.AST_NODE_TYPES.MemberExpression ||
@@ -242,7 +232,5 @@
                     return leftResult;
                 }
-                else {
-                    return isUnhandledPromise(checker, node.right);
-                }
+                return isUnhandledPromise(checker, node.right);
             }
             // We conservatively return false for all other types of expressions because
@@ -297,7 +285,5 @@
         return expression.arguments[0];
     }
-    else {
-        return undefined;
-    }
+    return undefined;
 }
 function getRejectionHandlerFromThenCall(expression) {
@@ -308,7 +294,5 @@
         return expression.arguments[1];
     }
-    else {
-        return undefined;
-    }
+    return undefined;
 }
 function getObjectFromFinallyCall(expression) {
diff --git a/dist/rules/no-inferrable-types.js b/dist/rules/no-inferrable-types.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/no-inferrable-types.js
+++ b/dist/rules/no-inferrable-types.js
@@ -180,8 +180,13 @@
                 return;
             }
-            node.params.filter(param => param.type === utils_1.AST_NODE_TYPES.AssignmentPattern &&
-                param.left &&
-                param.right).forEach(param => {
-                reportInferrableType(param, param.left.typeAnnotation, param.right);
+            node.params.forEach(param => {
+                if (param.type === utils_1.AST_NODE_TYPES.TSParameterProperty) {
+                    param = param.parameter;
+                }
+                if (param.type === utils_1.AST_NODE_TYPES.AssignmentPattern &&
+                    param.left &&
+                    param.right) {
+                    reportInferrableType(param, param.left.typeAnnotation, param.right);
+                }
             });
         }
diff --git a/dist/rules/no-restricted-imports.js b/dist/rules/no-restricted-imports.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/no-restricted-imports.js
+++ b/dist/rules/no-restricted-imports.js
@@ -4,4 +4,5 @@
 };
 Object.defineProperty(exports, "__esModule", { value: true });
+const utils_1 = require("@typescript-eslint/utils");
 const ignore_1 = __importDefault(require("ignore"));
 const util_1 = require("../util");
@@ -170,5 +171,7 @@
         return {
             ImportDeclaration(node) {
-                if (node.importKind === 'type') {
+                if (node.importKind === 'type' ||
+                    node.specifiers.every(specifier => specifier.type === utils_1.AST_NODE_TYPES.ImportSpecifier &&
+                        specifier.importKind === 'type')) {
                     const importSource = node.source.value.trim();
                     if (!isAllowedTypeImportPath(importSource) &&
@@ -182,5 +185,6 @@
             },
             'ExportNamedDeclaration[source]'(node) {
-                if (node.exportKind === 'type') {
+                if (node.exportKind === 'type' ||
+                    node.specifiers.every(specifier => specifier.exportKind === 'type')) {
                     const importSource = node.source.value.trim();
                     if (!isAllowedTypeImportPath(importSource) &&
diff --git a/dist/rules/no-shadow.js b/dist/rules/no-shadow.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/no-shadow.js
+++ b/dist/rules/no-shadow.js
@@ -402,9 +402,7 @@
                 };
             }
-            else {
-                return {
-                    global: true,
-                };
-            }
+            return {
+                global: true,
+            };
         }
         /**
diff --git a/dist/rules/no-unnecessary-condition.js b/dist/rules/no-unnecessary-condition.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/no-unnecessary-condition.js
+++ b/dist/rules/no-unnecessary-condition.js
@@ -35,9 +35,18 @@
 const isPossiblyFalsy = (type) => tsutils
     .unionTypeParts(type)
+    // Intersections like `string & {}` can also be possibly falsy,
+    // requiring us to look into the intersection.
+    .flatMap(type => tsutils.intersectionTypeParts(type))
     // PossiblyFalsy flag includes literal values, so exclude ones that
     // are definitely truthy
     .filter(t => !isTruthyLiteral(t))
     .some(type => (0, util_1.isTypeFlagSet)(type, ts.TypeFlags.PossiblyFalsy));
-const isPossiblyTruthy = (type) => tsutils.unionTypeParts(type).some(type => !tsutils.isFalsyType(type));
+const isPossiblyTruthy = (type) => tsutils
+    .unionTypeParts(type)
+    .map(type => tsutils.intersectionTypeParts(type))
+    .some(intersectionParts => 
+// It is possible to define intersections that are always falsy,
+// like `"" & { __brand: string }`.
+intersectionParts.every(type => !tsutils.isFalsyType(type)));
 // Nullish utilities
 const nullishFlag = ts.TypeFlags.Undefined | ts.TypeFlags.Null;
diff --git a/dist/rules/no-unsafe-enum-comparison.js b/dist/rules/no-unsafe-enum-comparison.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/no-unsafe-enum-comparison.js
+++ b/dist/rules/no-unsafe-enum-comparison.js
@@ -70,5 +70,5 @@
         }
         return {
-            'BinaryExpression[operator=/=|<|>/]'(node) {
+            'BinaryExpression[operator=/^[<>!=]?={0,2}$/]'(node) {
                 const left = getTypeFromNode(node.left);
                 const right = getTypeFromNode(node.right);
diff --git a/dist/rules/non-nullable-type-assertion-style.js b/dist/rules/non-nullable-type-assertion-style.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/non-nullable-type-assertion-style.js
+++ b/dist/rules/non-nullable-type-assertion-style.js
@@ -67,7 +67,5 @@
                 return false;
             }
-            else {
-                return ((type.flags & (ts.TypeFlags.Null | ts.TypeFlags.Undefined)) !== 0);
-            }
+            return (type.flags & (ts.TypeFlags.Null | ts.TypeFlags.Undefined)) !== 0;
         };
         const sameTypeWithoutNullish = (assertedTypes, originalTypes) => {
@@ -108,7 +106,11 @@
                 }
                 if (sameTypeWithoutNullish(assertedTypes, originalTypes)) {
+                    const expressionSourceCode = sourceCode.getText(node.expression);
+                    const higherPrecedenceThanUnary = util.getOperatorPrecedence(services.esTreeNodeToTSNodeMap.get(node.expression).kind, ts.SyntaxKind.Unknown) > util.OperatorPrecedence.Unary;
                     context.report({
                         fix(fixer) {
-                            return fixer.replaceText(node, `${sourceCode.getText(node.expression)}!`);
+                            return fixer.replaceText(node, higherPrecedenceThanUnary
+                                ? `${expressionSourceCode}!`
+                                : `(${expressionSourceCode})!`);
                         },
                         messageId: 'preferNonNullAssertion',
diff --git a/dist/rules/prefer-nullish-coalescing.js b/dist/rules/prefer-nullish-coalescing.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/prefer-nullish-coalescing.js
+++ b/dist/rules/prefer-nullish-coalescing.js
@@ -58,11 +58,19 @@
                     },
                     ignorePrimitives: {
-                        type: 'object',
-                        properties: {
-                            bigint: { type: 'boolean' },
-                            boolean: { type: 'boolean' },
-                            number: { type: 'boolean' },
-                            string: { type: 'boolean' },
-                        },
+                        oneOf: [
+                            {
+                                type: 'object',
+                                properties: {
+                                    bigint: { type: 'boolean' },
+                                    boolean: { type: 'boolean' },
+                                    number: { type: 'boolean' },
+                                    string: { type: 'boolean' },
+                                },
+                            },
+                            {
+                                type: 'boolean',
+                                enum: [true],
+                            },
+                        ],
                     },
                     ignoreTernaryTests: {
@@ -244,12 +252,18 @@
                 }
                 const ignorableFlags = [
-                    ignorePrimitives.bigint && ts.TypeFlags.BigInt,
-                    ignorePrimitives.boolean && ts.TypeFlags.BooleanLiteral,
-                    ignorePrimitives.number && ts.TypeFlags.Number,
-                    ignorePrimitives.string && ts.TypeFlags.String,
+                    (ignorePrimitives === true || ignorePrimitives.bigint) &&
+                        ts.TypeFlags.BigInt,
+                    (ignorePrimitives === true || ignorePrimitives.boolean) &&
+                        ts.TypeFlags.BooleanLiteral,
+                    (ignorePrimitives === true || ignorePrimitives.number) &&
+                        ts.TypeFlags.Number,
+                    (ignorePrimitives === true || ignorePrimitives.string) &&
+                        ts.TypeFlags.String,
                 ]
-                    .filter((flag) => flag !== undefined)
+                    .filter((flag) => typeof flag === 'number')
                     .reduce((previous, flag) => previous | flag, 0);
-                if (type.types.some(t => tsutils.isTypeFlagSet(t, ignorableFlags))) {
+                if (type.flags !== ts.TypeFlags.Null &&
+                    type.flags !== ts.TypeFlags.Undefined &&
+                    type.types.some(t => tsutils.isTypeFlagSet(t, ignorableFlags))) {
                     return;
                 }
diff --git a/dist/rules/prefer-string-starts-ends-with.js b/dist/rules/prefer-string-starts-ends-with.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/prefer-string-starts-ends-with.js
+++ b/dist/rules/prefer-string-starts-ends-with.js
@@ -162,9 +162,11 @@
          * Parse a given `RegExp` pattern to that string if it's a static string.
          * @param pattern The RegExp pattern text to parse.
-         * @param uFlag The Unicode flag of the RegExp.
+         * @param unicode Whether the RegExp is unicode.
          */
-        function parseRegExpText(pattern, uFlag) {
+        function parseRegExpText(pattern, unicode) {
             // Parse it.
-            const ast = regexpp.parsePattern(pattern, undefined, undefined, uFlag);
+            const ast = regexpp.parsePattern(pattern, undefined, undefined, {
+                unicode,
+            });
             if (ast.alternatives.length !== 1) {
                 return null;
diff --git a/dist/rules/return-await.js b/dist/rules/return-await.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/return-await.js
+++ b/dist/rules/return-await.js
@@ -135,10 +135,8 @@
                 return fixer.insertTextBefore(node, 'await ');
             }
-            else {
-                return [
-                    fixer.insertTextBefore(node, 'await ('),
-                    fixer.insertTextAfter(node, ')'),
-                ];
-            }
+            return [
+                fixer.insertTextBefore(node, 'await ('),
+                fixer.insertTextAfter(node, ')'),
+            ];
         }
         function isHigherPrecedenceThanAwait(node) {
diff --git a/dist/rules/strict-boolean-expressions.js b/dist/rules/strict-boolean-expressions.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/strict-boolean-expressions.js
+++ b/dist/rules/strict-boolean-expressions.js
@@ -621,10 +621,15 @@
                             node,
                             messageId: 'conditionErrorNullableObject',
-                            fix: util.getWrappingFixer({
-                                sourceCode,
-                                node: node.parent,
-                                innerNode: node,
-                                wrap: code => `${code} == null`,
-                            }),
+                            suggest: [
+                                {
+                                    messageId: 'conditionFixCompareNullish',
+                                    fix: util.getWrappingFixer({
+                                        sourceCode,
+                                        node: node.parent,
+                                        innerNode: node,
+                                        wrap: code => `${code} == null`,
+                                    }),
+                                },
+                            ],
                         });
                     }
@@ -634,9 +639,14 @@
                             node,
                             messageId: 'conditionErrorNullableObject',
-                            fix: util.getWrappingFixer({
-                                sourceCode,
-                                node,
-                                wrap: code => `${code} != null`,
-                            }),
+                            suggest: [
+                                {
+                                    messageId: 'conditionFixCompareNullish',
+                                    fix: util.getWrappingFixer({
+                                        sourceCode,
+                                        node,
+                                        wrap: code => `${code} != null`,
+                                    }),
+                                },
+                            ],
                         });
                     }
diff --git a/dist/rules/type-annotation-spacing.js b/dist/rules/type-annotation-spacing.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/type-annotation-spacing.js
+++ b/dist/rules/type-annotation-spacing.js
@@ -59,7 +59,5 @@
         return rules.parameter;
     }
-    else {
-        return rules.colon;
-    }
+    return rules.colon;
 }
 function getRules(rules, node) {
@@ -77,7 +75,5 @@
         return rules.returnType;
     }
-    else {
-        return rules.colon;
-    }
+    return rules.colon;
 }
 exports.default = util.createRule({
diff --git a/dist/rules/unified-signatures.js b/dist/rules/unified-signatures.js
index v6.1.0..v6.5.0 100644
--- a/dist/rules/unified-signatures.js
+++ b/dist/rules/unified-signatures.js
@@ -330,5 +330,5 @@
         }
         function addOverload(signature, key, containingNode) {
-            key = key ?? getOverloadKey(signature);
+            key ??= getOverloadKey(signature);
             if (currentScope &&
                 (containingNode || signature).parent === currentScope.parent) {
diff --git a/package.json b/package.json
index v6.1.0..v6.5.0 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
 {
   "name": "@typescript-eslint/eslint-plugin",
-  "version": "6.1.0",
+  "version": "6.5.0",
   "description": "TypeScript plugin for ESLint",
   "files": [
@@ -52,5 +52,5 @@
     "generate:configs": "yarn tsx tools/generate-configs.ts",
     "lint": "nx lint",
-    "test": "jest --coverage",
+    "test": "jest --coverage --logHeapUsage",
     "test-single": "jest --no-coverage",
     "typecheck": "tsc -p tsconfig.json --noEmit"
@@ -58,13 +58,12 @@
   "dependencies": {
     "@eslint-community/regexpp": "^4.5.1",
-    "@typescript-eslint/scope-manager": "6.1.0",
-    "@typescript-eslint/type-utils": "6.1.0",
-    "@typescript-eslint/utils": "6.1.0",
-    "@typescript-eslint/visitor-keys": "6.1.0",
+    "@typescript-eslint/scope-manager": "6.5.0",
+    "@typescript-eslint/type-utils": "6.5.0",
+    "@typescript-eslint/utils": "6.5.0",
+    "@typescript-eslint/visitor-keys": "6.5.0",
     "debug": "^4.3.4",
     "graphemer": "^1.4.0",
     "ignore": "^5.2.4",
     "natural-compare": "^1.4.0",
-    "natural-compare-lite": "^1.4.0",
     "semver": "^7.5.4",
     "ts-api-utils": "^1.0.1"
@@ -75,15 +74,19 @@
     "@types/natural-compare": "*",
     "@types/prettier": "*",
-    "@typescript-eslint/rule-schema-to-typescript-types": "6.1.0",
-    "@typescript-eslint/rule-tester": "6.1.0",
+    "@typescript-eslint/rule-schema-to-typescript-types": "6.5.0",
+    "@typescript-eslint/rule-tester": "6.5.0",
     "ajv": "^6.12.6",
     "chalk": "^5.3.0",
     "cross-fetch": "*",
-    "jest-specific-snapshot": "*",
+    "grapheme-splitter": "^1.0.4",
+    "jest": "29.6.2",
+    "jest-specific-snapshot": "^8.0.0",
     "json-schema": "*",
     "markdown-table": "^3.0.3",
     "marked": "^5.1.1",
-    "prettier": "*",
+    "prettier": "^2.8.4",
+    "rimraf": "*",
     "title-case": "^3.0.3",
+    "tsx": "*",
     "typescript": "*"
   },
@@ -101,4 +104,4 @@
     "url": "https://opencollective.com/typescript-eslint"
   },
-  "gitHead": "d98f1e811a6a06128a86f10824b6005984dc8265"
+  "gitHead": "4f34d0ba34474926ba1eed623704b583a037f886"
 }
diff --git a/dist/configs/all.js.map b/dist/configs/all.js.map
index v6.1.0..v6.5.0 100644
--- a/dist/configs/all.js.map
+++ b/dist/configs/all.js.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"all.js","sourceRoot":"","sources":["../../src/configs/all.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"all.js","sourceRoot":"","sources":["../../src/configs/all.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/rules/prefer-optional-chain-utils/analyzeChain.js.map b/dist/rules/prefer-optional-chain-utils/analyzeChain.js.map
index v6.1.0..v6.5.0 100644
--- a/dist/rules/prefer-optional-chain-utils/analyzeChain.js.map
+++ b/dist/rules/prefer-optional-chain-utils/analyzeChain.js.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"analyzeChain.js","sourceRoot":"","sources":["../../../src/rules/prefer-optional-chain-utils/analyzeChain.ts"],"names":[],"mappings":"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

(too long so truncated)

Size Files
2.3 MB → 2.4 MB (+31.0 KB 🟡) 489 → 496 (+7 🟡)
Command details
npm diff --diff=@typescript-eslint/eslint-plugin@6.1.0 --diff=@typescript-eslint/eslint-plugin@6.5.0 --diff-unified=2

See also the npm diff document.

Reported by ybiquitous/npm-diff-action@v1.4.1 (Node.js 18.17.1 and npm 10.0.0)

@dependabot dependabot bot force-pushed the dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-6.5.0 branch 4 times, most recently from 464c894 to e30d715 Compare September 1, 2023 05:44
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 6.1.0 to 6.5.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.5.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot force-pushed the dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-6.5.0 branch from e30d715 to da20fe4 Compare September 1, 2023 05:47
@ybiquitous ybiquitous disabled auto-merge September 1, 2023 06:36
@ybiquitous ybiquitous changed the title build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.1.0 to 6.5.0 feat(typescript): add @typescript-eslint/class-methods-use-this rule Sep 1, 2023
@ybiquitous
Copy link
Owner

ybiquitous commented Sep 1, 2023

Added @typescript-eslint/class-methods-use-this rule via 233a645

"class-methods-use-this": "warn",

@ybiquitous ybiquitous merged commit 5c2113c into main Sep 1, 2023
5 checks passed
@ybiquitous ybiquitous deleted the dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-6.5.0 branch September 1, 2023 06:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file javascript Pull requests that update Javascript code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant