Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/Components.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/Components.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/Components.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,76 @@
+declare const _exports: typeof Components & {
+    detect(rule: any): (context?: any) => {
+        [_: string]: Function;
+    };
+};
+export = _exports;
+/**
+ * Components
+ */
+declare class Components {
+    /**
+     * Add a node to the components list, or update it if it's already in the list
+     *
+     * @param {ASTNode} node The AST node being added.
+     * @param {number} confidence Confidence in the component detection (0=banned, 1=maybe, 2=yes)
+     * @returns {Object} Added component object
+     */
+    add(node: ASTNode, confidence: number): any;
+    /**
+     * Find a component in the list using its node
+     *
+     * @param {ASTNode} node The AST node being searched.
+     * @returns {Object} Component object, undefined if the component is not found or has confidence value of 0.
+     */
+    get(node: ASTNode): any;
+    /**
+     * Update a component in the list
+     *
+     * @param {ASTNode} node The AST node being updated.
+     * @param {Object} props Additional properties to add to the component.
+     */
+    set(node: ASTNode, props: any): void;
+    /**
+     * Return the components list
+     * Components for which we are not confident are not returned
+     *
+     * @returns {Object} Components list
+     */
+    list(): any;
+    /**
+     * Return the length of the components list
+     * Components for which we are not confident are not counted
+     *
+     * @returns {number} Components list length
+     */
+    length(): number;
+    /**
+     * Return the node naming the default React import
+     * It can be used to determine the local name of import, even if it's imported
+     * with an unusual name.
+     *
+     * @returns {ASTNode} React default import node
+     */
+    getDefaultReactImports(): ASTNode;
+    /**
+     * Return the nodes of all React named imports
+     *
+     * @returns {Object} The list of React named imports
+     */
+    getNamedReactImports(): any;
+    /**
+     * Add the default React import specifier to the scope
+     *
+     * @param {ASTNode} specifier The AST Node of the default React import
+     * @returns {void}
+     */
+    addDefaultReactImport(specifier: ASTNode): void;
+    /**
+     * Add a named React import specifier to the scope
+     *
+     * @param {ASTNode} specifier The AST Node of a named React import
+     * @returns {void}
+     */
+    addNamedReactImport(specifier: ASTNode): void;
+}
+//# sourceMappingURL=Components.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/Components.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/Components.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/Components.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"Components.d.ts","sourceRoot":"","sources":["Components.js"],"names":[],"mappings":";;;;;;AA2DA;;GAEG;AACH;IAME;;;;;;OAMG;IACH,UAJW,OAAO,cACP,MAAM,OAmBhB;IAED;;;;;OAKG;IACH,UAHW,OAAO,OAUjB;IAED;;;;;OAKG;IACH,UAHW,OAAO,oBAwBjB;IAED;;;;;OAKG;IACH,YAoCC;IAED;;;;;OAKG;IACH,UAFa,MAAM,CAKlB;IAED;;;;;;OAMG;IACH,0BAFa,OAAO,CAInB;IAED;;;;OAIG;IACH,4BAEC;IAED;;;;;OAKG;IACH,iCAHW,OAAO,GACL,IAAI,CAOhB;IAED;;;;;OAKG;IACH,+BAHW,OAAO,GACL,IAAI,CAOhB;CACF"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/Components.js
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/Components.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/Components.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -71,5 +71,5 @@
    *
    * @param {ASTNode} node The AST node being added.
-   * @param {Number} confidence Confidence in the component detection (0=banned, 1=maybe, 2=yes)
+   * @param {number} confidence Confidence in the component detection (0=banned, 1=maybe, 2=yes)
    * @returns {Object} Added component object
    */
@@ -184,5 +184,5 @@
    * Components for which we are not confident are not counted
    *
