Skip to content

Latest commit

 

History

History
625 lines (500 loc) · 23.6 KB

CHANGELOG.md

File metadata and controls

625 lines (500 loc) · 23.6 KB

Change Log

v1.11.0

v1.10.2

  • Fixed obfuscation of literals of ExportNamedDeclaration and ExportAllDeclaration nodes

v1.10.1

v1.10.0

v1.9.0

v1.8.1

  • Fixed runtime error Uncaught SyntaxError: yield is a reserved identifier when deadCodeInjection is enabled

v1.8.0

  • domainLock option patterns with leading dot character (.example.com) now cover root domains (example.com) in addition to all sub-domains (sub.example.com). javascript-obfuscator#640

v1.7.0

  • simplify option now affects all block statements. Improved variable declarations merging.

v1.6.0

  • New option: numbersToExpressions enables numbers conversion to expressions

v1.5.2

  • Prevented mutation of the name sequences of mangled identifier name generators

v1.5.1

  • Fixed runtime error when IfStatement contains only single let or const variable declaration when simlify option enabled. javascript-obfuscator#661
  • Fixed wrong source-map: 'inline' encoding after 1.3.0

v1.5.0

  • New mangled-shuffled identifier names generator based on mangled identifier names generator

v1.4.0

  • New option: simplify enables additional code obfuscation through simplification

v1.3.0

  • Improvements of stringArrayEncoding: base64 and rc4
  • CLI: added config file extension validation (it still supports .js and .json extensions)
  • Fixed javascript-obfuscator#499

v1.2.2

  • Fixed performance regression of Initializing stage after 1.2.0

v1.2.1

v1.2.0

v1.1.1

v1.1.0

  • New option: renameProperties enables renaming of property names

v1.0.1

v1.0.0

  • Looks like obfuscator is ready for the first stable release

v0.28.5

v0.28.4

v0.28.3

  • Removed memory leak with identifierNamesGenerator: 'mangled'

v0.28.2

  • Fixed change of kinds of variables for dead code with deadCodeInjection option

v0.28.1

  • Removed acorn-import-meta package

v0.28.0

v0.27.4

v0.27.3

v0.27.2

  • Fixed identifiers prefix generation for obfuscateMultiple method

v0.27.1

v0.27.0

  • Feature: new method obfuscateMultiple to obfuscation of multiple source codes

v0.26.0

v0.25.5

v0.25.4

v0.25.3

v0.25.2

v0.25.1

v0.25.0

  • Improved mangled identifier names generator logic
  • Improved selfDefending helper logic
  • Fixed a bunch of conflicts between generated identifier names. Fixed javascript-obfuscator#550. Fixed javascript-obfuscator#549
  • Prevented transformation of object keys in sequence expression that has super call
  • Support of output directory paths with a dot symbol
  • Changed --output logic. Now --output value can describe if it's a file or a directory path. Check README.md for more info

v0.24.6

v0.24.5

v0.24.4

v0.24.3

v0.24.2

  • Reverted validation errors under node target for sourceMap* options

v0.24.1

v0.24.0

  • Internal refactoring: completely new mechanism to rename variable names
  • Dynamic import and import.meta support. Fixed javascript-obfuscator#505
  • Now usage of some browser-related options with target: 'node' will cause a validation error
  • Increased identifierNamesGenerator: 'mangled speed
  • CLI: a file path will be displayed on obfuscation error. Fixed javascript-obfuscator#513
  • Fixed many transformObjectKeys runtime errors
  • Fixed Maximum call stack size exceeded error on large strings when splitString option is enabled
  • Fixed javascript-obfuscator#516
  • Fixed javascript-obfuscator#512
  • Fixed javascript-obfuscator#496
  • Internal: switched from awesome-typescript-loader on ts-loader

v0.23.2

v0.23.1

v0.23.0

  • New option: shuffleStringArray randomly shuffles string array items
  • Fixed javascript-obfuscator#494
  • Internal change: switched AST parser from espree on acorn
  • Internal refactoring: refactoring of string array storage and related things

v0.22.1

  • Fixed TypeError: Assignment to constant variable when auto-detection of kind of variables is inserted const variables for controlFlowStorage nodes

v0.22.0

  • Breaking: auto-detection of kind of variables of inserted nodes, based on most prevailing kind of variables of source code
  • Fixed javascript-obfuscator#486

v0.21.1

  • Fixed conditional comments in some rare cases

v0.21.0

v0.20.4

  • Fixed typings. Now string values correctly assignable to enum-like options

v0.20.3

v0.20.2

v0.20.1

  • Fixed identifier names generations for mangled and dictionary identifier names generators
  • Fixed combination of identifierNamesGenerator: dictionary and debugProtection options
  • seed option now accepts string and number values

v0.20.0

  • Breaking: dropped support of Node 8 because of end of maintenance support
  • New option value: identifierNamesGenerator now allows to set new dictionary identifier names generator
  • New option: identifiersDictionary sets identifiers dictionary for identifierNamesGenerator: dictionary option

Thanks to our contributors!

v0.19.4

  • Fixed reservedNames option

Thanks to our contributors!

v0.19.3

  • The splitStrings option now correctly works with transformObjectKeys option
  • Internal TransformersRunner rework to support topological sort of node transformers

v0.19.2

  • The splitStrings option now correctly splits strings inside objects

v0.19.1

  • The splitStrings option now affects template literal strings

v0.19.0

  • New option: splitStrings splits literal strings into chunks with length of splitStringsChunkLength option value
  • New option: splitStringsChunkLength sets chunk length of splitStrings option

v0.18.8

v0.18.7

v0.18.6

Thanks to our contributors!

v0.18.5

Thanks to our contributors!

v0.18.4

Thanks to our contributors!

v0.18.3

