Explorar o código

Ignore object expressions as body of arrow function expression when `transformObjectKeys` option is enabled

sanex %!s(int64=4) %!d(string=hai) anos
pai
achega
b2aee6cb6c

+ 4 - 0
CHANGELOG.md

@@ -1,5 +1,9 @@
 Change Log
 Change Log
 
 
+v2.9.2
+---
+* Ignore object expressions as body of arrow function expression when `transformObjectKeys` option is enabled. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/813
+
 v2.9.1
 v2.9.1
 ---
 ---
 * Fixed wrong `stringArrayWrappersParametersMaxCount` CLI option name
 * Fixed wrong `stringArrayWrappersParametersMaxCount` CLI option name

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
dist/index.browser.js


+ 0 - 15
dist/index.browser.js.LICENSE.txt

@@ -50,18 +50,3 @@ MERCHANTABLITY OR NON-INFRINGEMENT.
 See the Apache Version 2.0 License for specific language governing permissions
 See the Apache Version 2.0 License for specific language governing permissions
 and limitations under the License.
 and limitations under the License.
 ***************************************************************************** */
 ***************************************************************************** */
-
-/*! *****************************************************************************
-Copyright (c) Microsoft Corporation. All rights reserved.
-Licensed under the Apache License, Version 2.0 (the "License"); you may not use
-this file except in compliance with the License. You may obtain a copy of the
-License at http://www.apache.org/licenses/LICENSE-2.0
-
-THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
-WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
-MERCHANTABLITY OR NON-INFRINGEMENT.
-
-See the Apache Version 2.0 License for specific language governing permissions
-and limitations under the License.
-***************************************************************************** */

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
dist/index.cli.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
dist/index.js


+ 6 - 6
package.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "javascript-obfuscator",
   "name": "javascript-obfuscator",
-  "version": "2.9.1",
+  "version": "2.9.2",
   "description": "JavaScript obfuscator",
   "description": "JavaScript obfuscator",
   "keywords": [
   "keywords": [
     "obfuscator",
     "obfuscator",
@@ -58,13 +58,13 @@
     "@types/mkdirp": "1.0.1",
     "@types/mkdirp": "1.0.1",
     "@types/mocha": "8.0.4",
     "@types/mocha": "8.0.4",
     "@types/multimatch": "4.0.0",
     "@types/multimatch": "4.0.0",
-    "@types/node": "14.14.7",
+    "@types/node": "14.14.8",
     "@types/rimraf": "3.0.0",
     "@types/rimraf": "3.0.0",
     "@types/sinon": "9.0.8",
     "@types/sinon": "9.0.8",
     "@types/string-template": "1.0.2",
     "@types/string-template": "1.0.2",
     "@types/webpack-env": "1.15.3",
     "@types/webpack-env": "1.15.3",
-    "@typescript-eslint/eslint-plugin": "4.7.0",
-    "@typescript-eslint/parser": "4.7.0",
+    "@typescript-eslint/eslint-plugin": "4.8.1",
+    "@typescript-eslint/parser": "4.8.1",
     "chai": "4.2.0",
     "chai": "4.2.0",
     "chai-exclude": "2.0.2",
     "chai-exclude": "2.0.2",
     "coveralls": "3.1.0",
     "coveralls": "3.1.0",
@@ -76,7 +76,7 @@
     "eslint-plugin-prefer-arrow": "1.2.2",
     "eslint-plugin-prefer-arrow": "1.2.2",
     "eslint-plugin-unicorn": "23.0.0",
     "eslint-plugin-unicorn": "23.0.0",
     "fork-ts-checker-notifier-webpack-plugin": "3.0.0",
     "fork-ts-checker-notifier-webpack-plugin": "3.0.0",
-    "fork-ts-checker-webpack-plugin": "6.0.1",
+    "fork-ts-checker-webpack-plugin": "6.0.3",
     "mocha": "8.2.1",
     "mocha": "8.2.1",
     "nyc": "15.1.0",
     "nyc": "15.1.0",
     "pjson": "1.0.9",
     "pjson": "1.0.9",
@@ -87,7 +87,7 @@
     "ts-loader": "8.0.11",
     "ts-loader": "8.0.11",
     "ts-node": "9.0.0",
     "ts-node": "9.0.0",
     "typescript": "4.1.0-beta",
     "typescript": "4.1.0-beta",
-    "webpack": "5.4.0",
+    "webpack": "5.5.1",
     "webpack-cli": "4.2.0",
     "webpack-cli": "4.2.0",
     "webpack-node-externals": "2.5.2"
     "webpack-node-externals": "2.5.2"
   },
   },