-   * @returns {Number} Components list length
+   * @returns {number} Components list length
    */
   length() {
@@ -304,18 +304,18 @@
 
     /**
-     * @param {ASTNode} ASTNode
+     * @param {ASTNode} node
      * @param {boolean=} strict
      * @returns {boolean}
      */
-    isReturningJSX(ASTNode, strict) {
-      return jsxUtil.isReturningJSX(context, ASTNode, strict, true);
-    },
-
-    isReturningJSXOrNull(ASTNode, strict) {
-      return jsxUtil.isReturningJSX(context, ASTNode, strict);
-    },
-
-    isReturningOnlyNull(ASTNode) {
-      return jsxUtil.isReturningOnlyNull(ASTNode, context);
+    isReturningJSX(node, strict) {
+      return jsxUtil.isReturningJSX(context, node, strict, true);
+    },
+
+    isReturningJSXOrNull(node, strict) {
+      return jsxUtil.isReturningJSX(context, node, strict);
+    },
+
+    isReturningOnlyNull(node) {
+      return jsxUtil.isReturningOnlyNull(node, context);
     },
 
@@ -408,5 +408,5 @@
 
     isPragmaComponentWrapper(node) {
-      if (!node || node.type !== 'CallExpression') {
+      if (!astUtil.isCallExpression(node)) {
         return false;
       }
@@ -568,5 +568,11 @@
 
         // for case abc = { [someobject.somekey]: props => { ... return not-jsx } }
-        if (node.parent && node.parent.key && node.parent.key.type === 'MemberExpression' && !utils.isReturningJSX(node) && !utils.isReturningOnlyNull(node)) {
+        if (
+          node.parent
+          && node.parent.key
+          && node.parent.key.type === 'MemberExpression'
+          && !utils.isReturningJSX(node)
+          && !utils.isReturningOnlyNull(node)
+        ) {
           return undefined;
         }
@@ -578,5 +584,8 @@
           )
         ) {
-          if (isFirstLetterCapitalized(node.parent.key.name) && utils.isReturningJSX(node)) {
+          if (
+            isFirstLetterCapitalized(node.parent.key.name)
+            && utils.isReturningJSX(node)
+          ) {
             return node;
           }
@@ -642,5 +651,5 @@
      *
      * @param {ASTNode} node The AST node being checked (must be a MemberExpression).
-     * @returns {ASTNode} component node, null if we cannot find the component
+     * @returns {ASTNode | null} component node, null if we cannot find the component
      */
     getRelatedComponent(node) {
@@ -752,8 +761,8 @@
      * @param {ASTNode} node The AST node being searched. (expects CallExpression)
      * @param {('useCallback'|'useContext'|'useDebugValue'|'useEffect'|'useImperativeHandle'|'useLayoutEffect'|'useMemo'|'useReducer'|'useRef'|'useState')[]} [expectedHookNames] React hook names to which search is limited.
-     * @returns {Boolean} True if the node is a call to a React hook
+     * @returns {boolean} True if the node is a call to a React hook
      */
     isReactHookCall(node, expectedHookNames) {
-      if (node.type !== 'CallExpression') {
+      if (!astUtil.isCallExpression(node)) {
         return false;
       }
@@ -799,6 +808,12 @@
 
       const hookResolvedDefs = potentialHookReference && potentialHookReference.resolved.defs;
-      const localHookName = (isPotentialReactHookCall && node.callee.property.name)
-        || (isPotentialHookCall && potentialHookReference && node.callee.name);
+      const localHookName = (
+        isPotentialReactHookCall
+        && node.callee.property.name
+      ) || (
+        isPotentialHookCall
+        && potentialHookReference
+        && node.callee.name
+      );
       const isHookShadowed = isPotentialHookCall
         && hookResolvedDefs
@@ -877,9 +892,9 @@
       }
 
-      node = utils.getStatelessComponent(node);
-      if (!node) {
-        return;
-      }
-      components.add(node, 2);
+      const cNode = utils.getStatelessComponent(node);
+      if (!cNode) {
+        return;
+      }
+      components.add(cNode, 2);
     },
 
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/annotations.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/annotations.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/annotations.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,8 @@
+/**
+ * Checks if we are declaring a `props` argument with a flow type annotation.
+ * @param {ASTNode} node The AST node being checked.
+ * @param {Object} context
+ * @returns {boolean} True if the node is a type annotated props declaration, false if not.
+ */
+export function isAnnotatedFunctionPropsDeclaration(node: ASTNode, context: any): boolean;
+//# sourceMappingURL=annotations.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/annotations.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/annotations.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/annotations.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["annotations.js"],"names":[],"mappings":"AAUA;;;;;GAKG;AACH,0DAJW,OAAO,iBAEL,OAAO,CAenB"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/annotations.js
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/annotations.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/annotations.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -13,5 +13,5 @@
  * @param {ASTNode} node The AST node being checked.
  * @param {Object} context
- * @returns {Boolean} True if the node is a type annotated props declaration, false if not.
+ * @returns {boolean} True if the node is a type annotated props declaration, false if not.
  */
 function isAnnotatedFunctionPropsDeclaration(node, context) {
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/ast.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/ast.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/ast.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,136 @@
+/**
+ * Find a return statement in the current node
+ *
+ * @param {ASTNode} node The AST node being checked
+ * @returns {ASTNode | false}
+ */
+export function findReturnStatement(node: ASTNode): ASTNode | false;
+/**
+ * Get properties for a given AST node
+ * @param {ASTNode} node The AST node being checked.
+ * @returns {Array} Properties array.
+ */
+export function getComponentProperties(node: ASTNode): any[];
+/**
+ * Gets the first node in a line from the initial node, excluding whitespace.
+ * @param {Object} context The node to check
+ * @param {ASTNode} node The node to check
+ * @return {ASTNode} the first node in the line
+ */
+export function getFirstNodeInLine(context: any, node: ASTNode): ASTNode;
+/**
+ * Retrieve the name of a key node
+ * @param {Context} context The AST node with the key.
+ * @param {any} node The AST node with the key.
+ * @return {string | undefined} the name of the key
+ */
+export function getKeyValue(context: Context, node: any): string | undefined;
+/**
+ * Get properties name
+ * @param {Object} node - Property.
+ * @returns {string} Property name.
+ */
+export function getPropertyName(node: any): string;
+/**
+ * Get node with property's name
+ * @param {Object} node - Property.
+ * @returns {Object} Property name node.
+ */
+export function getPropertyNameNode(node: any): any;
+/**
+ * Check if we are in a class constructor
+ * @param {Context} context
+ * @param {ASTNode} node The AST node being checked.
+ * @return {boolean}
+ */
+export function inConstructor(context: Context, node: ASTNode): boolean;
+/**
+ * Checks if a node is being assigned a value: props.bar = 'bar'
+ * @param {ASTNode} node The AST node being checked.
+ * @returns {boolean}
+ */
+export function isAssignmentLHS(node: ASTNode): boolean;
+/**
+ * Matcher used to check whether given node is a `CallExpression`
+ * @param {ASTNode} node The AST node
+ * @returns {boolean} True if node is a `CallExpression`, false if not
+ */
+export function isCallExpression(node: ASTNode): boolean;
+/**
+ * Checks if the node is a class.
+ * @param {ASTNode} node The node to check
+ * @return {boolean} true if it's a class
+ */
+export function isClass(node: ASTNode): boolean;
+/**
+ * Checks if the node is a function.
+ * @param {ASTNode} node The node to check
+ * @return {boolean} true if it's a function
+ */
+export function isFunction(node: ASTNode): boolean;
+/**
+ * Checks if node is a function declaration or expression or arrow function.
+ * @param {ASTNode} node The node to check
+ * @return {boolean} true if it's a function-like
+ */
+export function isFunctionLike(node: ASTNode): boolean;
+/**
+ * Checks if the node is a function or arrow function expression.
+ * @param {ASTNode} node The node to check
+ * @return {boolean} true if it's a function-like expression
+ */
+export function isFunctionLikeExpression(node: ASTNode): boolean;
+/**
+ * Checks if the node is the first in its line, excluding whitespace.
+ * @param {Object} context The node to check
+ * @param {ASTNode} node The node to check
+ * @return {boolean} true if it's the first node in its line
+ */
+export function isNodeFirstInLine(context: any, node: ASTNode): boolean;
+/**
+ * Checks if a node is surrounded by parenthesis.
+ *
+ * @param {object} context - Context from the rule
+ * @param {ASTNode} node - Node to be checked
+ * @returns {boolean}
+ */
+export function isParenthesized(context: object, node: ASTNode): boolean;
+export function isTSAsExpression(node: any): boolean;
+export function isTSFunctionType(node: any): boolean;
+export function isTSInterfaceDeclaration(node: any): boolean;
+export function isTSInterfaceHeritage(node: any): boolean;
+export function isTSIntersectionType(node: any): boolean;
+export function isTSParenthesizedType(node: any): boolean;
+export function isTSTypeAliasDeclaration(node: any): boolean;
+export function isTSTypeAnnotation(node: any): boolean;
+export function isTSTypeDeclaration(node: any): boolean;
+export function isTSTypeLiteral(node: any): boolean;
+export function isTSTypeParameterInstantiation(node: any): boolean;
+export function isTSTypeQuery(node: any): boolean;
+export function isTSTypeReference(node: any): boolean;
+/**
+ * Wrapper for estraverse.traverse
+ *
+ * @param {ASTNode} ASTnode The AST node being checked
+ * @param {Object} visitor Visitor Object for estraverse
+ */
+export function traverse(ASTnode: ASTNode, visitor: any): void;
+/**
+ * Helper function for traversing "returns" (return statements or the
+ * returned expression in the case of an arrow function) of a function
+ *
+ * @param {ASTNode} ASTNode The AST node being checked
+ * @param {Context} context The context of `ASTNode`.
+ * @param {(returnValue: ASTNode, breakTraverse: () => void) => void} onReturn
+ *   Function to execute for each returnStatement found
+ * @returns {undefined}
+ */
+export function traverseReturns(ASTNode: ASTNode, context: Context, onReturn: (returnValue: ASTNode, breakTraverse: () => void) => void): undefined;
+/**
+ * Extracts the expression node that is wrapped inside a TS type assertion
+ *
+ * @param {ASTNode} node - potential TS node
+ * @returns {ASTNode} - unwrapped expression node
+ */
+export function unwrapTSAsExpression(node: ASTNode): ASTNode;
+//# sourceMappingURL=ast.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/ast.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/ast.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/ast.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["ast.js"],"names":[],"mappings":"AAkDA;;;;;GAKG;AACH,0CAHW,OAAO,GACL,OAAO,GAAG,KAAK,CAa3B;AA0GD;;;;GAIG;AACH,6CAHW,OAAO,SAajB;AAED;;;;;GAKG;AACH,uDAHW,OAAO,GACN,OAAO,CAgBlB;AA8ED;;;;;GAKG;AACH,qCAJW,OAAO,QACP,GAAG,GACF,MAAM,GAAG,SAAS,CAqB7B;AAtJD;;;;GAIG;AACH,4CAFa,MAAM,CAKlB;AA3BD;;;;GAIG;AACH,oDAYC;AAoGD;;;;;GAKG;AACH,uCAJW,OAAO,QACP,OAAO,GACN,OAAO,CAYlB;AAuDD;;;;GAIG;AACH,sCAHW,OAAO,GACL,OAAO,CAQnB;AAMD;;;;GAIG;AACH,uCAHW,OAAO,GACL,OAAO,CAInB;AAxGD;;;;GAIG;AACH,8BAHW,OAAO,GACN,OAAO,CAIlB;AAzBD;;;;GAIG;AACH,iCAHW,OAAO,GACN,OAAO,CAIlB;AAED;;;;GAIG;AACH,qCAHW,OAAO,GACN,OAAO,CAIlB;AAzBD;;;;GAIG;AACH,+CAHW,OAAO,GACN,OAAO,CAIlB;AApBD;;;;;GAKG;AACH,sDAHW,OAAO,GACN,OAAO,CAOlB;AA4FD;;;;;;GAMG;AACH,yCAJW,MAAM,QACN,OAAO,GACL,OAAO,CAUnB;AAeD,qDAEC;AAqFD,qDAIC;AAtCD,6DAOC;AAbD,0DAIC;AAVD,yDAIC;AAoCD,0DAIC;AAbD,6DAOC;AAlDD,uDAIC;AA6BD,wDAQC;AAnCD,oDAIC;AA4DD,mEAIC;AAVD,kDAIC;AA1ED,sDAIC;AAtWD;;;;;GAKG;AACH,kCAHW,OAAO,sBAgBjB;AAqCD;;;;;;;;;GASG;AACH,yCANW,OAAO,WACP,OAAO,0BACO,OAAO,iBAAiB,MAAM,IAAI,KAAK,IAAI,GAEvD,SAAS,CAgErB;AAwND;;;;;GAKG;AACH,2CAHW,OAAO,GACL,OAAO,CAInB"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/ast.js
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/ast.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/ast.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -93,5 +93,5 @@
 
   /* TODO: properly warn on React.forwardRefs having typo properties
-  if (nodeType === 'CallExpression') {
+  if (astUtil.isCallExpression(ASTNode)) {
     const callee = ASTNode.callee;
     const pragma = pragmaUtil.getFromContext(context);
@@ -149,5 +149,9 @@
  */
 function getPropertyNameNode(node) {
-  if (node.key || ['MethodDefinition', 'Property'].indexOf(node.type) !== -1) {
+  if (
+    node.key
+    || node.type === 'MethodDefinition'
+    || node.type === 'Property'
+  ) {
     return node.key;
   }
@@ -161,5 +165,5 @@
  * Get properties name
  * @param {Object} node - Property.
- * @returns {String} Property name.
+ * @returns {string} Property name.
  */
 function getPropertyName(node) {
@@ -211,5 +215,5 @@
  * @param {Object} context The node to check
  * @param {ASTNode} node The node to check
- * @return {Boolean} true if it's the first node in its line
+ * @return {boolean} true if it's the first node in its line
  */
 function isNodeFirstInLine(context, node) {
@@ -223,5 +227,5 @@
  * Checks if the node is a function or arrow function expression.
  * @param {ASTNode} node The node to check
- * @return {Boolean} true if it's a function-like expression
+ * @return {boolean} true if it's a function-like expression
  */
 function isFunctionLikeExpression(node) {
@@ -232,5 +236,5 @@
  * Checks if the node is a function.
  * @param {ASTNode} node The node to check
- * @return {Boolean} true if it's a function
+ * @return {boolean} true if it's a function
  */
 function isFunction(node) {
@@ -241,5 +245,5 @@
  * Checks if node is a function declaration or expression or arrow function.
  * @param {ASTNode} node The node to check
- * @return {Boolean} true if it's a function-like
+ * @return {boolean} true if it's a function-like
  */
 function isFunctionLike(node) {
@@ -250,5 +254,5 @@
  * Checks if the node is a class.
  * @param {ASTNode} node The node to check
- * @return {Boolean} true if it's a class
+ * @return {boolean} true if it's a class
  */
 function isClass(node) {
@@ -330,5 +334,5 @@
  * Checks if a node is being assigned a value: props.bar = 'bar'
  * @param {ASTNode} node The AST node being checked.
- * @returns {Boolean}
+ * @returns {boolean}
  */
 function isAssignmentLHS(node) {
@@ -340,4 +344,17 @@
 }
 
+function isTSAsExpression(node) {
+  return node && node.type === 'TSAsExpression';
+}
+
+/**
+ * Matcher used to check whether given node is a `CallExpression`
+ * @param {ASTNode} node The AST node
+ * @returns {boolean} True if node is a `CallExpression`, false if not
+ */
+function isCallExpression(node) {
+  return node && node.type === 'CallExpression';
+}
+
 /**
  * Extracts the expression node that is wrapped inside a TS type assertion
@@ -347,121 +364,120 @@
  */
 function unwrapTSAsExpression(node) {
-  if (node && node.type === 'TSAsExpression') return node.expression;
-  return node;
+  return isTSAsExpression(node) ? node.expression : node;
 }
 
 function isTSTypeReference(node) {
   if (!node) return false;
-  const nodeType = node.type;
-  return nodeType === 'TSTypeReference';
+
+  return node.type === 'TSTypeReference';
 }
 
 function isTSTypeAnnotation(node) {
-  if (!node) return false;
-  const nodeType = node.type;
-  return nodeType === 'TSTypeAnnotation';
+  if (!node) { return false; }
+
+  return node.type === 'TSTypeAnnotation';
 }
 
 function isTSTypeLiteral(node) {
-  if (!node) return false;
-  const nodeType = node.type;
-  return nodeType === 'TSTypeLiteral';
+  if (!node) { return false; }
+
+  return node.type === 'TSTypeLiteral';
 }
 
 function isTSIntersectionType(node) {
-  if (!node) return false;
-  const nodeType = node.type;
-  return nodeType === 'TSIntersectionType';
+  if (!node) { return false; }
+
+  return node.type === 'TSIntersectionType';
 }
 
 function isTSInterfaceHeritage(node) {
-  if (!node) return false;
-  const nodeType = node.type;
-  return nodeType === 'TSInterfaceHeritage';
+  if (!node) { return false; }
+
+  return node.type === 'TSInterfaceHeritage';
 }
 
 function isTSInterfaceDeclaration(node) {
-  if (!node) return false;
-  let nodeType = node.type;
+  if (!node) { return false; }
+
+  return (node.type === 'ExportNamedDeclaration' && node.declaration
+    ? node.declaration.type
+    : node.type
+  ) === 'TSInterfaceDeclaration';
+}
+
+function isTSTypeDeclaration(node) {
+  if (!node) { return false; }
+
+  const nodeToCheck = node.type === 'ExportNamedDeclaration' && node.declaration
+    ? node.declaration
+    : node;
+
+  return nodeToCheck.type === 'VariableDeclaration' && nodeToCheck.kind === 'type';
+}
+
+function isTSTypeAliasDeclaration(node) {
+  if (!node) { return false; }
+
   if (node.type === 'ExportNamedDeclaration' && node.declaration) {
-    nodeType = node.declaration.type;
-  }
-  return nodeType === 'TSInterfaceDeclaration';
-}
-
-function isTSTypeDeclaration(node) {
-  if (!node) return false;
-  let nodeType = node.type;
-  let nodeKind = node.kind;
-  if (node.type === 'ExportNamedDeclaration' && node.declaration) {
-    nodeType = node.declaration.type;
-    nodeKind = node.declaration.kind;
-  }
-  return nodeType === 'VariableDeclaration' && nodeKind === 'type';
-}
-
-function isTSTypeAliasDeclaration(node) {
-  if (!node) return false;
-  let nodeType = node.type;
-  if (node.type === 'ExportNamedDeclaration' && node.declaration) {
-    nodeType = node.declaration.type;
-    return nodeType === 'TSTypeAliasDeclaration' && node.exportKind === 'type';
-  }
-  return nodeType === 'TSTypeAliasDeclaration';
+    return node.declaration.type === 'TSTypeAliasDeclaration' && node.exportKind === 'type';
+  }
+  return node.type === 'TSTypeAliasDeclaration';
 }
 
 function isTSParenthesizedType(node) {
-  if (!node) return false;
-  const nodeType = node.type;
-  return nodeType === 'TSTypeAliasDeclaration';
+  if (!node) { return false; }
+
+  return node.type === 'TSTypeAliasDeclaration';
 }
 
 function isTSFunctionType(node) {
-  if (!node) return false;
-  const nodeType = node.type;
-  return nodeType === 'TSFunctionType';
+  if (!node) { return false; }
+
+  return node.type === 'TSFunctionType';
 }
 
 function isTSTypeQuery(node) {
-  if (!node) return false;
-  const nodeType = node.type;
-  return nodeType === 'TSTypeQuery';
+  if (!node) { return false; }
+
+  return node.type === 'TSTypeQuery';
 }
 
 function isTSTypeParameterInstantiation(node) {
-  if (!node) return false;
-  const nodeType = node.type;
-  return nodeType === 'TSTypeParameterInstantiation';
+  if (!node) { return false; }
+
+  return node.type === 'TSTypeParameterInstantiation';
 }
 
 module.exports = {
-  traverse,
   findReturnStatement,
+  getComponentProperties,
   getFirstNodeInLine,
+  getKeyValue,
   getPropertyName,
   getPropertyNameNode,
-  getComponentProperties,
-  getKeyValue,
-  isParenthesized,
+  inConstructor,
   isAssignmentLHS,
+  isCallExpression,
   isClass,
   isFunction,
+  isFunctionLike,
   isFunctionLikeExpression,
-  isFunctionLike,
-  inConstructor,
   isNodeFirstInLine,
+  isParenthesized,
+  isTSAsExpression,
+  isTSFunctionType,
+  isTSInterfaceDeclaration,
+  isTSInterfaceHeritage,
+  isTSIntersectionType,
+  isTSParenthesizedType,
+  isTSTypeAliasDeclaration,
+  isTSTypeAnnotation,
+  isTSTypeDeclaration,
+  isTSTypeLiteral,
+  isTSTypeParameterInstantiation,
+  isTSTypeQuery,
+  isTSTypeReference,
+  traverse,
+  traverseReturns,
   unwrapTSAsExpression,
-  traverseReturns,
-  isTSTypeReference,
-  isTSTypeAnnotation,
-  isTSTypeLiteral,
-  isTSIntersectionType,
-  isTSInterfaceHeritage,
-  isTSInterfaceDeclaration,
-  isTSTypeAliasDeclaration,
-  isTSParenthesizedType,
-  isTSFunctionType,
-  isTSTypeQuery,
-  isTSTypeParameterInstantiation,
-  isTSTypeDeclaration,
 };
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/componentUtil.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/componentUtil.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/componentUtil.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,46 @@
+/**
+ * @param {ASTNode} node
+ * @param {Context} context
+ * @returns {boolean}
+ */
+export function isES5Component(node: ASTNode, context: Context): boolean;
+/**
+ * @param {ASTNode} node
+ * @param {Context} context
+ * @returns {boolean}
+ */
+export function isES6Component(node: ASTNode, context: Context): boolean;
+/**
+ * Get the parent ES5 component node from the current scope
+ * @param {Context} context
+ * @param {ASTNode} node
+ * @returns {ASTNode|null}
+ */
+export function getParentES5Component(context: Context, node: ASTNode): ASTNode | null;
+/**
+ * Get the parent ES6 component node from the current scope
+ * @param {Context} context
+ * @param {ASTNode} node
+ * @returns {ASTNode | null}
+ */
+export function getParentES6Component(context: Context, node: ASTNode): ASTNode | null;
+/**
+ * Check if the node is explicitly declared as a descendant of a React Component
+ * @param {any} node
+ * @param {Context} context
+ * @returns {boolean}
+ */
+export function isExplicitComponent(node: any, context: Context): boolean;
+/**
+ * Checks if a component extends React.PureComponent
+ * @param {ASTNode} node
+ * @param {Context} context
+ * @returns {boolean}
+ */
+export function isPureComponent(node: ASTNode, context: Context): boolean;
+/**
+ * @param {ASTNode} node
+ * @returns {boolean}
+ */
+export function isStateMemberExpression(node: ASTNode): boolean;
+//# sourceMappingURL=componentUtil.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/componentUtil.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/componentUtil.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/componentUtil.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"componentUtil.d.ts","sourceRoot":"","sources":["componentUtil.js"],"names":[],"mappings":"AAiCA;;;;GAIG;AACH,qCAJW,OAAO,WACP,OAAO,GACL,OAAO,CAmBnB;AAyCD;;;;GAIG;AACH,qCAJW,OAAO,WACP,OAAO,GACL,OAAO,CAmBnB;AAED;;;;;GAKG;AACH,+CAJW,OAAO,QACP,OAAO,GACL,OAAO,GAAC,IAAI,CAaxB;AAED;;;;;GAKG;AACH,+CAJW,OAAO,QACP,OAAO,GACL,OAAO,GAAG,IAAI,CAY1B;AAlGD;;;;;GAKG;AACH,0CAJW,GAAG,WACH,OAAO,GACL,OAAO,CAiCnB;AA+DD;;;;;GAKG;AACH,sCAJW,OAAO,WACP,OAAO,GACL,OAAO,CAQnB;AAED;;;GAGG;AACH,8CAHW,OAAO,GACL,OAAO,CAMnB"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/componentUtil.js
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/componentUtil.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/componentUtil.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -175,5 +175,7 @@
  */
 function isStateMemberExpression(node) {
-  return node.type === 'MemberExpression' && node.object.type === 'ThisExpression' && node.property.name === 'state';
+  return node.type === 'MemberExpression'
+    && node.object.type === 'ThisExpression'
+    && node.property.name === 'state';
 }
 
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/defaultProps.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/defaultProps.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/defaultProps.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,8 @@
+declare function _exports(context: any, components: any, utils: any): {
+    MemberExpression(node: any): void;
+    MethodDefinition(node: any): void;
+    'ClassProperty, PropertyDefinition'(node: any): void;
+    ObjectExpression(node: any): void;
+};
+export = _exports;
+//# sourceMappingURL=defaultProps.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/defaultProps.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/defaultProps.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/defaultProps.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"defaultProps.d.ts","sourceRoot":"","sources":["defaultProps.js"],"names":[],"mappings":"AAgBiB;;;;;EA0PhB"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/defaultProps.js
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/defaultProps.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/defaultProps.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -27,5 +27,5 @@
     }
     if (
-      node.type === 'CallExpression'
+      astUtil.isCallExpression(node)
       && propWrapperUtil.isPropWrapperFunction(context, node.callee.name)
       && node.arguments && node.arguments[0]
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/docsUrl.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/docsUrl.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/docsUrl.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,3 @@
+export = docsUrl;
+declare function docsUrl(ruleName: any): string;
+//# sourceMappingURL=docsUrl.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/docsUrl.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/docsUrl.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/docsUrl.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"docsUrl.d.ts","sourceRoot":"","sources":["docsUrl.js"],"names":[],"mappings":";AAEA,gDAEC"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/error.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/error.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/error.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,7 @@
+export = error;
+/**
+ * Logs out a message if there is no format option set.
+ * @param {string} message - Message to log.
+ */
+declare function error(message: string): void;
+//# sourceMappingURL=error.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/error.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/error.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/error.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["error.js"],"names":[],"mappings":";AAEA;;;GAGG;AACH,gCAFW,MAAM,QAOhB"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/error.js
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/error.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/error.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -3,5 +3,5 @@
 /**
  * Logs out a message if there is no format option set.
- * @param {String} message - Message to log.
+ * @param {string} message - Message to log.
  */
 function error(message) {
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/eslint.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/eslint.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/eslint.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,7 @@
+export function getAncestors(context: any, node: any): any;
+export function getFirstTokens(context: any, node: any, count: any): any;
+export function getScope(context: any, node: any): any;
+export function getSourceCode(context: any): any;
+export function getText(context: any, ...args: any[]): any;
+export function markVariableAsUsed(name: any, node: any, context: any): any;
+//# sourceMappingURL=eslint.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/eslint.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/eslint.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/eslint.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"eslint.d.ts","sourceRoot":"","sources":["eslint.js"],"names":[],"mappings":"AAMA,2DAGC;AAkBD,yEAGC;AAnBD,uDAOC;AAhBD,iDAEC;AA4BD,2DAIC;AAhBD,4EAKC"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/getTokenBeforeClosingBracket.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/getTokenBeforeClosingBracket.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/getTokenBeforeClosingBracket.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,8 @@
+export = getTokenBeforeClosingBracket;
+/**
+ * Find the token before the closing bracket.
+ * @param {ASTNode} node - The JSX element node.
+ * @returns {Token} The token before the closing bracket.
+ */
+declare function getTokenBeforeClosingBracket(node: ASTNode): Token;
+//# sourceMappingURL=getTokenBeforeClosingBracket.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/getTokenBeforeClosingBracket.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/getTokenBeforeClosingBracket.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/getTokenBeforeClosingBracket.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"getTokenBeforeClosingBracket.d.ts","sourceRoot":"","sources":["getTokenBeforeClosingBracket.js"],"names":[],"mappings":";AAEA;;;;GAIG;AACH,oDAHW,OAAO,GACL,KAAK,CAQjB"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/isCreateContext.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/isCreateContext.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/isCreateContext.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,3 @@
+declare function _exports(node: ASTNode): boolean;
+export = _exports;
+//# sourceMappingURL=isCreateContext.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/isCreateContext.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/isCreateContext.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/isCreateContext.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"isCreateContext.d.ts","sourceRoot":"","sources":["isCreateContext.js"],"names":[],"mappings":"AASiB,gCAHN,OAAO,GACL,OAAO,CA8CnB"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/isCreateContext.js
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/isCreateContext.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/isCreateContext.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -1,27 +1,30 @@
 'use strict';
+
+const astUtil = require('./ast');
 
 /**
  * Checks if the node is a React.createContext call
  * @param {ASTNode} node - The AST node being checked.
- * @returns {Boolean} - True if node is a React.createContext call, false if not.
+ * @returns {boolean} - True if node is a React.createContext call, false if not.
  */
 module.exports = function isCreateContext(node) {
   if (
     node.init
-    && node.init.type === 'CallExpression'
     && node.init.callee
-    && node.init.callee.name === 'createContext'
   ) {
-    return true;
-  }
+    if (
+      astUtil.isCallExpression(node.init)
+      && node.init.callee.name === 'createContext'
+    ) {
+      return true;
+    }
 
-  if (
-    node.init
-    && node.init.callee
-    && node.init.callee.type === 'MemberExpression'
-    && node.init.callee.property
-    && node.init.callee.property.name === 'createContext'
-  ) {
-    return true;
+    if (
+      node.init.callee.type === 'MemberExpression'
+      && node.init.callee.property
+      && node.init.callee.property.name === 'createContext'
+    ) {
+      return true;
+    }
   }
 
@@ -30,22 +33,20 @@
     && node.expression.type === 'AssignmentExpression'
     && node.expression.operator === '='
-    && node.expression.right.type === 'CallExpression'
+    && astUtil.isCallExpression(node.expression.right)
     && node.expression.right.callee
-    && node.expression.right.callee.name === 'createContext'
   ) {
-    return true;
-  }
+    const right = node.expression.right;
 
-  if (
-    node.expression
-    && node.expression.type === 'AssignmentExpression'
-    && node.expression.operator === '='
-    && node.expression.right.type === 'CallExpression'
-    && node.expression.right.callee
-    && node.expression.right.callee.type === 'MemberExpression'
-    && node.expression.right.callee.property
-    && node.expression.right.callee.property.name === 'createContext'
-  ) {
-    return true;
+    if (right.callee.name === 'createContext') {
+      return true;
+    }
+
+    if (
+      right.callee.type === 'MemberExpression'
+      && right.callee.property
+      && right.callee.property.name === 'createContext'
+    ) {
+      return true;
+    }
   }
 
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/isCreateElement.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/isCreateElement.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/isCreateElement.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,3 @@
+declare function _exports(context: Context, node: ASTNode): boolean;
+export = _exports;
+//# sourceMappingURL=isCreateElement.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/isCreateElement.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/isCreateElement.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/isCreateElement.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"isCreateElement.d.ts","sourceRoot":"","sources":["isCreateElement.js"],"names":[],"mappings":"AAWiB,mCAJN,OAAO,QACP,OAAO,GACL,OAAO,CAwBnB"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/isCreateElement.js
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/isCreateElement.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/isCreateElement.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -11,7 +11,10 @@
 */
 module.exports = function isCreateElement(context, node) {
+  if (!node.callee) {
+    return false;
+  }
+
   if (
-    node.callee
-    && node.callee.type === 'MemberExpression'
+    node.callee.type === 'MemberExpression'
     && node.callee.property.name === 'createElement'
     && node.callee.object
@@ -22,7 +25,5 @@
 
   if (
-    node
-    && node.callee
-    && node.callee.name === 'createElement'
+    node.callee.name === 'createElement'
     && isDestructuredFromPragmaImport(context, node, 'createElement')
   ) {
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/isDestructuredFromPragmaImport.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/isDestructuredFromPragmaImport.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/isDestructuredFromPragmaImport.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,3 @@
+declare function _exports(context: Context, node: ASTNode, variable: string, ...args: any[]): boolean;
+export = _exports;
+//# sourceMappingURL=isDestructuredFromPragmaImport.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/isDestructuredFromPragmaImport.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/isDestructuredFromPragmaImport.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/isDestructuredFromPragmaImport.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"isDestructuredFromPragmaImport.d.ts","sourceRoot":"","sources":["isDestructuredFromPragmaImport.js"],"names":[],"mappings":"AAciB,mCALN,OAAO,QACP,OAAO,YACP,MAAM,mBACJ,OAAO,CAmEnB"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/isDestructuredFromPragmaImport.js
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/isDestructuredFromPragmaImport.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/isDestructuredFromPragmaImport.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -1,4 +1,5 @@
 'use strict';
 
+const astUtil = require('./ast');
 const pragmaUtil = require('./pragma');
 const variableUtil = require('./variable');
@@ -23,6 +24,6 @@
         if (
           latestDef.node.init.type === 'MemberExpression'
-              && latestDef.node.init.object.type === 'Identifier'
-              && latestDef.node.init.object.name === pragma
+          && latestDef.node.init.object.type === 'Identifier'
+          && latestDef.node.init.object.name === pragma
         ) {
           return true;
@@ -31,5 +32,5 @@
         if (
           latestDef.node.init.type === 'Identifier'
-              && latestDef.node.init.name === pragma
+          && latestDef.node.init.name === pragma
         ) {
           return true;
@@ -40,5 +41,5 @@
 
         // get "require('react')" from: "{variable} = require('react')"
-        if (latestDef.node.init.type === 'CallExpression') {
+        if (astUtil.isCallExpression(latestDef.node.init)) {
           requireExpression = latestDef.node.init;
         }
@@ -46,6 +47,6 @@
         if (
           !requireExpression
-              && latestDef.node.init.type === 'MemberExpression'
-              && latestDef.node.init.object.type === 'CallExpression'
+          && latestDef.node.init.type === 'MemberExpression'
+          && astUtil.isCallExpression(latestDef.node.init.object)
         ) {
           requireExpression = latestDef.node.init.object;
@@ -55,8 +56,8 @@
         if (
           requireExpression
-              && requireExpression.callee
-              && requireExpression.callee.name === 'require'
-              && requireExpression.arguments[0]
-              && requireExpression.arguments[0].value === pragma.toLocaleLowerCase()
+          && requireExpression.callee
+          && requireExpression.callee.name === 'require'
+          && requireExpression.arguments[0]
+          && requireExpression.arguments[0].value === pragma.toLocaleLowerCase()
         ) {
           return true;
@@ -69,6 +70,6 @@
       if (
         latestDef.parent
-            && latestDef.parent.type === 'ImportDeclaration'
-            && latestDef.parent.source.value === pragma.toLocaleLowerCase()
+        && latestDef.parent.type === 'ImportDeclaration'
+        && latestDef.parent.source.value === pragma.toLocaleLowerCase()
       ) {
         return true;
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/isFirstLetterCapitalized.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/isFirstLetterCapitalized.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/isFirstLetterCapitalized.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,3 @@
+declare function _exports(word: string): boolean;
+export = _exports;
+//# sourceMappingURL=isFirstLetterCapitalized.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/isFirstLetterCapitalized.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/isFirstLetterCapitalized.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/isFirstLetterCapitalized.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"isFirstLetterCapitalized.d.ts","sourceRoot":"","sources":["isFirstLetterCapitalized.js"],"names":[],"mappings":"AAOiB,gCAHN,MAAM,GACJ,OAAO,CAQnB"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/isFirstLetterCapitalized.js
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/isFirstLetterCapitalized.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/isFirstLetterCapitalized.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -3,8 +3,8 @@
 /**
  * Check if the first letter of a string is capitalized.
- * @param {String} word String to check
- * @returns {Boolean} True if first letter is capitalized.
+ * @param {string} word String to check
+ * @returns {boolean} True if first letter is capitalized.
  */
-function isFirstLetterCapitalized(word) {
+module.exports = function isFirstLetterCapitalized(word) {
   if (!word) {
     return false;
@@ -12,5 +12,3 @@
   const firstLetter = word.replace(/^_+/, '').charAt(0);
   return firstLetter.toUpperCase() === firstLetter;
-}
-
-module.exports = isFirstLetterCapitalized;
+};
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/jsx.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/jsx.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/jsx.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,51 @@
+/**
+ * Checks if a node represents a DOM element according to React.
+ * @param {object} node - JSXOpeningElement to check.
+ * @returns {boolean} Whether or not the node corresponds to a DOM element.
+ */
+export function isDOMComponent(node: object): boolean;
+/**
+ * Test whether a JSXElement is a fragment
+ * @param {JSXElement} node
+ * @param {string} reactPragma
+ * @param {string} fragmentPragma
+ * @returns {boolean}
+ */
+export function isFragment(node: JSXElement, reactPragma: string, fragmentPragma: string): boolean;
+/**
+ * Checks if a node represents a JSX element or fragment.
+ * @param {object} node - node to check.
+ * @returns {boolean} Whether or not the node if a JSX element or fragment.
+ */
+export function isJSX(node: object): boolean;
+/**
+ * Check if node is like `key={...}` as in `<Foo key={...} />`
+ * @param {ASTNode} node
+ * @returns {boolean}
+ */
+export function isJSXAttributeKey(node: ASTNode): boolean;
+/**
+ * Check if value has only whitespaces
+ * @param {unknown} value
+ * @returns {boolean}
+ */
+export function isWhiteSpaces(value: unknown): boolean;
+/**
+ * Check if the node is returning JSX or null
+ *
+ * @param {Context} context The context of `ASTNode`.
+ * @param {ASTNode} ASTnode The AST node being checked
+ * @param {boolean} [strict] If true, in a ternary condition the node must return JSX in both cases
+ * @param {boolean} [ignoreNull] If true, null return values will be ignored
+ * @returns {boolean} True if the node is returning JSX or null, false if not
+ */
+export function isReturningJSX(context: Context, ASTnode: ASTNode, strict?: boolean, ignoreNull?: boolean): boolean;
+/**
+ * Check if the node is returning only null values
+ *
+ * @param {ASTNode} ASTnode The AST node being checked
+ * @param {Context} context The context of `ASTNode`.
+ * @returns {boolean} True if the node is returning only null values
+ */
+export function isReturningOnlyNull(ASTnode: ASTNode, context: Context): boolean;
+//# sourceMappingURL=jsx.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/jsx.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/jsx.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/jsx.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"jsx.d.ts","sourceRoot":"","sources":["jsx.js"],"names":[],"mappings":"AAgBA;;;;GAIG;AACH,qCAHW,MAAM,GACJ,OAAO,CAKnB;AAED;;;;;;GAMG;AACH,iCALW,UAAU,eACV,MAAM,kBACN,MAAM,GACJ,OAAO,CAsBnB;AAED;;;;GAIG;AACH,4BAHW,MAAM,GACJ,OAAO,CAInB;AAED;;;;GAIG;AACH,wCAHW,OAAO,GACL,OAAO,CAOnB;AAED;;;;GAIG;AACH,qCAHW,OAAO,GACL,OAAO,CAInB;AAED;;;;;;;;GAQG;AACH,wCANW,OAAO,WACP,OAAO,WACP,OAAO,eACP,OAAO,GACL,OAAO,CAgDnB;AAED;;;;;;GAMG;AACH,6CAJW,OAAO,WACP,OAAO,GACL,OAAO,CAsCnB"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/jsx.js
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/jsx.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/jsx.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -77,5 +77,5 @@
 /**
  * Check if value has only whitespaces
- * @param {string} value
+ * @param {unknown} value
  * @returns {boolean}
  */
@@ -89,7 +89,7 @@
  * @param {Context} context The context of `ASTNode`.
  * @param {ASTNode} ASTnode The AST node being checked
- * @param {Boolean} [strict] If true, in a ternary condition the node must return JSX in both cases
- * @param {Boolean} [ignoreNull] If true, null return values will be ignored
- * @returns {Boolean} True if the node is returning JSX or null, false if not
+ * @param {boolean} [strict] If true, in a ternary condition the node must return JSX in both cases
+ * @param {boolean} [ignoreNull] If true, null return values will be ignored
+ * @returns {boolean} True if the node is returning JSX or null, false if not
  */
 function isReturningJSX(context, ASTnode, strict, ignoreNull) {
@@ -146,5 +146,5 @@
  * @param {ASTNode} ASTnode The AST node being checked
  * @param {Context} context The context of `ASTNode`.
- * @returns {Boolean} True if the node is returning only null values
+ * @returns {boolean} True if the node is returning only null values
  */
 function isReturningOnlyNull(ASTnode, context) {
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/lifecycleMethods.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/lifecycleMethods.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/lifecycleMethods.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,6 @@
+declare const _exports: {
+    instance: string[];
+    static: string[];
+};
+export = _exports;
+//# sourceMappingURL=lifecycleMethods.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/lifecycleMethods.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/lifecycleMethods.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/lifecycleMethods.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"lifecycleMethods.d.ts","sourceRoot":"","sources":["lifecycleMethods.js"],"names":[],"mappings":""}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/linkComponents.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/linkComponents.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/linkComponents.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,3 @@
+export function getFormComponents(context: any): Map<any, any>;
+export function getLinkComponents(context: any): Map<any, any>;
+//# sourceMappingURL=linkComponents.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/linkComponents.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/linkComponents.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/linkComponents.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"linkComponents.d.ts","sourceRoot":"","sources":["linkComponents.js"],"names":[],"mappings":"AAmBA,+DAWC;AAED,+DAWC"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/log.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/log.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/log.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,7 @@
+export = log;
+/**
+ * Logs out a message if there is no format option set.
+ * @param {string} message - Message to log.
+ */
+declare function log(message: string): void;
+//# sourceMappingURL=log.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/log.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/log.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/log.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["log.js"],"names":[],"mappings":";AAEA;;;GAGG;AACH,8BAFW,MAAM,QAOhB"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/log.js
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/log.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/log.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -3,5 +3,5 @@
 /**
  * Logs out a message if there is no format option set.
- * @param {String} message - Message to log.
+ * @param {string} message - Message to log.
  */
 function log(message) {
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/makeNoMethodSetStateRule.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/makeNoMethodSetStateRule.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/makeNoMethodSetStateRule.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,3 @@
+declare function _exports(methodName: string, shouldCheckUnsafeCb?: (context: import('eslint').Rule.RuleContext) => boolean): import('eslint').Rule.RuleModule;
+export = _exports;
+//# sourceMappingURL=makeNoMethodSetStateRule.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/makeNoMethodSetStateRule.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/makeNoMethodSetStateRule.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/makeNoMethodSetStateRule.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"makeNoMethodSetStateRule.d.ts","sourceRoot":"","sources":["makeNoMethodSetStateRule.js"],"names":[],"mappings":"AAoDiB,sCAJN,MAAM,kCACI,OAAO,QAAQ,EAAE,IAAI,CAAC,WAAW,KAAK,OAAO,GACrD,OAAO,QAAQ,EAAE,IAAI,CAAC,UAAU,CA+E5C"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/makeNoMethodSetStateRule.js
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/makeNoMethodSetStateRule.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/makeNoMethodSetStateRule.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -45,4 +45,10 @@
 }
 
+// eslint-disable-next-line valid-jsdoc
+/**
+ * @param {string} methodName
+ * @param {(context: import('eslint').Rule.RuleContext) => boolean} [shouldCheckUnsafeCb]
+ * @returns {import('eslint').Rule.RuleModule}
+ */
 module.exports = function makeNoMethodSetStateRule(methodName, shouldCheckUnsafeCb) {
   return {
@@ -91,4 +97,5 @@
             callee.type !== 'MemberExpression'
             || callee.object.type !== 'ThisExpression'
+            || !('name' in callee.property)
             || callee.property.name !== 'setState'
           ) {
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/message.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/message.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/message.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,9 @@
+declare function _exports(messageId: any, message: any): {
+    messageId: any;
+    message?: undefined;
+} | {
+    message: any;
+    messageId?: undefined;
+};
+export = _exports;
+//# sourceMappingURL=message.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/message.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/message.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/message.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["message.js"],"names":[],"mappings":"AAKiB;;;;;;EAEhB"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/pragma.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/pragma.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/pragma.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,16 @@
+/**
+ * @param {Context} context
+ * @returns {string}
+ */
+export function getCreateClassFromContext(context: Context): string;
+/**
+ * @param {Context} context
+ * @returns {string}
+ */
+export function getFragmentFromContext(context: Context): string;
+/**
+ * @param {Context} context
+ * @returns {string}
+ */
+export function getFromContext(context: Context): string;
+//# sourceMappingURL=pragma.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/pragma.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/pragma.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/pragma.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"pragma.d.ts","sourceRoot":"","sources":["pragma.js"],"names":[],"mappings":"AAaA;;;GAGG;AACH,mDAHW,OAAO,GACL,MAAM,CAYlB;AAED;;;GAGG;AACH,gDAHW,OAAO,GACL,MAAM,CAYlB;AAED;;;GAGG;AACH,wCAHW,OAAO,GACL,MAAM,CAqBlB"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/pragma.js
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/pragma.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/pragma.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -63,5 +63,6 @@
 
   if (!JS_IDENTIFIER_REGEX.test(pragma)) {
-    throw new Error(`React pragma ${pragma} is not a valid identifier`);
+    console.warn(`React pragma ${pragma} is not a valid identifier`);
+    return 'React';
   }
   return pragma;
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/propTypes.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/propTypes.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/propTypes.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,20 @@
+declare function _exports(context: any, components: any, utils: any): {
+    ClassExpression(node: any): void;
+    ClassDeclaration(node: any): void;
+    'ClassProperty, PropertyDefinition'(node: any): void;
+    ObjectExpression(node: any): void;
+    FunctionExpression(node: any): void;
+    ImportDeclaration(node: any): void;
+    FunctionDeclaration: (node: ASTNode, rootNode: ASTNode) => void;
+    ArrowFunctionExpression: (node: ASTNode, rootNode: ASTNode) => void;
+    MemberExpression(node: any): void;
+    MethodDefinition(node: any): void;
+    TypeAlias(node: any): void;
+    TypeParameterDeclaration(node: any): void;
+    Program(): void;
+    BlockStatement(): void;
+    'BlockStatement:exit'(): void;
+    'Program:exit'(): void;
+};
+export = _exports;
+//# sourceMappingURL=propTypes.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/propTypes.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/propTypes.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/propTypes.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"propTypes.d.ts","sourceRoot":"","sources":["propTypes.js"],"names":[],"mappings":"AAoGiB;;;;;;;gCAu6BJ,OAAO,YAEP,OAAO;oCAFP,OAAO,YAEP,OAAO;;;;;;;;;EAqQnB"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/propTypes.js
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/propTypes.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/propTypes.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -24,5 +24,5 @@
  * Check if node is function type.
  * @param {ASTNode} node
- * @returns {Boolean}
+ * @returns {boolean}
  */
 function isFunctionType(node) {
@@ -38,9 +38,10 @@
  *
  * @param {ASTNode} node  the AST node being checked.
- * @returns {Boolean} True if the node is a class with generic prop types, false if not.
+ * @returns {boolean} True if the node is a class with generic prop types, false if not.
  */
 function isSuperTypeParameterPropsDeclaration(node) {
   if (node && (node.type === 'ClassDeclaration' || node.type === 'ClassExpression')) {
-    if (node.superTypeParameters && node.superTypeParameters.params.length > 0) {
+    const parameters = propsUtil.getSuperTypeArguments(node);
+    if (parameters && parameters.params.length > 0) {
       return true;
     }
@@ -77,6 +78,6 @@
  * Checks if a node is inside a class body.
  *
- * @param {ASTNode} node  the AST node being checked.
- * @returns {Boolean} True if the node has a ClassBody ancestor, false if not.
+ * @param {ASTNode} node the AST node being checked.
+ * @returns {boolean} True if the node has a ClassBody ancestor, false if not.
  */
 function isInsideClassBody(node) {
@@ -153,6 +154,6 @@
   /**
    * Checks if prop should be validated by plugin-react-proptypes
-   * @param {String} validator Name of validator to check.
-   * @returns {Boolean} True if validator should be checked by custom validator.
+   * @param {string} validator Name of validator to check.
+   * @returns {boolean} True if validator should be checked by custom validator.
    */
   function hasCustomValidator(validator) {
@@ -173,5 +174,5 @@
       let containsUnresolvedObjectTypeSpread = false;
       let containsSpread = false;
-      const containsIndexers = Boolean(annotation.indexers && annotation.indexers.length);
+      const containsIndexers = !!annotation.indexers && annotation.indexers.length > 0;
       const shapeTypeDefinition = {
         type: 'shape',
@@ -268,5 +269,5 @@
    * The representation is used to verify nested used properties.
    * @param {ASTNode} annotation Type annotation for the props class property.
-   * @param {String} parentName
+   * @param {string} parentName
    * @param {Set<ASTNode>} [seen]
    * @return {Object} The representation of the declaration, empty object means
@@ -297,5 +298,5 @@
    * @param {ASTNode} propTypes
    * @param {Object} declaredPropTypes
-   * @returns {Boolean} True if propTypes should be ignored (e.g. when a type can't be resolved, when it is imported)
+   * @returns {boolean} True if propTypes should be ignored (e.g. when a type can't be resolved, when it is imported)
    */
   function declarePropTypesForObjectTypeAnnotation(propTypes, declaredPropTypes) {
@@ -335,5 +336,5 @@
    * @param {ASTNode} propTypes
    * @param {Object} declaredPropTypes
-   * @returns {Boolean} True if propTypes should be ignored (e.g. when a type can't be resolved, when it is imported)
+   * @returns {boolean} True if propTypes should be ignored (e.g. when a type can't be resolved, when it is imported)
    */
   function declarePropTypesForIntersectionTypeAnnotation(propTypes, declaredPropTypes) {
@@ -428,5 +429,4 @@
       && value.type === 'MemberExpression'
       && value.property
-      && value.property.name
       && value.property.name === 'isRequired'
     ) {
@@ -448,6 +448,5 @@
     // Verify PropTypes that are functions
     if (
-      value
-      && value.type === 'CallExpression'
+      astUtil.isCallExpression(value)
       && value.callee
       && value.callee.property
@@ -498,5 +497,5 @@
           if (
             !argument.elements
-            || !argument.elements.length
+            || argument.elements.length === 0
           ) {
             // Invalid proptype or cannot analyse statically
@@ -577,6 +576,10 @@
   function filterInterfaceOrAliasByName(node, typeName) {
     return (
-      (node.id && node.id.name === typeName)
-      || (node.declaration && node.declaration.id && node.declaration.id.name === typeName)
+      node.id
+      && node.id.name === typeName
+    ) || (
+      node.declaration
+      && node.declaration.id
+      && node.declaration.id.name === typeName
     );
   }
@@ -638,6 +641,6 @@
         const leftMostName = getLeftMostTypeName(node.typeName);
         const shouldTraverseTypeParams = genericReactTypesImport.has(leftMostName);
-        const nodeTypeParams = node.typeParameters;
-        if (shouldTraverseTypeParams && nodeTypeParams && nodeTypeParams.length !== 0) {
+        const nodeTypeArguments = propsUtil.getTypeArguments(node);
+        if (shouldTraverseTypeParams && nodeTypeArguments && nodeTypeArguments.length !== 0) {
           // All react Generic types are derived from:
           // type PropsWithChildren<P> = P & { children?: ReactNode | undefined }
@@ -661,5 +664,5 @@
             leftMostName !== rightMostName ? rightMostName : importedName
           ];
-          const nextNode = nodeTypeParams.params[idx];
+          const nextNode = nodeTypeArguments.params[idx];
           this.visitTSNode(nextNode);
           return;
@@ -696,5 +699,13 @@
       const declarations = flatMap(
         candidateTypes,
-        (type) => type.declarations || (type.declaration && type.declaration.declarations) || type.declaration);
+        (type) => (
+          type.declarations
+          || (
+            type.declaration
+            && type.declaration.declarations
+          )
+          || type.declaration
+        )
+      );
 
       // we tried to find either an interface or a type with the TypeReference name
@@ -750,8 +761,8 @@
     convertReturnTypeToPropTypes(node, rootNode) {
       // ReturnType<T> should always have one parameter
-      const nodeTypeParams = node.typeParameters;
-      if (nodeTypeParams) {
-        if (nodeTypeParams.params.length === 1) {
-          let returnType = nodeTypeParams.params[0];
+      const nodeTypeArguments = propsUtil.getTypeArguments(node);
+      if (nodeTypeArguments) {
+        if (nodeTypeArguments.params.length === 1) {
+          let returnType = nodeTypeArguments.params[0];
           // This line is trying to handle typescript-eslint-parser
           // typescript-eslint-parser TSTypeQuery is wrapped by TSTypeReference
@@ -784,8 +795,8 @@
                     case 'ObjectExpression':
                       iterateProperties(context, res.properties, (key, value, propNode) => {
-                        if (propNode && propNode.argument && propNode.argument.type === 'CallExpression') {
-                          const propNodeTypeParams = propNode.argument.typeParameters;
-                          if (propNodeTypeParams) {
-                            this.visitTSNode(propNodeTypeParams);
+                        if (propNode && astUtil.isCallExpression(propNode.argument)) {
+                          const propNodeTypeArguments = propsUtil.getTypeArguments(propNode.argument);
+                          if (propNodeTypeArguments) {
+                            this.visitTSNode(propNodeTypeArguments);
                           } else {
                             // Ignore this CallExpression return value since it doesn't have any typeParameters to let us know it's types.
@@ -807,6 +818,6 @@
                       break;
                     case 'CallExpression':
-                      if (res.typeParameters) {
-                        this.visitTSNode(res.typeParameters);
+                      if (propsUtil.getTypeArguments(res)) {
+                        this.visitTSNode(propsUtil.getTypeArguments(res));
                       } else {
                         // Ignore this CallExpression return value since it doesn't have any typeParameters to let us know it's types.
@@ -993,7 +1004,7 @@
       case 'GenericTypeAnnotation':
         if (propTypes.id.name === '$ReadOnly') {
-          const propTypeParams = propTypes.typeParameters;
+          const propTypeArguments = propsUtil.getTypeArguments(propTypes);
           ignorePropsValidation = declarePropTypesForObjectTypeAnnotation(
-            propTypeParams.params[0],
+            propTypeArguments.params[0],
             declaredPropTypes
           );
@@ -1032,9 +1043,14 @@
     }
 
+    let propTypesArguments = null;
+    if (node.parent) {
+      propTypesArguments = propsUtil.getTypeArguments(node.parent);
+    }
+
     if (
       node.parent
       && node.parent.callee
-      && node.parent.typeParameters
-      && node.parent.typeParameters.params
+      && propTypesArguments
+      && propTypesArguments.params
       && (
         node.parent.callee.name === 'forwardRef' || (
@@ -1046,7 +1062,6 @@
       )
     ) {
-      const propTypesParams = node.parent.typeParameters;
       const declaredPropTypes = {};
-      const obj = new DeclarePropTypesForTSTypeAnnotation(propTypesParams.params[1], declaredPropTypes, rootNode);
+      const obj = new DeclarePropTypesForTSTypeAnnotation(propTypesArguments.params[1], declaredPropTypes, rootNode);
       components.set(node, {
         declaredPropTypes: obj.declaredPropTypes,
@@ -1094,5 +1109,5 @@
         annotation
         && annotation.type !== 'TSTypeReference'
-        && annotation.typeParameters == null
+        && propsUtil.getTypeArguments(annotation) == null
       ) {
         return;
@@ -1106,5 +1121,5 @@
 
   /**
-   * Resolve the type annotation for a given class declaration node with superTypeParameters.
+   * Resolve the type annotation for a given class declaration node.
    *
    * @param {ASTNode} node The annotation or a node containing the type annotation.
@@ -1113,4 +1128,6 @@
   function resolveSuperParameterPropsType(node) {
     let propsParameterPosition;
+    const parameters = propsUtil.getSuperTypeArguments(node);
+
     try {
       // Flow <=0.52 had 3 required TypedParameters of which the second one is the Props.
@@ -1119,8 +1136,8 @@
     } catch (e) {
       // In case there is no flow version defined, we can safely assume that when there are 3 Props we are dealing with version <= 0.52
-      propsParameterPosition = node.superTypeParameters.params.length <= 2 ? 0 : 1;
-    }
-
-    let annotation = node.superTypeParameters.params[propsParameterPosition];
+      propsParameterPosition = parameters.params.length <= 2 ? 0 : 1;
+    }
+
+    let annotation = parameters.params[propsParameterPosition];
     while (annotation && (annotation.type === 'TypeAnnotation' || annotation.type === 'NullableTypeAnnotation')) {
       annotation = annotation.typeAnnotation;
@@ -1136,5 +1153,5 @@
    * Checks if we are declaring a `props` class property with a flow type annotation.
    * @param {ASTNode} node The AST node being checked.
-   * @returns {Boolean} True if the node is a type annotated props declaration, false if not.
+   * @returns {boolean} True if the node is a type annotated props declaration, false if not.
    */
   function isAnnotatedClassPropsDeclaration(node) {
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/propTypesSort.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/propTypesSort.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/propTypesSort.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,40 @@
+/**
+ * Fixes sort order of prop types.
+ *
+ * @param {Context} context the second element to compare.
+ * @param {Fixer} fixer the first element to compare.
+ * @param {Array} declarations The context of the two nodes.
+ * @param {boolean=} ignoreCase whether or not to ignore case when comparing the two elements.
+ * @param {boolean=} requiredFirst whether or not to sort required elements first.
+ * @param {boolean=} callbacksLast whether or not to sort callbacks after everything else.
+ * @param {boolean=} noSortAlphabetically whether or not to disable alphabetical sorting of the elements.
+ * @param {boolean=} sortShapeProp whether or not to sort propTypes defined in PropTypes.shape.
+ * @param {boolean=} checkTypes whether or not sorting of prop type definitions are checked.
+ * @returns {Object|*|{range, text}} the sort order of the two elements.
+ */
+export function fixPropTypesSort(context: Context, fixer: Fixer, declarations: any[], ignoreCase?: boolean | undefined, requiredFirst?: boolean | undefined, callbacksLast?: boolean | undefined, noSortAlphabetically?: boolean | undefined, sortShapeProp?: boolean | undefined, checkTypes?: boolean | undefined): any | any | {
+    range;
+    text;
+};
+/**
+ * Checks if the proptype is a callback by checking if it starts with 'on'.
+ *
+ * @param {string} propName the name of the proptype to check.
+ * @returns {boolean} true if the proptype is a callback.
+ */
+export function isCallbackPropName(propName: string): boolean;
+/**
+ * Checks if the prop is required or not.
+ *
+ * @param {ASTNode} node the prop to check.
+ * @returns {boolean} true if the prop is required.
+ */
+export function isRequiredProp(node: ASTNode): boolean;
+/**
+ * Checks if the prop is PropTypes.shape.
+ *
+ * @param {ASTNode} node the prop to check.
+ * @returns {boolean} true if the prop is PropTypes.shape.
+ */
+export function isShapeProp(node: ASTNode): boolean;
+//# sourceMappingURL=propTypesSort.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/propTypesSort.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/propTypesSort.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/propTypesSort.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"propTypesSort.d.ts","sourceRoot":"","sources":["propTypesSort.js"],"names":[],"mappings":"AA4HA;;;;;;;;;;;;;GAaG;AACH,0CAXW,OAAO,SACP,KAAK,oCAEL,OAAO,8BACP,OAAO,8BACP,OAAO,qCACP,OAAO,8BACP,OAAO,2BACP,OAAO,eACL,YAAS;IAAC,KAAK,CAAC;IAAC,IAAI,CAAA;CAAC,CAyFlC;AA7LD;;;;;GAKG;AACH,6CAHW,MAAM,GACJ,OAAO,CAInB;AAlBD;;;;;GAKG;AACH,qCAHW,OAAO,GACL,OAAO,CAInB;AAYD;;;;;GAKG;AACH,kCAHW,OAAO,GACL,OAAO,CASnB"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/propTypesSort.js
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/propTypesSort.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/propTypesSort.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -17,8 +17,10 @@
  *
  * @param {ASTNode} node the node to check.
- * @returns {String} The name of the node.
+ * @returns {string} The name of the node.
  */
 function getValueName(node) {
-  return node.type === 'Property' && node.value.property && node.value.property.name;
+  return node.type === 'Property'
+    && node.value.property
+    && node.value.property.name;
 }
 
@@ -27,5 +29,5 @@
  *
  * @param {ASTNode} node the prop to check.
- * @returns {Boolean} true if the prop is required.
+ * @returns {boolean} true if the prop is required.
  */
 function isRequiredProp(node) {
@@ -36,6 +38,6 @@
  * Checks if the proptype is a callback by checking if it starts with 'on'.
  *
- * @param {String} propName the name of the proptype to check.
- * @returns {Boolean} true if the proptype is a callback.
+ * @param {string} propName the name of the proptype to check.
+ * @returns {boolean} true if the proptype is a callback.
  */
 function isCallbackPropName(propName) {
@@ -47,9 +49,12 @@
  *
  * @param {ASTNode} node the prop to check.
- * @returns {Boolean} true if the prop is PropTypes.shape.
+ * @returns {boolean} true if the prop is PropTypes.shape.
  */
 function isShapeProp(node) {
-  return Boolean(
-    node && node.callee && node.callee.property && node.callee.property.name === 'shape'
+  return !!(
+    node
+    && node.callee
+    && node.callee.property
+    && node.callee.property.name === 'shape'
   );
 }
@@ -62,5 +67,7 @@
  */
 function getShapeProperties(node) {
-  return node.arguments && node.arguments[0] && node.arguments[0].properties;
+  return node.arguments
+    && node.arguments[0]
+    && node.arguments[0].properties;
 }
 
@@ -71,9 +78,9 @@
  * @param {ASTNode} b the second element to compare.
  * @param {Context} context The context of the two nodes.
- * @param {Boolean=} ignoreCase whether or not to ignore case when comparing the two elements.
- * @param {Boolean=} requiredFirst whether or not to sort required elements first.
- * @param {Boolean=} callbacksLast whether or not to sort callbacks after everything else.
- * @param {Boolean=} noSortAlphabetically whether or not to disable alphabetical sorting of the elements.
- * @returns {Number} the sort order of the two elements.
+ * @param {boolean=} ignoreCase whether or not to ignore case when comparing the two elements.
+ * @param {boolean=} requiredFirst whether or not to sort required elements first.
+ * @param {boolean=} callbacksLast whether or not to sort callbacks after everything else.
+ * @param {boolean=} noSortAlphabetically whether or not to disable alphabetical sorting of the elements.
+ * @returns {number} the sort order of the two elements.
  */
 function sorter(a, b, context, ignoreCase, requiredFirst, callbacksLast, noSortAlphabetically) {
@@ -122,10 +129,10 @@
  * @param {Fixer} fixer the first element to compare.
  * @param {Array} declarations The context of the two nodes.
- * @param {Boolean=} ignoreCase whether or not to ignore case when comparing the two elements.
- * @param {Boolean=} requiredFirst whether or not to sort required elements first.
- * @param {Boolean=} callbacksLast whether or not to sort callbacks after everything else.
- * @param {Boolean=} noSortAlphabetically whether or not to disable alphabetical sorting of the elements.
- * @param {Boolean=} sortShapeProp whether or not to sort propTypes defined in PropTypes.shape.
- * @param {Boolean=} checkTypes whether or not sorting of prop type definitions are checked.
+ * @param {boolean=} ignoreCase whether or not to ignore case when comparing the two elements.
+ * @param {boolean=} requiredFirst whether or not to sort required elements first.
+ * @param {boolean=} callbacksLast whether or not to sort callbacks after everything else.
+ * @param {boolean=} noSortAlphabetically whether or not to disable alphabetical sorting of the elements.
+ * @param {boolean=} sortShapeProp whether or not to sort propTypes defined in PropTypes.shape.
+ * @param {boolean=} checkTypes whether or not sorting of prop type definitions are checked.
  * @returns {Object|*|{range, text}} the sort order of the two elements.
  */
@@ -221,3 +228,6 @@
 module.exports = {
   fixPropTypesSort,
+  isCallbackPropName,
+  isRequiredProp,
+  isShapeProp,
 };
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/propWrapper.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/propWrapper.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/propWrapper.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,6 @@
+export function formatPropWrapperFunctions(propWrapperFunctions: any): string;
+export function getExactPropWrapperFunctions(context: any): Set<any>;
+export function getPropWrapperFunctions(context: any): Set<any>;
+export function isExactPropWrapperFunction(context: any, name: any): any;
+export function isPropWrapperFunction(context: any, name: any): any;
+//# sourceMappingURL=propWrapper.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/propWrapper.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/propWrapper.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/propWrapper.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"propWrapper.d.ts","sourceRoot":"","sources":["propWrapper.js"],"names":[],"mappings":"AA0CA,8EAUC;AArBD,qEAIC;AAhBD,gEAEC;AAgBD,yEAGC;AAjBD,oEAMC"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/props.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/props.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/props.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,55 @@
+/**
+ * Checks if the Identifier node passed in looks like a propTypes declaration.
+ * @param {ASTNode} node The node to check. Must be an Identifier node.
+ * @returns {boolean} `true` if the node is a propTypes declaration, `false` if not
+ */
+export function isPropTypesDeclaration(node: ASTNode): boolean;
+/**
+ * Checks if the node passed in looks like a contextTypes declaration.
+ * @param {ASTNode} node The node to check.
+ * @returns {boolean} `true` if the node is a contextTypes declaration, `false` if not
+ */
+export function isContextTypesDeclaration(node: ASTNode): boolean;
+/**
+ * Checks if the node passed in looks like a contextType declaration.
+ * @param {ASTNode} node The node to check.
+ * @returns {boolean} `true` if the node is a contextType declaration, `false` if not
+ */
+export function isContextTypeDeclaration(node: ASTNode): boolean;
+/**
+ * Checks if the node passed in looks like a childContextTypes declaration.
+ * @param {ASTNode} node The node to check.
+ * @returns {boolean} `true` if the node is a childContextTypes declaration, `false` if not
+ */
+export function isChildContextTypesDeclaration(node: ASTNode): boolean;
+/**
+ * Checks if the Identifier node passed in looks like a defaultProps declaration.
+ * @param {ASTNode} node The node to check. Must be an Identifier node.
+ * @returns {boolean} `true` if the node is a defaultProps declaration, `false` if not
+ */
+export function isDefaultPropsDeclaration(node: ASTNode): boolean;
+/**
+ * Checks if we are declaring a display name
+ * @param {ASTNode} node The AST node being checked.
+ * @returns {boolean} True if we are declaring a display name, false if not.
+ */
+export function isDisplayNameDeclaration(node: ASTNode): boolean;
+/**
+ * Checks if the PropTypes MemberExpression node passed in declares a required propType.
+ * @param {ASTNode} propTypeExpression node to check. Must be a `PropTypes` MemberExpression.
+ * @returns {boolean} `true` if this PropType is required, `false` if not.
+ */
+export function isRequiredPropType(propTypeExpression: ASTNode): boolean;
+/**
+ * Returns the type arguments of a node or type parameters if type arguments are not available.
+ * @param {ASTNode} node The node to get the type arguments from.
+ * @returns {ASTNode} The type arguments or type parameters of the node.
+ */
+export function getTypeArguments(node: ASTNode): ASTNode;
+/**
+ * Returns the super type arguments of a node or super type parameters if type arguments are not available.
+ * @param {ASTNode} node The node to get the super type arguments from.
+ * @returns {ASTNode} The super type arguments or parameters of the node.
+ */
+export function getSuperTypeArguments(node: ASTNode): ASTNode;
+//# sourceMappingURL=props.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/props.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/props.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/props.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["props.js"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,6CAHW,OAAO,GACL,OAAO,CAUnB;AAED;;;;GAIG;AACH,gDAHW,OAAO,GACL,OAAO,CAUnB;AAED;;;;GAIG;AACH,+CAHW,OAAO,GACL,OAAO,CAInB;AAED;;;;GAIG;AACH,qDAHW,OAAO,GACL,OAAO,CAInB;AAED;;;;GAIG;AACH,gDAHW,OAAO,GACL,OAAO,CAKnB;AAED;;;;GAIG;AACH,+CAHW,OAAO,GACL,OAAO,CAcnB;AAED;;;;GAIG;AACH,uDAHW,OAAO,GACL,OAAO,CAKnB;AAED;;;;GAIG;AACH,uCAHW,OAAO,GACL,OAAO,CAOnB;AAED;;;;GAIG;AACH,4CAHW,OAAO,GACL,OAAO,CAOnB"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/props.js
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/props.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/props.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -10,5 +10,5 @@
  * Checks if the Identifier node passed in looks like a propTypes declaration.
  * @param {ASTNode} node The node to check. Must be an Identifier node.
- * @returns {Boolean} `true` if the node is a propTypes declaration, `false` if not
+ * @returns {boolean} `true` if the node is a propTypes declaration, `false` if not
  */
 function isPropTypesDeclaration(node) {
@@ -25,5 +25,5 @@
  * Checks if the node passed in looks like a contextTypes declaration.
  * @param {ASTNode} node The node to check.
- * @returns {Boolean} `true` if the node is a contextTypes declaration, `false` if not
+ * @returns {boolean} `true` if the node is a contextTypes declaration, `false` if not
  */
 function isContextTypesDeclaration(node) {
@@ -40,5 +40,5 @@
  * Checks if the node passed in looks like a contextType declaration.
  * @param {ASTNode} node The node to check.
- * @returns {Boolean} `true` if the node is a contextType declaration, `false` if not
+ * @returns {boolean} `true` if the node is a contextType declaration, `false` if not
  */
 function isContextTypeDeclaration(node) {
@@ -49,5 +49,5 @@
  * Checks if the node passed in looks like a childContextTypes declaration.
  * @param {ASTNode} node The node to check.
- * @returns {Boolean} `true` if the node is a childContextTypes declaration, `false` if not
+ * @returns {boolean} `true` if the node is a childContextTypes declaration, `false` if not
  */
 function isChildContextTypesDeclaration(node) {
@@ -58,5 +58,5 @@
  * Checks if the Identifier node passed in looks like a defaultProps declaration.
  * @param {ASTNode} node The node to check. Must be an Identifier node.
- * @returns {Boolean} `true` if the node is a defaultProps declaration, `false` if not
+ * @returns {boolean} `true` if the node is a defaultProps declaration, `false` if not
  */
 function isDefaultPropsDeclaration(node) {
@@ -68,5 +68,5 @@
  * Checks if we are declaring a display name
  * @param {ASTNode} node The AST node being checked.
- * @returns {Boolean} True if we are declaring a display name, false if not.
+ * @returns {boolean} True if we are declaring a display name, false if not.
  */
 function isDisplayNameDeclaration(node) {
@@ -87,8 +87,33 @@
  * Checks if the PropTypes MemberExpression node passed in declares a required propType.
  * @param {ASTNode} propTypeExpression node to check. Must be a `PropTypes` MemberExpression.
- * @returns {Boolean} `true` if this PropType is required, `false` if not.
+ * @returns {boolean} `true` if this PropType is required, `false` if not.
  */
 function isRequiredPropType(propTypeExpression) {
-  return propTypeExpression.type === 'MemberExpression' && propTypeExpression.property.name === 'isRequired';
+  return propTypeExpression.type === 'MemberExpression'
+    && propTypeExpression.property.name === 'isRequired';
+}
+
+/**
+ * Returns the type arguments of a node or type parameters if type arguments are not available.
+ * @param {ASTNode} node The node to get the type arguments from.
+ * @returns {ASTNode} The type arguments or type parameters of the node.
+ */
+function getTypeArguments(node) {
+  if ('typeArguments' in node) {
+    return node.typeArguments;
+  }
+  return node.typeParameters;
+}
+
+/**
+ * Returns the super type arguments of a node or super type parameters if type arguments are not available.
+ * @param {ASTNode} node The node to get the super type arguments from.
+ * @returns {ASTNode} The super type arguments or parameters of the node.
+ */
+function getSuperTypeArguments(node) {
+  if ('superTypeArguments' in node) {
+    return node.superTypeArguments;
+  }
+  return node.superTypeParameters;
 }
 
@@ -101,3 +126,5 @@
   isDisplayNameDeclaration,
   isRequiredPropType,
+  getTypeArguments,
+  getSuperTypeArguments,
 };
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/report.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/report.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/report.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,3 @@
+declare function _exports(context: any, message: any, messageId: any, data: any): void;
+export = _exports;
+//# sourceMappingURL=report.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/report.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/report.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/report.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["report.js"],"names":[],"mappings":"AAIiB,uFAOhB"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/usedPropTypes.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/usedPropTypes.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/usedPropTypes.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,15 @@
+declare function _exports(context: any, components: any, utils: any): {
+    VariableDeclarator(node: any): void;
+    FunctionDeclaration: (node: ASTNode) => void;
+    ArrowFunctionExpression: (node: ASTNode) => void;
+    FunctionExpression: (node: ASTNode) => void;
+    'FunctionDeclaration:exit': () => void;
+    'ArrowFunctionExpression:exit': () => void;
+    'FunctionExpression:exit': () => void;
+    JSXSpreadAttribute(node: any): void;
+    'MemberExpression, OptionalMemberExpression'(node: any): void;
+    ObjectPattern(node: any): void;
+    'Program:exit'(): void;
+};
+export = _exports;
+//# sourceMappingURL=usedPropTypes.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/usedPropTypes.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/usedPropTypes.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/usedPropTypes.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"usedPropTypes.d.ts","sourceRoot":"","sources":["usedPropTypes.js"],"names":[],"mappings":"AAiTiB;;gCA2JJ,OAAO;oCAAP,OAAO;+BAAP,OAAO;;;;;;;;EA2HnB"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/usedPropTypes.js
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/usedPropTypes.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/usedPropTypes.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -67,5 +67,5 @@
  * Checks if the string is one of `props`, `nextProps`, or `prevProps`
  * @param {string} name The AST node being checked.
- * @returns {Boolean} True if the prop name matches
+ * @returns {boolean} True if the prop name matches
  */
 function isCommonVariableNameForProps(name) {
@@ -76,5 +76,5 @@
  * Checks if the component must be validated
  * @param {Object} component The component to process
- * @returns {Boolean} True if the component must be validated, false if not.
+ * @returns {boolean} True if the component must be validated, false if not.
  */
 function mustBeValidated(component) {
@@ -111,17 +111,24 @@
  * @param {ASTNode} node The AST node being checked.
  * @param {boolean} checkAsyncSafeLifeCycles
- * @return {Boolean} True if the node is a lifecycle method
+ * @return {boolean} True if the node is a lifecycle method
  */
 function isNodeALifeCycleMethod(node, checkAsyncSafeLifeCycles) {
-  const nodeKeyName = (node.key || /** @type {ASTNode} */ ({})).name;
-
-  if (node.kind === 'constructor') {
-    return true;
-  }
-  if (LIFE_CYCLE_METHODS.indexOf(nodeKeyName) >= 0) {
-    return true;
-  }
-  if (checkAsyncSafeLifeCycles && ASYNC_SAFE_LIFE_CYCLE_METHODS.indexOf(nodeKeyName) >= 0) {
-    return true;
+  if (node.key) {
+    if (node.kind === 'constructor') {
+      return true;
+    }
+
+    const nodeKeyName = node.key.name;
+
+    if (typeof nodeKeyName !== 'string') {
+      return false;
+    }
+
+    if (LIFE_CYCLE_METHODS.indexOf(nodeKeyName) >= 0) {
+      return true;
+    }
+    if (checkAsyncSafeLifeCycles && ASYNC_SAFE_LIFE_CYCLE_METHODS.indexOf(nodeKeyName) >= 0) {
+      return true;
+    }
   }
 
@@ -134,8 +141,11 @@
  * @param {ASTNode} node The AST node being checked.
  * @param {boolean} checkAsyncSafeLifeCycles
- * @return {Boolean} True if the node is inside a lifecycle method
+ * @return {boolean} True if the node is inside a lifecycle method
  */
 function isInLifeCycleMethod(node, checkAsyncSafeLifeCycles) {
-  if ((node.type === 'MethodDefinition' || node.type === 'Property') && isNodeALifeCycleMethod(node, checkAsyncSafeLifeCycles)) {
+  if (
+    (node.type === 'MethodDefinition' || node.type === 'Property')
+    && isNodeALifeCycleMethod(node, checkAsyncSafeLifeCycles)
+  ) {
     return true;
   }
@@ -154,5 +164,5 @@
  */
 function isSetStateUpdater(node) {
-  const unwrappedParentCalleeNode = node.parent && node.parent.type === 'CallExpression'
+  const unwrappedParentCalleeNode = astUtil.isCallExpression(node.parent)
     && ast.unwrapTSAsExpression(node.parent.callee);
 
@@ -171,6 +181,5 @@
   while (scope) {
     const unwrappedParentCalleeNode = scope.block
-      && scope.block.parent
-      && scope.block.parent.type === 'CallExpression'
+      && astUtil.isCallExpression(scope.block.parent)
       && ast.unwrapTSAsExpression(scope.block.parent.callee);
     if (
@@ -215,5 +224,5 @@
  * @param {object} context
  * @param {ASTNode} node The AST node being marked.
- * @returns {Boolean} True if the prop has spread operator, false if not.
+ * @returns {boolean} True if the prop has spread operator, false if not.
  */
 function hasSpreadOperator(context, node) {
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/variable.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/variable.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/variable.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,38 @@
+/**
+ * Search a particular variable in a list
+ * @param {Array} variables The variables list.
+ * @param {string} name The name of the variable to search.
+ * @returns {boolean} True if the variable was found, false if not.
+ */
+export function findVariable(variables: any[], name: string): boolean;
+/**
+ * Find a variable by name in the current scope.
+ * @param {Object} context The current rule context.
+ * @param {ASTNode} node The node to check. Must be an Identifier node.
+ * @param  {string} name Name of the variable to look for.
+ * @returns {ASTNode|null} Return null if the variable could not be found, ASTNode otherwise.
+ */
+export function findVariableByName(context: any, node: ASTNode, name: string): ASTNode | null;
+/**
+ * Find and return a particular variable in a list
+ * @param {Array} variables The variables list.
+ * @param {string} name The name of the variable to search.
+ * @returns {Object} Variable if the variable was found, null if not.
+ */
+export function getVariable(variables: any[], name: string): any;
+/**
+ * Searches for a variable in the given scope.
+ *
+ * @param {Object} context The current rule context.
+ * @param {ASTNode} node The node to start looking from.
+ * @param {string} name The name of the variable to search.
+ * @returns {Object | undefined} Variable if the variable was found, undefined if not.
+ */
+export function getVariableFromContext(context: any, node: ASTNode, name: string): any | undefined;
+/**
+ * Returns the latest definition of the variable.
+ * @param {Object} variable
+ * @returns {Object | undefined} The latest variable definition or undefined.
+ */
+export function getLatestVariableDefinition(variable: any): any | undefined;
+//# sourceMappingURL=variable.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/variable.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/variable.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/variable.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"variable.d.ts","sourceRoot":"","sources":["variable.js"],"names":[],"mappings":"AASA;;;;;GAKG;AACH,qDAHW,MAAM,GACJ,OAAO,CAInB;AA0CD;;;;;;GAMG;AACH,uDAJW,OAAO,QACN,MAAM,GACL,OAAO,GAAC,IAAI,CAkBxB;AA/DD;;;;;GAKG;AACH,oDAHW,MAAM,OAKhB;AAED;;;;;;;GAOG;AACH,2DAJW,OAAO,QACP,MAAM,GACJ,MAAS,SAAS,CAsB9B;AA2BD;;;;GAIG;AACH,4DAFa,MAAS,SAAS,CAI9B"}
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/variable.js
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/variable.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/variable.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -12,5 +12,5 @@
  * @param {Array} variables The variables list.
  * @param {string} name The name of the variable to search.
- * @returns {Boolean} True if the variable was found, false if not.
+ * @returns {boolean} True if the variable was found, false if not.
  */
 function findVariable(variables, name) {
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/version.d.ts
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/version.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/version.d.ts	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,6 @@
+export function testReactVersion(context: any, semverRange: any): boolean;
+export function testFlowVersion(context: any, semverRange: any): boolean;
+export function resetWarningFlag(): void;
+export function resetDetectedVersion(): void;
+export function resetDefaultVersion(): void;
+//# sourceMappingURL=version.d.ts.map
Index: imaps-frontend/node_modules/eslint-plugin-react/lib/util/version.d.ts.map
===================================================================
--- imaps-frontend/node_modules/eslint-plugin-react/lib/util/version.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/eslint-plugin-react/lib/util/version.d.ts.map	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,1 @@
+{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["version.js"],"names":[],"mappings":"AAsLA,0EAEC;AAED,yEAEC;AA1KD,yCAEC;AAID,6CAEC;AA6BD,4CAEC"}