Thanks to our contributors!

v0.18.2

v0.18.1

v0.18.0

v0.17.3

v0.17.2

v0.17.1

v0.17.0

v0.16.0

v0.15.0

  • Internal change: switched AST parser from esprima on espree
  • Breaking change: dropped node@4 and node@5 support.
  • Breaking change: renamed extension value of target option on browser-no-eval.
  • Breaking change: disabled generation of identifiers, which being matched by reservedName option. Fixed javascript-obfuscator#216
  • New CLI option: exclude allows to exclude specific files or directories from obfuscation.
  • Correct obfuscation of import and export declarations.
  • Fixed javascript-obfuscator#231
  • Fixed javascript-obfuscator#217
  • Fixed javascript-obfuscator#210
  • Internal: refactoring of many things.

v0.14.3

v0.14.2

v0.14.1

v0.14.0

v0.13.0

  • Breaking change: mangle option was removed.
  • New option: identifierNamesGenerator allows to set identifier names generator (hexadecimal or mangled).
  • Breaking change: all CLI options were renamed to kebab-case format (--disableConsoleOutout -> --disable-console-output).
  • Implemented custom mangle option algorithm without esmangle; fixed javascript-obfuscator#110
  • Comments with @license and @preserve words won't be removed from obfuscated code.
  • Fixed javascript-obfuscator#147
  • Fixed javascript-obfuscator#149

v0.12.5

v0.12.4

v0.12.3

v0.12.2

v0.12.1

v0.12.0

  • New option: target allows to set target environment for obfuscated code.
  • Added ability to disable and enable obfuscation for specific parts of the code by adding conditional comments.
  • Added obfuscation of es2015 class names.
  • CLI: added directory obfuscation.

v0.11.2

v0.11.1

v0.11.0

  • New option: log enables logging of the information to the console.
  • New option: renameGlobals allows to enable obfuscation of global variable and function names with declaration.

v0.10.2

v0.10.1

v0.10.0

v0.9.3

v0.9.2

  • Removed coverage dir from npm package

v0.9.1

v0.9.0

  • Breaking change: dropped node@0.10 and node@0.12 support.
  • New option: controlFlowFlattening allows to enable/disable Control Flow flattening. Control flow flattening is a structure transformation of the source code that hinders program comprehension.
  • New option: controlFlowFlatteningThreshold allows to set percentage of nodes that will affected by controlFlowFlattening.
  • Significantly increased obfuscation performance.
  • Huge internal refactoring.
  • Better es2015 support: correct obfuscation of TemplateLiteral, ArrayPattern, AssignmentPattern nodes.
  • Switched from npm to yarn internally.
  • Various bug fixes.

v0.9.0-beta.5

  • Increased performance
  • Fixed very rare Cannot read property 'type' of undefined error, when RandomGeneratorUtils.getMathRandom() returned incorrect value 1.

v0.9.0-beta.4

  • Increased performance

v0.9.0-beta.3

  • Breaking change: dropped node@0.10 and node@0.12 support.
  • Switched from npm to yarn internally.

v0.9.0-beta.2

  • Transformers refactoring

v0.9.0-beta.1

  • New option: controlFlowFlattening allows to enable/disable Control Flow flattening. Control flow flattening is a structure transformation of the source code that hinders program comprehension.
  • New option: controlFlowFlatteningThreshold allows to set percentage of nodes that will affected by controlFlowFlattening.
  • Better es2015 support: correct obfuscation of TemplateLiteral, ArrayPattern, AssignmentPattern nodes.
  • Obfuscation performance boost.
  • Huge internal refactoring.
  • Various bug fixes.

v0.8.6

v0.8.5

v0.8.4

v0.8.3

  • selfDefending option now disabled by default.

v0.8.2

  • New option seed sets seed for random generator. This is useful for creating repeatable results.
  • IE8 runtime error fix.

v0.8.1

  • disableConsoleOutput option now replaces console.xxx functions on empty function instead of infinity loop.

v0.8.0

  • Breaking options change: unicodeArray option has been renamed to stringArray.
  • Breaking options change: unicodeArrayThreshold option has been renamed to stringArrayThreshold.
  • Breaking options change: encodeUnicodeArray option has been renamed to stringArrayEncoding and now accepts following values: true|false|'base64'|'rc4'.
  • Breaking change: option wrapUnicodeArrayCalls was removed and now all calls to stringArray are always wrapped by special wrapper function.
  • New option unicodeEscapeSequence allows to enable/disable strings conversion to unicode escape sequence.
  • New option domainLock locks the obfuscated source code so it only runs on specific domains and/or sub-domains.
  • New option sourceMapBaseUrl sets base url to the source map import url when sourceMapMode: 'separate'.
  • Custom nodes like selfDefendingNode or consoleOutputNode now inserted into deepest stack trace function call.
  • Fixed obfuscation of global variables and function names in some cases.
  • Fixed wrong obfuscation of labels.
  • Rewrite of many custom nodes.

v0.7.3

  • CLI missing polyfill fix #17

v0.7.2

  • Runtime error fix #7

  • Shorthand object expression fix #16

v0.7.1

  • IE error fix #14

v0.7.0-dev.3

  • Obfuscator now returns an empty string instead of obfuscated code if source code is empty

v0.7.0-dev.2

  • Fix of incorrect Utils.decToHex method

v0.7.0-dev.1

  • Breaking API change: now obfuscate(sourceCode, options) returns ObfuscationResult object instead string. ObfuscationResult object contains two public methods: getObfuscatedCode() and getSourceMap().
  • CLI. Now any code can be obfuscated through CLI javascript-obfuscator command. See README.md for available options.
  • New option sourceMap enables source map generation for obfuscated code.
  • New option sourceMapMode specifies source map generation mode.