+ 37 - 14
src/node-transformers/converting-transformers/ObjectExpressionKeysTransformer.ts

@@ -50,31 +50,37 @@ export class ObjectExpressionKeysTransformer extends AbstractNodeTransformer {
 
 
     /**
     /**
      * @param {ObjectExpression} objectExpressionNode
      * @param {ObjectExpression} objectExpressionNode
-     * @param {Statement} hostStatement
+     * @param {Node} objectExpressionParentNode
+     * @param {Statement} objectExpressionHostStatement
      * @returns {boolean}
      * @returns {boolean}
      */
      */
-    private static isProhibitedHostStatement (
+    private static isProhibitedObjectExpressionNode (
         objectExpressionNode: ESTree.ObjectExpression,
         objectExpressionNode: ESTree.ObjectExpression,
-        hostStatement: ESTree.Statement
+        objectExpressionParentNode: ESTree.Node,
+        objectExpressionHostStatement: ESTree.Statement
     ): boolean {
     ): boolean {
         return ObjectExpressionKeysTransformer.isReferencedIdentifierName(
         return ObjectExpressionKeysTransformer.isReferencedIdentifierName(
                 objectExpressionNode,
                 objectExpressionNode,
-                hostStatement
+                objectExpressionHostStatement
+            )
+            || ObjectExpressionKeysTransformer.isProhibitedArrowFunctionExpression(
+                objectExpressionNode,
+                objectExpressionParentNode
             )
             )
             || ObjectExpressionKeysTransformer.isProhibitedSequenceExpression(
             || ObjectExpressionKeysTransformer.isProhibitedSequenceExpression(
                 objectExpressionNode,
                 objectExpressionNode,
-                hostStatement
+                objectExpressionHostStatement
             );
             );
     }
     }
 
 
     /**
     /**
      * @param {ObjectExpression} objectExpressionNode
      * @param {ObjectExpression} objectExpressionNode
-     * @param {Node} hostNode
+     * @param {Node} objectExpressionHostNode
      * @returns {boolean}
      * @returns {boolean}
      */
      */
     private static isReferencedIdentifierName (
     private static isReferencedIdentifierName (
         objectExpressionNode: ESTree.ObjectExpression,
         objectExpressionNode: ESTree.ObjectExpression,
-        hostNode: ESTree.Node,
+        objectExpressionHostNode: ESTree.Node,
     ): boolean {
     ): boolean {
         const identifierNamesSet: string[] = [];
         const identifierNamesSet: string[] = [];
 
 
@@ -82,7 +88,7 @@ export class ObjectExpressionKeysTransformer extends AbstractNodeTransformer {
         let isCurrentNode: boolean = false;
         let isCurrentNode: boolean = false;
 
 
         // should mark node as prohibited if identifier of node is referenced somewhere inside other nodes
         // should mark node as prohibited if identifier of node is referenced somewhere inside other nodes
-        estraverse.traverse(hostNode, {
+        estraverse.traverse(objectExpressionHostNode, {
             enter: (node: ESTree.Node): void | estraverse.VisitorOption => {
             enter: (node: ESTree.Node): void | estraverse.VisitorOption => {
                 if (node === objectExpressionNode) {
                 if (node === objectExpressionNode) {
                     isCurrentNode = true;
                     isCurrentNode = true;
@@ -116,16 +122,29 @@ export class ObjectExpressionKeysTransformer extends AbstractNodeTransformer {
 
 
     /**
     /**
      * @param {ObjectExpression} objectExpressionNode
      * @param {ObjectExpression} objectExpressionNode
-     * @param {Node} hostNode
+     * @param {Node} objectExpressionNodeParentNode
+     * @returns {boolean}
+     */
+    private static isProhibitedArrowFunctionExpression (
+        objectExpressionNode: ESTree.ObjectExpression,
+        objectExpressionNodeParentNode: ESTree.Node
+    ): boolean {
+        return NodeGuards.isArrowFunctionExpressionNode(objectExpressionNodeParentNode)
+            && objectExpressionNodeParentNode.body === objectExpressionNode;
+    }
+
+    /**
+     * @param {ObjectExpression} objectExpressionNode
+     * @param {Node} objectExpressionHostNode
      * @returns {boolean}
      * @returns {boolean}
      */
      */
     private static isProhibitedSequenceExpression (
     private static isProhibitedSequenceExpression (
         objectExpressionNode: ESTree.ObjectExpression,
         objectExpressionNode: ESTree.ObjectExpression,
-        hostNode: ESTree.Node,
+        objectExpressionHostNode: ESTree.Node,
     ): boolean {
     ): boolean {
-        return NodeGuards.isExpressionStatementNode(hostNode)
-            && NodeGuards.isSequenceExpressionNode(hostNode.expression)
-            && hostNode.expression.expressions.some((expressionNode: ESTree.Expression) =>
+        return NodeGuards.isExpressionStatementNode(objectExpressionHostNode)
+            && NodeGuards.isSequenceExpressionNode(objectExpressionHostNode.expression)
+            && objectExpressionHostNode.expression.expressions.some((expressionNode: ESTree.Expression) =>
                 NodeGuards.isCallExpressionNode(expressionNode)
                 NodeGuards.isCallExpressionNode(expressionNode)
                 && NodeGuards.isSuperNode(expressionNode.callee)
                 && NodeGuards.isSuperNode(expressionNode.callee)
             );
             );
@@ -182,7 +201,11 @@ export class ObjectExpressionKeysTransformer extends AbstractNodeTransformer {
 
 
         const hostStatement: ESTree.Statement = NodeStatementUtils.getRootStatementOfNode(objectExpressionNode);
         const hostStatement: ESTree.Statement = NodeStatementUtils.getRootStatementOfNode(objectExpressionNode);
 
 
-        if (ObjectExpressionKeysTransformer.isProhibitedHostStatement(objectExpressionNode, hostStatement)) {
+        if (ObjectExpressionKeysTransformer.isProhibitedObjectExpressionNode(
+            objectExpressionNode,
+            parentNode,
+            hostStatement
+        )) {
             return objectExpressionNode;
             return objectExpressionNode;
         }
         }
 
 

+ 4 - 30
test/dev/dev.ts

@@ -1,46 +1,20 @@
 'use strict';
 'use strict';
 
 
 import { NO_ADDITIONAL_NODES_PRESET } from '../../src/options/presets/NoCustomNodes';
 import { NO_ADDITIONAL_NODES_PRESET } from '../../src/options/presets/NoCustomNodes';
-import { StringArrayIndexesType } from '../../src/enums/node-transformers/string-array-transformers/StringArrayIndexesType';
 
 
 (function () {
 (function () {
     const JavaScriptObfuscator: any = require('../../index');
     const JavaScriptObfuscator: any = require('../../index');
 
 
     let obfuscatedCode: string = JavaScriptObfuscator.obfuscate(
     let obfuscatedCode: string = JavaScriptObfuscator.obfuscate(
         `
         `
-            // Paste your JavaScript code here
-            function hi() {
-              function inner () {
-                  console.log('inner');
-                  console.log('inner1');
-              }
-              
-              console.log("Hello World!");
-              
-              inner();
-            }
-            hi();
+            const test = () => ({
+                foo: 'bar'
+            });
         `,
         `,
         {
         {
             ...NO_ADDITIONAL_NODES_PRESET,
             ...NO_ADDITIONAL_NODES_PRESET,
             compact: false,
             compact: false,
-            rotateStringArray: true,
-            shuffleStringArray: true,
-            stringArray: true,
-            /*stringArrayEncoding: [
-                StringArrayEncoding.None,
-                StringArrayEncoding.Rc4
-            ],*/
-            stringArrayIndexesType: [
-                StringArrayIndexesType.HexadecimalNumericString,
-                StringArrayIndexesType.HexadecimalNumber
-            ],
-            stringArrayIndexShift: true,
-            stringArrayThreshold: 1,
-            stringArrayWrappersCount: 1,
-            stringArrayWrappersChainedCalls: true,
-            stringArrayWrappersParametersMaxCount: 2,
-            stringArrayWrappersType: 'function'
+            transformObjectKeys: true
         }
         }
     ).getObfuscatedCode();
     ).getObfuscatedCode();
 
 

+ 27 - 0
test/functional-tests/node-transformers/converting-transformers/object-expression-keys-transformer/ObjectExpressionKeysTransformer.spec.ts

@@ -1948,5 +1948,32 @@ describe('ObjectExpressionKeysTransformer', () => {
                 assert.match(obfuscatedCode,  regExp);
                 assert.match(obfuscatedCode,  regExp);
             });
             });
         });
         });
+
+        describe('Variant #13: object expression as body of arrow function expression', () => {
+            const match: string = `` +
+                `const test *= *\\(\\) *=> *\\({`+
+                    `'foo' *: *'bar'` +
+                `}\\);` +
+            ``;
+            const regExp: RegExp = new RegExp(match);
+
+            let obfuscatedCode: string;
+
+            before(() => {
+                const code: string = readFileAsString(__dirname + '/fixtures/object-expression-as-body-of-arrow-function-expression.js');
+
+                obfuscatedCode = JavaScriptObfuscator.obfuscate(
+                    code,
+                    {
+                        ...NO_ADDITIONAL_NODES_PRESET,
+                        transformObjectKeys: true
+                    }
+                ).getObfuscatedCode();
+            });
+
+            it('shouldn ignore object expressions keys transformation', () => {
+                assert.match(obfuscatedCode,  regExp);
+            });
+        });
     });
     });
 });
 });

+ 3 - 0
test/functional-tests/node-transformers/converting-transformers/object-expression-keys-transformer/fixtures/object-expression-as-body-of-arrow-function-expression.js

@@ -0,0 +1,3 @@
+const test = () => ({
+    foo: 'bar'
+});

+ 53 - 53
yarn.lock

@@ -530,10 +530,10 @@
   resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.3.tgz#6356df2647de9eac569f9a52eda3480fa9e70b4d"
   resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.3.tgz#6356df2647de9eac569f9a52eda3480fa9e70b4d"
   integrity sha512-01s+ac4qerwd6RHD+mVbOEsraDHSgUaefQlEdBbUolnQFjKwCr7luvAlEwW1RFojh67u0z4OUTjPn9LEl4zIkA==
   integrity sha512-01s+ac4qerwd6RHD+mVbOEsraDHSgUaefQlEdBbUolnQFjKwCr7luvAlEwW1RFojh67u0z4OUTjPn9LEl4zIkA==
 
 
-"@types/[email protected].7":
-  version "14.14.7"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.7.tgz#8ea1e8f8eae2430cf440564b98c6dfce1ec5945d"
-  integrity sha512-Zw1vhUSQZYw+7u5dAwNbIA9TuTotpzY/OF7sJM9FqPOF3SPjKnxrjoTktXDZgUjybf4cWVBP7O8wvKdSaGHweg==
+"@types/[email protected].8":
+  version "14.14.8"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.8.tgz#2127bd81949a95c8b7d3240f3254352d72563aec"
+  integrity sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==
 
 
 "@types/normalize-package-data@^2.4.0":
 "@types/normalize-package-data@^2.4.0":
   version "2.4.0"
   version "2.4.0"
@@ -580,61 +580,61 @@
   resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.15.3.tgz#fb602cd4c2f0b7c0fb857e922075fdf677d25d84"
   resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.15.3.tgz#fb602cd4c2f0b7c0fb857e922075fdf677d25d84"
   integrity sha512-5oiXqR7kwDGZ6+gmzIO2lTC+QsriNuQXZDWNYRV3l2XRN/zmPgnC21DLSx2D05zvD8vnXW6qUg7JnXZ4I6qLVQ==
   integrity sha512-5oiXqR7kwDGZ6+gmzIO2lTC+QsriNuQXZDWNYRV3l2XRN/zmPgnC21DLSx2D05zvD8vnXW6qUg7JnXZ4I6qLVQ==
 
 
-"@typescript-eslint/eslint-plugin@4.7.0":
-  version "4.7.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.7.0.tgz#85c9bbda00c0cb604d3c241f7bc7fb171a2d3479"
-  integrity sha512-li9aiSVBBd7kU5VlQlT1AqP0uWGDK6JYKUQ9cVDnOg34VNnd9t4jr0Yqc/bKxJr/tDCPDaB4KzoSFN9fgVxe/Q==
+"@typescript-eslint/eslint-plugin@4.8.1":
+  version "4.8.1"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.8.1.tgz#b362abe0ee478a6c6d06c14552a6497f0b480769"
+  integrity sha512-d7LeQ7dbUrIv5YVFNzGgaW3IQKMmnmKFneRWagRlGYOSfLJVaRbj/FrBNOBC1a3tVO+TgNq1GbHvRtg1kwL0FQ==
   dependencies:
   dependencies:
-    "@typescript-eslint/experimental-utils" "4.7.0"
-    "@typescript-eslint/scope-manager" "4.7.0"
+    "@typescript-eslint/experimental-utils" "4.8.1"
+    "@typescript-eslint/scope-manager" "4.8.1"
     debug "^4.1.1"
     debug "^4.1.1"
     functional-red-black-tree "^1.0.1"
     functional-red-black-tree "^1.0.1"
     regexpp "^3.0.0"
     regexpp "^3.0.0"
     semver "^7.3.2"
     semver "^7.3.2"
     tsutils "^3.17.1"
     tsutils "^3.17.1"
 
 
-"@typescript-eslint/experimental-utils@4.7.0":
-  version "4.7.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.7.0.tgz#8d1058c38bec3d3bbd9c898a1c32318d80faf3c5"
-  integrity sha512-cymzovXAiD4EF+YoHAB5Oh02MpnXjvyaOb+v+BdpY7lsJXZQN34oIETeUwVT2XfV9rSNpXaIcknDLfupO/tUoA==
+"@typescript-eslint/experimental-utils@4.8.1":
+  version "4.8.1"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.8.1.tgz#27275c20fa4336df99ebcf6195f7d7aa7aa9f22d"
+  integrity sha512-WigyLn144R3+lGATXW4nNcDJ9JlTkG8YdBWHkDlN0lC3gUGtDi7Pe3h5GPvFKMcRz8KbZpm9FJV9NTW8CpRHpg==
   dependencies:
   dependencies:
     "@types/json-schema" "^7.0.3"
     "@types/json-schema" "^7.0.3"
-    "@typescript-eslint/scope-manager" "4.7.0"
-    "@typescript-eslint/types" "4.7.0"
-    "@typescript-eslint/typescript-estree" "4.7.0"
+    "@typescript-eslint/scope-manager" "4.8.1"
+    "@typescript-eslint/types" "4.8.1"
+    "@typescript-eslint/typescript-estree" "4.8.1"
     eslint-scope "^5.0.0"
     eslint-scope "^5.0.0"
     eslint-utils "^2.0.0"
     eslint-utils "^2.0.0"
 
 
-"@typescript-eslint/parser@4.7.0":
-  version "4.7.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.7.0.tgz#44bdab0f788b478178368baa65d3365fdc63da1c"
-  integrity sha512-+meGV8bMP1sJHBI2AFq1GeTwofcGiur8LoIr6v+rEmD9knyCqDlrQcFHR0KDDfldHIFDU/enZ53fla6ReF4wRw==
+"@typescript-eslint/parser@4.8.1":
+  version "4.8.1"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.8.1.tgz#4fe2fbdbb67485bafc4320b3ae91e34efe1219d1"
+  integrity sha512-QND8XSVetATHK9y2Ltc/XBl5Ro7Y62YuZKnPEwnNPB8E379fDsvzJ1dMJ46fg/VOmk0hXhatc+GXs5MaXuL5Uw==
   dependencies:
   dependencies:
-    "@typescript-eslint/scope-manager" "4.7.0"
-    "@typescript-eslint/types" "4.7.0"
-    "@typescript-eslint/typescript-estree" "4.7.0"
+    "@typescript-eslint/scope-manager" "4.8.1"
+    "@typescript-eslint/types" "4.8.1"
+    "@typescript-eslint/typescript-estree" "4.8.1"
     debug "^4.1.1"
     debug "^4.1.1"
 
 
-"@typescript-eslint/scope-manager@4.7.0":
-  version "4.7.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.7.0.tgz#2115526085fb72723ccdc1eeae75dec7126220ed"
-  integrity sha512-ILITvqwDJYbcDCROj6+Ob0oCKNg3SH46iWcNcTIT9B5aiVssoTYkhKjxOMNzR1F7WSJkik4zmuqve5MdnA0DyA==
+"@typescript-eslint/scope-manager@4.8.1":
+  version "4.8.1"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.8.1.tgz#e343c475f8f1d15801b546cb17d7f309b768fdce"
+  integrity sha512-r0iUOc41KFFbZdPAdCS4K1mXivnSZqXS5D9oW+iykQsRlTbQRfuFRSW20xKDdYiaCoH+SkSLeIF484g3kWzwOQ==
   dependencies:
   dependencies:
-    "@typescript-eslint/types" "4.7.0"
-    "@typescript-eslint/visitor-keys" "4.7.0"
+    "@typescript-eslint/types" "4.8.1"
+    "@typescript-eslint/visitor-keys" "4.8.1"
 
 
-"@typescript-eslint/types@4.7.0":
-  version "4.7.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.7.0.tgz#5e95ef5c740f43d942542b35811f87b62fccca69"
-  integrity sha512-uLszFe0wExJc+I7q0Z/+BnP7wao/kzX0hB5vJn4LIgrfrMLgnB2UXoReV19lkJQS1a1mHWGGODSxnBx6JQC3Sg==
+"@typescript-eslint/types@4.8.1":
+  version "4.8.1"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.8.1.tgz#23829c73c5fc6f4fcd5346a7780b274f72fee222"
+  integrity sha512-ave2a18x2Y25q5K05K/U3JQIe2Av4+TNi/2YuzyaXLAsDx6UZkz1boZ7nR/N6Wwae2PpudTZmHFXqu7faXfHmA==
 
 
-"@typescript-eslint/typescript-estree@4.7.0":
-  version "4.7.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.7.0.tgz#539531167f05ba20eb0b6785567076679e29d393"
-  integrity sha512-5XZRQznD1MfUmxu1t8/j2Af4OxbA7EFU2rbo0No7meb46eHgGkSieFdfV6omiC/DGIBhH9H9gXn7okBbVOm8jw==
+"@typescript-eslint/typescript-estree@4.8.1":
+  version "4.8.1"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.8.1.tgz#7307e3f2c9e95df7daa8dc0a34b8c43b7ec0dd32"
+  integrity sha512-bJ6Fn/6tW2g7WIkCWh3QRlaSU7CdUUK52shx36/J7T5oTQzANvi6raoTsbwGM11+7eBbeem8hCCKbyvAc0X3sQ==
   dependencies:
   dependencies:
-    "@typescript-eslint/types" "4.7.0"
-    "@typescript-eslint/visitor-keys" "4.7.0"
+    "@typescript-eslint/types" "4.8.1"
+    "@typescript-eslint/visitor-keys" "4.8.1"
     debug "^4.1.1"
     debug "^4.1.1"
     globby "^11.0.1"
     globby "^11.0.1"
     is-glob "^4.0.1"
     is-glob "^4.0.1"
@@ -642,12 +642,12 @@
     semver "^7.3.2"
     semver "^7.3.2"
     tsutils "^3.17.1"
     tsutils "^3.17.1"
 
 
-"@typescript-eslint/visitor-keys@4.7.0":
-  version "4.7.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.7.0.tgz#6783824f22acfc49e754970ed21b88ac03b80e6f"
-  integrity sha512-aDJDWuCRsf1lXOtignlfiPODkzSxxop7D0rZ91L6ZuMlcMCSh0YyK+gAfo5zN/ih6WxMwhoXgJWC3cWQdaKC+A==
+"@typescript-eslint/visitor-keys@4.8.1":
+  version "4.8.1"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.8.1.tgz#794f68ee292d1b2e3aa9690ebedfcb3a8c90e3c3"
+  integrity sha512-3nrwXFdEYALQh/zW8rFwP4QltqsanCDz4CwWMPiIZmwlk9GlvBeueEIbq05SEq4ganqM0g9nh02xXgv5XI3PeQ==
   dependencies:
   dependencies:
-    "@typescript-eslint/types" "4.7.0"
+    "@typescript-eslint/types" "4.8.1"
     eslint-visitor-keys "^2.0.0"
     eslint-visitor-keys "^2.0.0"
 
 
 "@ungap/[email protected]":
 "@ungap/[email protected]":
@@ -2187,10 +2187,10 @@ [email protected]:
   dependencies:
   dependencies:
     node-notifier "^6.0.0"
     node-notifier "^6.0.0"
 
 
[email protected].1:
-  version "6.0.1"
-  resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.0.1.tgz#77d73640c9275ebfee6b60e6571c6efb7256ee84"
-  integrity sha512-G2uKf40W+a8/TzoCrGK+22ccTIzSBDFz7RquT5WaQ8kKw6TpplY9+THKp71h/3ne6BnXc7CXc2lcwj/nuHd8Vw==
[email protected].3:
+  version "6.0.3"
+  resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.0.3.tgz#8932dbc5094ebb363a9136ba23230a041ed0be14"
+  integrity sha512-0cUpN1Hpx7SXZR97e3W50tG2sVHFIrZxbimkXQGVdjpX0qme9iV2g1sXd3t07/kzvmQ82nHujjQTblR22M/NOg==
   dependencies:
   dependencies:
     "@babel/code-frame" "^7.8.3"
     "@babel/code-frame" "^7.8.3"
     "@types/json-schema" "^7.0.5"
     "@types/json-schema" "^7.0.5"
@@ -4536,10 +4536,10 @@ webpack-sources@^2.1.1:
     source-list-map "^2.0.1"
     source-list-map "^2.0.1"
     source-map "^0.6.1"
     source-map "^0.6.1"
 
 
-webpack@5.4.0:
-  version "5.4.0"
-  resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.4.0.tgz#4fdc6ec8a0ff9160701fb8f2eb8d06b33ecbae0f"
-  integrity sha512-udpYTyqz8toTTdaOsL2QKPLeZLt2IEm9qY7yTXuFEQhKu5bk0yQD9BtAdVQksmz4jFbbWOiWmm3NHarO0zr/ng==
+webpack@5.5.1:
+  version "5.5.1"
+  resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.5.1.tgz#d6537f85554a0e59f15e6e683af11befdd0476aa"
+  integrity sha512-v4RzZP9BG2xxMLhxcFIo89M+nyIqGjh35Bhm5EE+I2N8y3dc9jT5OSb1HewUMkzMPyyDscOkVD6pSn6EMtTwNQ==
   dependencies:
   dependencies:
     "@types/eslint-scope" "^3.7.0"
     "@types/eslint-scope" "^3.7.0"
     "@types/estree" "^0.0.45"
     "@types/estree" "^0.0.45"

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio