You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 KiB
20 KiB
Change Log
v0.28.0
- Added BigInt support. https://github.com/javascript-obfuscator/javascript-obfuscator/issues/588
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/554
v0.27.4
v0.27.3
v0.27.2
- Fixed identifiers prefix generation for
obfuscateMultiple
method
v0.27.1
- Dependencies update, fixed https://www.npmjs.com/advisories/1488
v0.27.0
- Feature: new method
obfuscateMultiple
to obfuscation of multiple source codes
v0.26.0
- Internal: new code transformers mechanism
- Supported obfuscation of files with hashbang operator, https://github.com/javascript-obfuscator/javascript-obfuscator/issues/471
v0.25.5
v0.25.4
v0.25.3
v0.25.2
v0.25.1
- Additional fixes of https://github.com/javascript-obfuscator/javascript-obfuscator/issues/550
v0.25.0
- Improved
mangled
identifier names generator logic - Improved
selfDefending
helper logic - Fixed a bunch of conflicts between generated identifier names. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/550. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/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
- Fixed support of exponentiation operator. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/534
- Added file path to the error message during directory obfuscation. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/513
v0.24.5
v0.24.4
- Fixed rc4 encoded value collision: https://github.com/javascript-obfuscator/javascript-obfuscator/issues/538
v0.24.3
v0.24.2
- Reverted validation errors under
node
target forsourceMap*
options
v0.24.1
v0.24.0
- Internal refactoring: completely new mechanism to rename variable names
- Dynamic import and
import.meta
support. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/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 https://github.com/javascript-obfuscator/javascript-obfuscator/issues/513
- Fixed many
transformObjectKeys
runtime errors - Fixed
Maximum call stack size exceeded
error on large strings whensplitString
option is enabled - Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/516
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/512
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/496
- Internal: switched from
awesome-typescript-loader
onts-loader
v0.23.2
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/475
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/326
v0.23.1
v0.23.0
- New option:
shuffleStringArray
randomly shuffles string array items - Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/494
- Internal change: switched AST parser from
espree
onacorn
- 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 insertedconst
variables forcontrolFlowStorage
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 https://github.com/javascript-obfuscator/javascript-obfuscator/issues/486
v0.21.1
- Fixed conditional comments in some rare cases
v0.21.0
- Improved
transformObjectKeys
transformation to cover more cases - Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/406
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/387
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/333
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/328
v0.20.4
- Fixed typings. Now string values correctly assignable to enum-like options
v0.20.3
- Fixed
for-await-of
statement: https://github.com/javascript-obfuscator/javascript-obfuscator/issues/419
v0.20.2
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/pull/442
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/468
- Added funding button
- Internal dependencies update, Happy New Year 2020!
v0.20.1
- Fixed identifier names generations for
mangled
anddictionary
identifier names generators - Fixed combination of
identifierNamesGenerator: dictionary
anddebugProtection
options seed
option now acceptsstring
andnumber
values
v0.20.0
- Breaking: dropped support of Node 8 because of end of maintenance support
- New option value:
identifierNamesGenerator
now allows to set newdictionary
identifier names generator - New option:
identifiersDictionary
sets identifiers dictionary foridentifierNamesGenerator: 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 withtransformObjectKeys
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 ofsplitStringsChunkLength
option value - New option:
splitStringsChunkLength
sets chunk length ofsplitStrings
option
v0.18.8
v0.18.7
v0.18.6
Thanks to our contributors!
v0.18.5
- Breaking: require Node.js 8 after dependencies update
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/321
Thanks to our contributors!
v0.18.4
Thanks to our contributors!
v0.18.3
Thanks to our contributors!
v0.18.2
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/320
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/319
v0.18.1
v0.18.0
- New option:
reservedStrings
disables transformation of string literals, which being matched by passed RegExp patterns - Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/313
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/309
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/307
v0.17.3
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/303
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/302
v0.17.2
v0.17.1
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/293
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/289
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/288
v0.17.0
- Browser version: Added browser version dist
- New Node API option:
inputFileName
allows to set name of the input file with source code. This name will used internally, for example, for source map generation. - #274
domainLock
now will work in SVG.
Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/273 - Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/271
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/264
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/260
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/252
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/247
v0.16.0
- Correct obfuscation of object rest and spread properties
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/243
v0.15.0
- Internal change: switched AST parser from
esprima
onespree
- Breaking change: dropped
node@4
andnode@5
support. - Breaking change: renamed
extension
value oftarget
option onbrowser-no-eval
. - Breaking change: disabled generation of identifiers, which being matched by
reservedName
option. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/216 - New CLI option:
exclude
allows to exclude specific files or directories from obfuscation. - Correct obfuscation of
import
andexport
declarations. - Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/231
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/217
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/210
- Internal: refactoring of many things.
v0.14.3
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/195
- Added code preview to
esprima
error messages.
v0.14.2
v0.14.1
v0.14.0
- New option:
identifiersPrefix
sets prefix for all global identifiers. - New option:
transformObjectKeys
enables object keys transformation and obfuscation. - New feature:
eval
expressions obfuscation. - Breaking change: Now CLI obfuscating directory recursively. Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/157
- Fixed runtime errors when
deadCodeInjection
is enabled andidentifierNamesGenerator
is set tomangled
. - Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/171
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/166
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/156
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/159
v0.13.0
- Breaking change:
mangle
option was removed. - New option:
identifierNamesGenerator
allows to set identifier names generator (hexadecimal
ormangled
). - Breaking change: all CLI options were renamed to
kebab-case
format (--disableConsoleOutout
->--disable-console-output
). - Implemented custom
mangle
option algorithm withoutesmangle
; fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/110 - Comments with
@license
and@preserve
words won't be removed from obfuscated code. - Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/147
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/149
v0.12.5
v0.12.4
v0.12.3
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/129
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/125 (dead code injection and await expression)
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/123
v0.12.2
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/121
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/119
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
- New option:
deadCodeInjection
. With this option random blocks of dead code will add to the obfuscated code. - New option:
deadCodeInjectionThreshold
allows to set percentage of nodes that will affected bydeadCodeInjection
. - New option:
mangle
enables mangling of variable names. - New CLI option:
--config
allows to set config file with obfuscator options. - Breaking change:
disableConsoleOutput
option now disabled by default. - Breaking change:
escapeUnicodeSequence
option now disabled by default. controlFlowFlattening
now affects string literal nodes.- Increased runtime performance with
rc4
stringArrayEncoding
. - Added support for async functions
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/71
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/65
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/60
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/59
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/54
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/57
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/58
- Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/58
v0.9.3
- Switched from
escodegen
toescodegen-wallaby
, fixed https://github.com/javascript-obfuscator/javascript-obfuscator/pull/50
v0.9.2
- Removed coverage dir from npm package
v0.9.1
v0.9.0
- Breaking change: dropped
node@0.10
andnode@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 bycontrolFlowFlattening
. - Significantly increased obfuscation performance.
- Huge internal refactoring.
- Better
es2015
support: correct obfuscation ofTemplateLiteral
,ArrayPattern
,AssignmentPattern
nodes. - Switched from
npm
toyarn
internally. - Various bug fixes.
v0.9.0-beta.5
- Increased performance
- Fixed very rare
Cannot read property 'type' of undefined
error, whenRandomGeneratorUtils.getMathRandom()
returned incorrect value1
.
v0.9.0-beta.4
- Increased performance
v0.9.0-beta.3
- Breaking change: dropped
node@0.10
andnode@0.12
support. - Switched from
npm
toyarn
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 bycontrolFlowFlattening
. - Better
es2015
support: correct obfuscation ofTemplateLiteral
,ArrayPattern
,AssignmentPattern
nodes. - Obfuscation performance boost.
- Huge internal refactoring.
- Various bug fixes.
v0.8.6
- Additional fixes for https://github.com/javascript-obfuscator/javascript-obfuscator/issues/29
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 replacesconsole.xxx
functions on empty function instead of infinity loop.
v0.8.0
- Breaking options change:
unicodeArray
option has been renamed tostringArray
. - Breaking options change:
unicodeArrayThreshold
option has been renamed tostringArrayThreshold
. - Breaking options change:
encodeUnicodeArray
option has been renamed tostringArrayEncoding
and now accepts following values:true|false|'base64'|'rc4'
. - Breaking change: option
wrapUnicodeArrayCalls
was removed and now all calls tostringArray
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 whensourceMapMode: 'separate'
. - Custom nodes like
selfDefendingNode
orconsoleOutputNode
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
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)
returnsObfuscationResult
object insteadstring
.ObfuscationResult
object contains two public methods:getObfuscatedCode()
andgetSourceMap()
. - CLI. Now any code can be obfuscated through CLI
javascript-obfuscator
command. SeeREADME.md
for available options. - New option
sourceMap
enables source map generation for obfuscated code. - New option
sourceMapMode
specifies source map generation mode.