Преглед на файлове

Renamed option `mangleProperties` -> `renameProperties`

sanex3339 преди 5 години
родител
ревизия
11cfaf2b51
променени са 28 файла, в които са добавени 111 реда и са изтрити 112 реда
  1. 1 1
      CHANGELOG.md
  2. 11 11
      README.md
  3. 0 0
      dist/index.browser.js
  4. 0 0
      dist/index.cli.js
  5. 0 0
      dist/index.js
  6. 3 3
      src/JavaScriptObfuscator.ts
  7. 6 6
      src/cli/JavaScriptObfuscatorCLI.ts
  8. 2 2
      src/container/InversifyContainerFacade.ts
  9. 1 1
      src/container/ServiceIdentifiers.ts
  10. 0 21
      src/container/modules/node-transformers/ManglePropertiesTransformersModule.ts
  11. 21 0
      src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts
  12. 1 1
      src/enums/node-transformers/NodeTransformationStage.ts
  13. 1 1
      src/enums/node-transformers/NodeTransformer.ts
  14. 1 1
      src/interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer.ts
  15. 1 1
      src/interfaces/options/IOptions.ts
  16. 14 15
      src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts
  17. 9 9
      src/node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer.ts
  18. 2 2
      src/options/Options.ts
  19. 1 1
      src/options/presets/Default.ts
  20. 1 1
      src/options/presets/NoCustomNodes.ts
  21. 30 30
      test/functional-tests/node-transformers/rename-properties-transformers/rename-properties-transformer/RenamePropertiesTransformer.spec.ts
  22. 0 0
      test/functional-tests/node-transformers/rename-properties-transformers/rename-properties-transformer/fixtures/base.js
  23. 0 0
      test/functional-tests/node-transformers/rename-properties-transformers/rename-properties-transformer/fixtures/class-methods.js
  24. 0 0
      test/functional-tests/node-transformers/rename-properties-transformers/rename-properties-transformer/fixtures/nested-objects.js
  25. 0 0
      test/functional-tests/node-transformers/rename-properties-transformers/rename-properties-transformer/fixtures/reserved-properties.js
  26. 0 0
      test/functional-tests/node-transformers/rename-properties-transformers/rename-properties-transformer/fixtures/rest-element.js
  27. 2 2
      test/index.spec.ts
  28. 3 3
      test/runtime-tests/JavaScriptObfuscatorRuntime.spec.ts

+ 1 - 1
CHANGELOG.md

@@ -2,7 +2,7 @@ Change Log
 
 v1.1.0
 ---
-* **New option:** `mangleProperties` enables mangling property names
+* **New option:** `renameProperties` enables mangling property names
 
 
 v1.0.1

+ 11 - 11
README.md

@@ -329,8 +329,8 @@ Following options are available for the JS Obfuscator:
     identifiersPrefix: '',
     inputFileName: '',
     log: false,
-    mangleProperties: false,
     renameGlobals: false,
+    renameProperties: false,
     reservedNames: [],
     reservedStrings: [],
     rotateStringArray: true,
@@ -374,8 +374,8 @@ Following options are available for the JS Obfuscator:
     --identifiers-dictionary '<list>' (comma separated)
     --identifiers-prefix <string>
     --log <boolean>
-    --mangle-properties <boolean>
     --rename-globals <boolean>
+    --rename-properties <boolean>
     --reserved-names '<list>' (comma separated)
     --reserved-strings '<list>' (comma separated)
     --rotate-string-array <boolean>
@@ -664,23 +664,23 @@ Type: `boolean` Default: `false`
 
 Enables logging of the information to the console.
 
-### `mangleProperties`
+### `renameGlobals`
 Type: `boolean` Default: `false`
 
-##### :warning: this option **WILL** break your code in most cases. Enable it only if you know what it does!
+##### :warning: this option can break your code. Enable it only if you know what it does!
 
-Enables mangling property names. 
+Enables obfuscation of global variable and function names **with declaration**.
 
-To set format of renamed property names use [`identifierNamesGenerator`](#identifierNamesGenerator) option.
+### `renameProperties`
+Type: `boolean` Default: `false`
 
-To control which properties will be renamed use [`reservedNames`](#reservedNames) option.
+##### :warning: this option **WILL** break your code in most cases. Enable it only if you know what it does!
 
-### `renameGlobals`
-Type: `boolean` Default: `false`
+Enables rename of property names. 
 
-##### :warning: this option can break your code. Enable it only if you know what it does!
+To set format of renamed property names use [`identifierNamesGenerator`](#identifierNamesGenerator) option.
 
-Enables obfuscation of global variable and function names **with declaration**.
+To control which properties will be renamed use [`reservedNames`](#reservedNames) option.
 
 ### `reservedNames`
 Type: `string[]` Default: `[]`

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/index.browser.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/index.cli.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
dist/index.js


+ 3 - 3
src/JavaScriptObfuscator.ts

@@ -70,7 +70,7 @@ export class JavaScriptObfuscator implements IJavaScriptObfuscator {
         NodeTransformer.FunctionControlFlowTransformer,
         NodeTransformer.LabeledStatementTransformer,
         NodeTransformer.LiteralTransformer,
-        NodeTransformer.ManglePropertiesTransformer,
+        NodeTransformer.RenamePropertiesTransformer,
         NodeTransformer.MemberExpressionTransformer,
         NodeTransformer.MetadataTransformer,
         NodeTransformer.MethodDefinitionTransformer,
@@ -209,8 +209,8 @@ export class JavaScriptObfuscator implements IJavaScriptObfuscator {
             astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage.ControlFlowFlattening);
         }
 
-        if (this.options.mangleProperties) {
-            astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage.MangleProperties);
+        if (this.options.renameProperties) {
+            astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage.RenameProperties);
         }
 
         astTree = this.runNodeTransformationStage(astTree, NodeTransformationStage.Converting);

+ 6 - 6
src/cli/JavaScriptObfuscatorCLI.ts

@@ -238,7 +238,7 @@ export class JavaScriptObfuscatorCLI implements IInitializable {
             )
             .option(
                 '--identifiers-prefix <string>',
-                'Sets prefix for all global identifiers.'
+                'Sets prefix for all global identifiers'
             )
             .option(
                 '--identifiers-dictionary <list> (comma separated, without whitespaces)',
@@ -249,10 +249,6 @@ export class JavaScriptObfuscatorCLI implements IInitializable {
                 '--log <boolean>', 'Enables logging of the information to the console',
                 BooleanSanitizer
             )
-            .option(
-                '--mangle-properties <boolean>', 'UNSAFE: Enables mangling property names',
-                BooleanSanitizer
-            )
             .option(
                 '--reserved-names <list> (comma separated, without whitespaces)',
                 'Disables obfuscation and generation of identifiers, which being matched by passed RegExp patterns (comma separated)',
@@ -264,7 +260,11 @@ export class JavaScriptObfuscatorCLI implements IInitializable {
                 ArraySanitizer
             )
             .option(
-                '--rename-globals <boolean>', 'Allows to enable obfuscation of global variable and function names with declaration.',
+                '--rename-globals <boolean>', 'Allows to enable obfuscation of global variable and function names with declaration',
+                BooleanSanitizer
+            )
+            .option(
+                '--rename-properties <boolean>', 'UNSAFE: Enables rename of property names. This probably WILL break your code',
                 BooleanSanitizer
             )
             .option(

+ 2 - 2
src/container/InversifyContainerFacade.ts

@@ -10,12 +10,12 @@ import { customNodesModule } from './modules/custom-nodes/CustomNodesModule';
 import { finalizingTransformersModule } from './modules/node-transformers/FinalizingTransformersModule';
 import { generatorsModule } from './modules/generators/GeneratorsModule';
 import { initializingTransformersModule } from './modules/node-transformers/InitializingTransformersModule';
-import { manglePropertiesTransformersModule } from './modules/node-transformers/ManglePropertiesTransformersModule';
 import { nodeModule } from './modules/node/NodeModule';
 import { nodeTransformersModule } from './modules/node-transformers/NodeTransformersModule';
 import { obfuscatingTransformersModule } from './modules/node-transformers/ObfuscatingTransformersModule';
 import { optionsModule } from './modules/options/OptionsModule';
 import { preparingTransformersModule } from './modules/node-transformers/PreparingTransformersModule';
+import { renamePropertiesTransformersModule } from './modules/node-transformers/RenamePropertiesTransformersModule';
 import { storagesModule } from './modules/storages/StoragesModule';
 import { utilsModule } from './modules/utils/UtilsModule';
 
@@ -211,12 +211,12 @@ export class InversifyContainerFacade implements IInversifyContainerFacade {
         this.container.load(finalizingTransformersModule);
         this.container.load(generatorsModule);
         this.container.load(initializingTransformersModule);
-        this.container.load(manglePropertiesTransformersModule);
         this.container.load(nodeModule);
         this.container.load(nodeTransformersModule);
         this.container.load(obfuscatingTransformersModule);
         this.container.load(optionsModule);
         this.container.load(preparingTransformersModule);
+        this.container.load(renamePropertiesTransformersModule);
         this.container.load(storagesModule);
         this.container.load(utilsModule);
     }

+ 1 - 1
src/container/ServiceIdentifiers.ts

@@ -33,7 +33,6 @@ export enum ServiceIdentifiers {
     IJavaScriptObfuscator = 'IJavaScriptObfuscator',
     ILevelledTopologicalSorter = 'ILevelledTopologicalSorter',
     ILogger = 'ILogger',
-    IManglePropertiesObfuscatingReplacer = 'IManglePropertiesObfuscatingReplacer',
     INodeGuard = 'INodeGuard',
     INodeTransformer = 'INodeTransformer',
     INodeTransformerNamesGroupsBuilder = 'INodeTransformerNamesGroupsBuilder',
@@ -45,6 +44,7 @@ export enum ServiceIdentifiers {
     IPrevailingKindOfVariablesAnalyzer = 'IPrevailingKindOfVariablesAnalyzer',
     IObjectExpressionExtractor = 'IObjectExpressionExtractor',
     IRandomGenerator = 'IRandomGenerator',
+    IRenamePropertiesReplacer = 'IRenamePropertiesReplacer',
     IScopeIdentifiersTraverser = 'IScopeIdentifiersTraverser',
     ISourceCode = 'ISourceCode',
     IScopeAnalyzer = 'IScopeAnalyzer',

+ 0 - 21
src/container/modules/node-transformers/ManglePropertiesTransformersModule.ts

@@ -1,21 +0,0 @@
-import { ContainerModule, interfaces } from 'inversify';
-import { ServiceIdentifiers } from '../../ServiceIdentifiers';
-
-import { IManglePropertiesReplacer } from '../../../interfaces/node-transformers/mangle-properties-transformers/replacer/IManglePropertiesReplacer';
-import { INodeTransformer } from '../../../interfaces/node-transformers/INodeTransformer';
-
-import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer';
-
-import { ManglePropertiesReplacer } from '../../../node-transformers/mangle-properties-transformers/replacer/ManglePropertiesReplacer';
-import { ManglePropertiesTransformer } from '../../../node-transformers/mangle-properties-transformers/ManglePropertiesTransformer';
-
-export const manglePropertiesTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
-    // mangle properties transformers
-    bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
-        .to(ManglePropertiesTransformer)
-        .whenTargetNamed(NodeTransformer.ManglePropertiesTransformer);
-
-    // mangle properties obfuscating replacer
-    bind<IManglePropertiesReplacer>(ServiceIdentifiers.IManglePropertiesObfuscatingReplacer)
-        .to(ManglePropertiesReplacer);
-});

+ 21 - 0
src/container/modules/node-transformers/RenamePropertiesTransformersModule.ts

@@ -0,0 +1,21 @@
+import { ContainerModule, interfaces } from 'inversify';
+import { ServiceIdentifiers } from '../../ServiceIdentifiers';
+
+import { IRenamePropertiesReplacer } from '../../../interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer';
+import { INodeTransformer } from '../../../interfaces/node-transformers/INodeTransformer';
+
+import { NodeTransformer } from '../../../enums/node-transformers/NodeTransformer';
+
+import { RenamePropertiesReplacer } from '../../../node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer';
+import { RenamePropertiesTransformer } from '../../../node-transformers/rename-properties-transformers/RenamePropertiesTransformer';
+
+export const renamePropertiesTransformersModule: interfaces.ContainerModule = new ContainerModule((bind: interfaces.Bind) => {
+    // rename properties transformers
+    bind<INodeTransformer>(ServiceIdentifiers.INodeTransformer)
+        .to(RenamePropertiesTransformer)
+        .whenTargetNamed(NodeTransformer.RenamePropertiesTransformer);
+
+    // rename properties obfuscating replacer
+    bind<IRenamePropertiesReplacer>(ServiceIdentifiers.IRenamePropertiesReplacer)
+        .to(RenamePropertiesReplacer);
+});

+ 1 - 1
src/enums/node-transformers/NodeTransformationStage.ts

@@ -1,9 +1,9 @@
 export enum NodeTransformationStage {
     Initializing = 'Initializing',
     Preparing = 'Preparing',
-    MangleProperties = 'MangleProperties',
     DeadCodeInjection = 'DeadCodeInjection',
     ControlFlowFlattening = 'ControlFlowFlattening',
+    RenameProperties = 'RenameProperties',
     Converting = 'Converting',
     Obfuscating = 'Obfuscating',
     Finalizing = 'Finalizing'

+ 1 - 1
src/enums/node-transformers/NodeTransformer.ts

@@ -7,7 +7,6 @@ export enum NodeTransformer {
     FunctionControlFlowTransformer = 'FunctionControlFlowTransformer',
     LabeledStatementTransformer = 'LabeledStatementTransformer',
     LiteralTransformer = 'LiteralTransformer',
-    ManglePropertiesTransformer = 'ManglePropertiesTransformer',
     MemberExpressionTransformer = 'MemberExpressionTransformer',
     MetadataTransformer = 'MetadataTransformer',
     MethodDefinitionTransformer = 'MethodDefinitionTransformer',
@@ -15,6 +14,7 @@ export enum NodeTransformer {
     ObjectExpressionKeysTransformer = 'ObjectExpressionKeysTransformer',
     ObjectExpressionTransformer = 'ObjectExpressionTransformer',
     ParentificationTransformer = 'ParentificationTransformer',
+    RenamePropertiesTransformer = 'RenamePropertiesTransformer',
     ScopeIdentifiersTransformer = 'ScopeIdentifiersTransformer',
     SplitStringTransformer = 'SplitStringTransformer',
     TemplateLiteralTransformer = 'TemplateLiteralTransformer',

+ 1 - 1
src/interfaces/node-transformers/mangle-properties-transformers/replacer/IManglePropertiesReplacer.ts → src/interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer.ts

@@ -1,6 +1,6 @@
 import * as ESTree from 'estree';
 
-export interface IManglePropertiesReplacer {
+export interface IRenamePropertiesReplacer {
     /**
      * @param {ESTree.Identifier | ESTree.Literal} node
      * @returns {ESTree.Identifier | ESTree.Literal}

+ 1 - 1
src/interfaces/options/IOptions.ts

@@ -21,8 +21,8 @@ export interface IOptions {
     readonly identifiersPrefix: string;
     readonly inputFileName: string;
     readonly log: boolean;
-    readonly mangleProperties: boolean;
     readonly renameGlobals: boolean;
+    readonly renameProperties: boolean;
     readonly reservedNames: string[];
     readonly reservedStrings: string[];
     readonly rotateStringArray: boolean;

+ 14 - 15
src/node-transformers/mangle-properties-transformers/ManglePropertiesTransformer.ts → src/node-transformers/rename-properties-transformers/RenamePropertiesTransformer.ts

@@ -3,7 +3,7 @@ import { ServiceIdentifiers } from '../../container/ServiceIdentifiers';
 
 import * as ESTree from 'estree';
 
-import { IManglePropertiesReplacer } from '../../interfaces/node-transformers/mangle-properties-transformers/replacer/IManglePropertiesReplacer';
+import { IRenamePropertiesReplacer } from '../../interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer';
 import { IOptions } from '../../interfaces/options/IOptions';
 import { IRandomGenerator } from '../../interfaces/utils/IRandomGenerator';
 import { IVisitor } from '../../interfaces/node-transformers/IVisitor';
@@ -14,26 +14,25 @@ import { AbstractNodeTransformer } from '../AbstractNodeTransformer';
 import { NodeGuards } from '../../node/NodeGuards';
 
 @injectable()
-export class ManglePropertiesTransformer extends AbstractNodeTransformer {
+export class RenamePropertiesTransformer extends AbstractNodeTransformer {
     /**
-     * @type {IManglePropertiesReplacer}
+     * @type {IRenamePropertiesReplacer}
      */
-    private readonly manglePropertiesObfuscatingReplacer: IManglePropertiesReplacer;
+    private readonly renamePropertiesReplacer: IRenamePropertiesReplacer;
 
     /**
-     * @param {IManglePropertiesReplacer} manglePropertiesObfuscatingReplacer
+     * @param {IRenamePropertiesReplacer} renamePropertiesReplacer
      * @param {IRandomGenerator} randomGenerator
      * @param {IOptions} options
      */
     public constructor (
-        @inject(ServiceIdentifiers.IManglePropertiesObfuscatingReplacer)
-            manglePropertiesObfuscatingReplacer: IManglePropertiesReplacer,
+        @inject(ServiceIdentifiers.IRenamePropertiesReplacer) renamePropertiesReplacer: IRenamePropertiesReplacer,
         @inject(ServiceIdentifiers.IRandomGenerator) randomGenerator: IRandomGenerator,
         @inject(ServiceIdentifiers.IOptions) options: IOptions
     ) {
         super(randomGenerator, options);
 
-        this.manglePropertiesObfuscatingReplacer = manglePropertiesObfuscatingReplacer;
+        this.renamePropertiesReplacer = renamePropertiesReplacer;
     }
 
     /**
@@ -60,7 +59,7 @@ export class ManglePropertiesTransformer extends AbstractNodeTransformer {
      */
     public getVisitor (nodeTransformationStage: NodeTransformationStage): IVisitor | null {
         switch (nodeTransformationStage) {
-            case NodeTransformationStage.MangleProperties:
+            case NodeTransformationStage.RenameProperties:
                 return {
                     enter: (node: ESTree.Node, parentNode: ESTree.Node | null): ESTree.Node | undefined => {
                         if (parentNode) {
@@ -104,8 +103,8 @@ export class ManglePropertiesTransformer extends AbstractNodeTransformer {
     private transformPropertyNode (propertyNode: ESTree.Property): ESTree.Property {
         const propertyKeyNode: ESTree.Expression = propertyNode.key;
 
-        if (ManglePropertiesTransformer.isValidPropertyNode(propertyNode, propertyKeyNode)) {
-            propertyNode.key = this.manglePropertiesObfuscatingReplacer.replace(propertyKeyNode);
+        if (RenamePropertiesTransformer.isValidPropertyNode(propertyNode, propertyKeyNode)) {
+            propertyNode.key = this.renamePropertiesReplacer.replace(propertyKeyNode);
             propertyNode.shorthand = false;
         }
 
@@ -119,8 +118,8 @@ export class ManglePropertiesTransformer extends AbstractNodeTransformer {
     private transformMemberExpressionNode (memberExpressionNode: ESTree.MemberExpression): ESTree.MemberExpression {
         const propertyKeyNode: ESTree.Expression = memberExpressionNode.property;
 
-        if (ManglePropertiesTransformer.isValidPropertyNode(memberExpressionNode, propertyKeyNode)) {
-            memberExpressionNode.property = this.manglePropertiesObfuscatingReplacer.replace(propertyKeyNode);
+        if (RenamePropertiesTransformer.isValidPropertyNode(memberExpressionNode, propertyKeyNode)) {
+            memberExpressionNode.property = this.renamePropertiesReplacer.replace(propertyKeyNode);
         }
 
         return memberExpressionNode;
@@ -133,8 +132,8 @@ export class ManglePropertiesTransformer extends AbstractNodeTransformer {
     private transformMethodDefinitionNode (methodDefinitionNode: ESTree.MethodDefinition): ESTree.MethodDefinition {
         const propertyKeyNode: ESTree.Expression = methodDefinitionNode.key;
 
-        if (ManglePropertiesTransformer.isValidPropertyNode(methodDefinitionNode, propertyKeyNode)) {
-            methodDefinitionNode.key = this.manglePropertiesObfuscatingReplacer.replace(propertyKeyNode);
+        if (RenamePropertiesTransformer.isValidPropertyNode(methodDefinitionNode, propertyKeyNode)) {
+            methodDefinitionNode.key = this.renamePropertiesReplacer.replace(propertyKeyNode);
         }
 
         return methodDefinitionNode;

+ 9 - 9
src/node-transformers/mangle-properties-transformers/replacer/ManglePropertiesReplacer.ts → src/node-transformers/rename-properties-transformers/replacer/RenamePropertiesReplacer.ts

@@ -6,7 +6,7 @@ import * as ESTree from 'estree';
 import { TIdentifierNamesGeneratorFactory } from '../../../types/container/generators/TIdentifierNamesGeneratorFactory';
 
 import { IIdentifierNamesGenerator } from '../../../interfaces/generators/identifier-names-generators/IIdentifierNamesGenerator';
-import { IManglePropertiesReplacer } from '../../../interfaces/node-transformers/mangle-properties-transformers/replacer/IManglePropertiesReplacer';
+import { IRenamePropertiesReplacer } from '../../../interfaces/node-transformers/rename-properties-transformers/replacer/IRenamePropertiesReplacer';
 import { IOptions } from '../../../interfaces/options/IOptions';
 
 import { ReservedDomProperties } from '../../../constants/ReservedDomProperties';
@@ -15,7 +15,7 @@ import { NodeGuards } from '../../../node/NodeGuards';
 import { NodeFactory } from '../../../node/NodeFactory';
 
 @injectable()
-export class ManglePropertiesReplacer implements IManglePropertiesReplacer {
+export class RenamePropertiesReplacer implements IRenamePropertiesReplacer {
     /**
      * @type {IIdentifierNamesGenerator}
      */
@@ -25,7 +25,7 @@ export class ManglePropertiesReplacer implements IManglePropertiesReplacer {
      * @type {Map<string, string>}
      * @private
      */
-    private readonly mangledPropertyNamesMap: Map<string, string> = new Map();
+    private readonly propertyNamesMap: Map<string, string> = new Map();
 
     /**
      * @type {IOptions}
@@ -81,16 +81,16 @@ export class ManglePropertiesReplacer implements IManglePropertiesReplacer {
             return propertyName;
         }
 
-        let mangledPropertyName: string | null = this.mangledPropertyNamesMap.get(propertyName) ?? null;
+        let renamedPropertyName: string | null = this.propertyNamesMap.get(propertyName) ?? null;
 
-        if (mangledPropertyName !== null) {
-            return mangledPropertyName;
+        if (renamedPropertyName !== null) {
+            return renamedPropertyName;
         }
 
-        mangledPropertyName = this.identifierNamesGenerator.generateNext();
-        this.mangledPropertyNamesMap.set(propertyName, mangledPropertyName);
+        renamedPropertyName = this.identifierNamesGenerator.generateNext();
+        this.propertyNamesMap.set(propertyName, renamedPropertyName);
 
-        return mangledPropertyName;
+        return renamedPropertyName;
     }
 
     /**

+ 2 - 2
src/options/Options.ts

@@ -154,13 +154,13 @@ export class Options implements IOptions {
      * @type {boolean}
      */
     @IsBoolean()
-    public readonly mangleProperties!: boolean;
+    public readonly renameGlobals!: boolean;
 
     /**
      * @type {boolean}
      */
     @IsBoolean()
-    public readonly renameGlobals!: boolean;
+    public readonly renameProperties!: boolean;
 
     /**
      * @type {string[]}

+ 1 - 1
src/options/presets/Default.ts

@@ -21,8 +21,8 @@ export const DEFAULT_PRESET: TInputOptions = Object.freeze({
     identifiersDictionary: [],
     inputFileName: '',
     log: false,
-    mangleProperties: false,
     renameGlobals: false,
+    renameProperties: false,
     reservedNames: [],
     reservedStrings: [],
     rotateStringArray: true,

+ 1 - 1
src/options/presets/NoCustomNodes.ts

@@ -20,8 +20,8 @@ export const NO_ADDITIONAL_NODES_PRESET: TInputOptions = Object.freeze({
     identifiersDictionary: [],
     inputFileName: '',
     log: false,
-    mangleProperties: false,
     renameGlobals: false,
+    renameProperties: false,
     reservedNames: [],
     reservedStrings: [],
     rotateStringArray: false,

+ 30 - 30
test/functional-tests/node-transformers/mangle-properties-transformers/mangle-properties-transformer/ManglePropertiesTransformer.spec.ts → test/functional-tests/node-transformers/rename-properties-transformers/rename-properties-transformer/RenamePropertiesTransformer.spec.ts

@@ -8,10 +8,10 @@ import { readFileAsString } from '../../../../helpers/readFileAsString';
 
 import { JavaScriptObfuscator } from '../../../../../src/JavaScriptObfuscatorFacade';
 
-describe('ManglePropertiesTransformer', () => {
+describe('RenamePropertiesTransformer', () => {
     describe('transformNode', () => {
         describe('Hexadecimal identifier names generator', () => {
-            describe('Variant #1: base properties mangle', () => {
+            describe('Variant #1: base properties rename', () => {
                 const property1RegExp: RegExp = /'(_0x[a-f0-9]{4,6})': *0x1/;
                 const property2RegExp: RegExp = /'(_0x[a-f0-9]{4,6})': *0x2/;
                 const property3RegExp: RegExp = /\['(_0x[a-f0-9]{4,6})']: *0x3/;
@@ -27,25 +27,25 @@ describe('ManglePropertiesTransformer', () => {
                         code,
                         {
                             ...NO_ADDITIONAL_NODES_PRESET,
-                            mangleProperties: true,
+                            renameProperties: true,
                             identifierNamesGenerator: IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator
                         }
                     ).getObfuscatedCode();
                 });
 
-                it('Match #1: should mangle property', () => {
+                it('Match #1: should rename property', () => {
                     assert.match(obfuscatedCode, property1RegExp);
                 });
 
-                it('Match #2: should mangle property', () => {
+                it('Match #2: should rename property', () => {
                     assert.match(obfuscatedCode, property2RegExp);
                 });
 
-                it('Match #3: should mangle property', () => {
+                it('Match #3: should rename property', () => {
                     assert.match(obfuscatedCode, property3RegExp);
                 });
 
-                it('Match #4: should mangle property', () => {
+                it('Match #4: should rename property', () => {
                     assert.match(obfuscatedCode, property4RegExp);
                 });
             });
@@ -68,30 +68,30 @@ describe('ManglePropertiesTransformer', () => {
                         code,
                         {
                             ...NO_ADDITIONAL_NODES_PRESET,
-                            mangleProperties: true,
+                            renameProperties: true,
                             identifierNamesGenerator: IdentifierNamesGenerator.MangledIdentifierNamesGenerator
                         }
                     ).getObfuscatedCode();
                 });
 
-                it('Match #1: should mangle property', () => {
+                it('Match #1: should rename property', () => {
                     assert.match(obfuscatedCode, property1RegExp);
                 });
 
-                it('Match #2: should mangle property', () => {
+                it('Match #2: should rename property', () => {
                     assert.match(obfuscatedCode, property2RegExp);
                 });
 
-                it('Match #3: should mangle property', () => {
+                it('Match #3: should rename property', () => {
                     assert.match(obfuscatedCode, property3RegExp);
                 });
 
-                it('Match #4: should mangle property', () => {
+                it('Match #4: should rename property', () => {
                     assert.match(obfuscatedCode, property4RegExp);
                 });
             });
 
-            describe('Variant #2: base properties mangle with rename globals', () => {
+            describe('Variant #2: base properties rename with rename globals', () => {
                 const variable1RegExp: RegExp = /const d *= *'hawk'/;
                 const variable2RegExp: RegExp = /const e *= *{/;
                 const property1RegExp: RegExp = /'a': *0x1/;
@@ -109,7 +109,7 @@ describe('ManglePropertiesTransformer', () => {
                         code,
                         {
                             ...NO_ADDITIONAL_NODES_PRESET,
-                            mangleProperties: true,
+                            renameProperties: true,
                             identifierNamesGenerator: IdentifierNamesGenerator.MangledIdentifierNamesGenerator,
                             renameGlobals: true
                         }
@@ -124,24 +124,24 @@ describe('ManglePropertiesTransformer', () => {
                     assert.match(obfuscatedCode, variable2RegExp);
                 });
 
-                it('Match #3: should mangle property', () => {
+                it('Match #3: should rename property', () => {
                     assert.match(obfuscatedCode, property1RegExp);
                 });
 
-                it('Match #4: should mangle property', () => {
+                it('Match #4: should rename property', () => {
                     assert.match(obfuscatedCode, property2RegExp);
                 });
 
-                it('Match #5: should mangle property', () => {
+                it('Match #5: should rename property', () => {
                     assert.match(obfuscatedCode, property3RegExp);
                 });
 
-                it('Match #6: should mangle property', () => {
+                it('Match #6: should rename property', () => {
                     assert.match(obfuscatedCode, property4RegExp);
                 });
             });
 
-            describe('Variant #3: properties mangle of nested objects', () => {
+            describe('Variant #3: properties rename of nested objects', () => {
                 const regExp: RegExp = new RegExp('' +
                     'const foo *= *{' +
                         '\'a\': *{' +
@@ -160,18 +160,18 @@ describe('ManglePropertiesTransformer', () => {
                         code,
                         {
                             ...NO_ADDITIONAL_NODES_PRESET,
-                            mangleProperties: true,
+                            renameProperties: true,
                             identifierNamesGenerator: IdentifierNamesGenerator.MangledIdentifierNamesGenerator
                         }
                     ).getObfuscatedCode();
                 });
 
-                it('Should mangle property', () => {
+                it('Should rename property', () => {
                     assert.match(obfuscatedCode, regExp);
                 });
             });
 
-            describe('Variant #4: properties mangle of rest element', () => {
+            describe('Variant #4: properties rename of rest element', () => {
                 const regExp: RegExp = new RegExp('' +
                     'const foo *= *{' +
                         '\'a\': *0x1' +
@@ -189,13 +189,13 @@ describe('ManglePropertiesTransformer', () => {
                         code,
                         {
                             ...NO_ADDITIONAL_NODES_PRESET,
-                            mangleProperties: true,
+                            renameProperties: true,
                             identifierNamesGenerator: IdentifierNamesGenerator.MangledIdentifierNamesGenerator
                         }
                     ).getObfuscatedCode();
                 });
 
-                it('Should mangle property', () => {
+                it('Should rename property', () => {
                     assert.match(obfuscatedCode, regExp);
                 });
             });
@@ -220,13 +220,13 @@ describe('ManglePropertiesTransformer', () => {
                         code,
                         {
                             ...NO_ADDITIONAL_NODES_PRESET,
-                            mangleProperties: true,
+                            renameProperties: true,
                             identifierNamesGenerator: IdentifierNamesGenerator.MangledIdentifierNamesGenerator
                         }
                     ).getObfuscatedCode();
                 });
 
-                it('Should mangle non-reserved properties', () => {
+                it('Should rename non-reserved properties', () => {
                     assert.match(obfuscatedCode, regExp);
                 });
             });
@@ -251,14 +251,14 @@ describe('ManglePropertiesTransformer', () => {
                         code,
                         {
                             ...NO_ADDITIONAL_NODES_PRESET,
-                            mangleProperties: true,
+                            renameProperties: true,
                             identifierNamesGenerator: IdentifierNamesGenerator.MangledIdentifierNamesGenerator,
                             reservedNames: ['^reserved$', '_$']
                         }
                     ).getObfuscatedCode();
                 });
 
-                it('Should mangle non-reserved properties', () => {
+                it('Should rename non-reserved properties', () => {
                     assert.match(obfuscatedCode, regExp);
                 });
             });
@@ -281,14 +281,14 @@ describe('ManglePropertiesTransformer', () => {
                         code,
                         {
                             ...NO_ADDITIONAL_NODES_PRESET,
-                            mangleProperties: true,
+                            renameProperties: true,
                             identifierNamesGenerator: IdentifierNamesGenerator.MangledIdentifierNamesGenerator,
                             reservedNames: ['^reserved$', '_$']
                         }
                     ).getObfuscatedCode();
                 });
 
-                it('Should mangle class method name', () => {
+                it('Should rename class method name', () => {
                     assert.match(obfuscatedCode, regExp);
                 });
             });

+ 0 - 0
test/functional-tests/node-transformers/mangle-properties-transformers/mangle-properties-transformer/fixtures/base.js → test/functional-tests/node-transformers/rename-properties-transformers/rename-properties-transformer/fixtures/base.js


+ 0 - 0
test/functional-tests/node-transformers/mangle-properties-transformers/mangle-properties-transformer/fixtures/class-methods.js → test/functional-tests/node-transformers/rename-properties-transformers/rename-properties-transformer/fixtures/class-methods.js


+ 0 - 0
test/functional-tests/node-transformers/mangle-properties-transformers/mangle-properties-transformer/fixtures/nested-objects.js → test/functional-tests/node-transformers/rename-properties-transformers/rename-properties-transformer/fixtures/nested-objects.js


+ 0 - 0
test/functional-tests/node-transformers/mangle-properties-transformers/mangle-properties-transformer/fixtures/reserved-properties.js → test/functional-tests/node-transformers/rename-properties-transformers/rename-properties-transformer/fixtures/reserved-properties.js


+ 0 - 0
test/functional-tests/node-transformers/mangle-properties-transformers/mangle-properties-transformer/fixtures/rest-element.js → test/functional-tests/node-transformers/rename-properties-transformers/rename-properties-transformer/fixtures/rest-element.js


+ 2 - 2
test/index.spec.ts

@@ -89,7 +89,7 @@ import './functional-tests/node-transformers/converting-transformers/object-expr
 import './functional-tests/node-transformers/converting-transformers/split-string-transformer/SplitStringTransformer.spec';
 import './functional-tests/node-transformers/converting-transformers/template-literal-transformer/TemplateLiteralTransformer.spec';
 import './functional-tests/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.spec';
-import './functional-tests/node-transformers/mangle-properties-transformers/mangle-properties-transformer/ManglePropertiesTransformer.spec';
+import './functional-tests/node-transformers/initializing-transformers/comments-transformer/CommentsTransformer.spec';
 import './functional-tests/node-transformers/obfuscating-transformers/labeled-statement-transformer/LabeledStatementTransformer.spec';
 import './functional-tests/node-transformers/obfuscating-transformers/literal-transformer/LiteralTransformer.spec';
 import './functional-tests/node-transformers/obfuscating-transformers/scope-identifiers-transformer/catch-clause/CatchClause.spec';
@@ -101,11 +101,11 @@ import './functional-tests/node-transformers/obfuscating-transformers/scope-iden
 import './functional-tests/node-transformers/obfuscating-transformers/scope-identifiers-transformer/variable-declaration/VariableDeclaration.spec';
 import './functional-tests/node-transformers/obfuscating-transformers/obfuscating-replacers/identifier-obfuscating-replacers/BaseIdentifierObfuscatingReplacer.spec';
 import './functional-tests/node-transformers/preparing-transformers/eval-call-expression-transformer/EvalCallExpressionTransformer.spec';
-import './functional-tests/node-transformers/initializing-transformers/comments-transformer/CommentsTransformer.spec';
 import './functional-tests/node-transformers/preparing-transformers/obfuscating-guards/black-list-obfuscating-guard/BlackListObfuscatingGuard.spec';
 import './functional-tests/node-transformers/preparing-transformers/obfuscating-guards/conditional-comment-obfuscating-guard/ConditionalCommentObfuscatingGuard.spec';
 import './functional-tests/node-transformers/preparing-transformers/obfuscating-guards/reserved-string-obfuscating-guard/ReservedStringObfuscatingGuard.spec';
 import './functional-tests/node-transformers/preparing-transformers/variable-preserve-transformer/VariablePreserveTransformer.spec';
+import './functional-tests/node-transformers/rename-properties-transformers/rename-properties-transformer/RenamePropertiesTransformer.spec';
 import './functional-tests/options/OptionsNormalizer.spec';
 import './functional-tests/options/domain-lock/Validation.spec';
 import './functional-tests/storages/string-array-storage/StringArrayStorage.spec';

+ 3 - 3
test/runtime-tests/JavaScriptObfuscatorRuntime.spec.ts

@@ -25,7 +25,7 @@ describe('JavaScriptObfuscator runtime eval', function () {
         debugProtection: true,
         disableConsoleOutput: true,
         domainLock: ['obfuscator.io'],
-        mangleProperties: true,
+        renameProperties: true,
         reservedNames: ['generate', 'sha256'],
         rotateStringArray: true,
         selfDefending: true,
@@ -69,7 +69,7 @@ describe('JavaScriptObfuscator runtime eval', function () {
                     {
                         ...baseOptions,
                         ...options,
-                        mangleProperties: false
+                        renameProperties: false
                     }
                 ).getObfuscatedCode();
 
@@ -181,7 +181,7 @@ describe('JavaScriptObfuscator runtime eval', function () {
                     {
                         ...baseOptions,
                         ...options,
-                        mangleProperties: false
+                        renameProperties: false
                     }
                 ).getObfuscatedCode();
 

Някои файлове не бяха показани, защото твърде много файлове са промени