Skip to content

Commit 279f4dd

Browse files
authored
Merge pull request javascript-obfuscator#152 from javascript-obfuscator/0.13.0-release
0.13.0 release
2 parents afada6d + 677fa86 commit 279f4dd

10 files changed

Lines changed: 45 additions & 73 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ v0.13.0
66
* **New option:** `identifierNamesGenerator` allows to set identifier names generator (`hexadecimal` or `mangled`).
77
* **Breaking change:** all CLI options were renamed to `kebab-case` format (`--disableConsoleOutout` -> `--disable-console-output`).
88
* Implemented custom `mangle` option algorithm without `esmangle`; fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/110
9-
* Comments with `@license`, `@preserve` and `javascript-obfuscator` words won't be removed from obfuscated code.
9+
* Comments with `@license` and `@preserve` words won't be removed from obfuscated code.
1010
* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/147
1111
* Fixed https://github.com/javascript-obfuscator/javascript-obfuscator/issues/149
1212

README.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<!--
22
Title: JavaScript Obfuscator
33
Description: A powerful obfuscator for JavaScript and Node.js.
4-
Author: sanex3339
4+
Author: Timofey Kachalov
55
-->
66

77
# JavaScript obfuscator for Node.js
@@ -24,19 +24,23 @@ Example of obfuscated code: [gist.github.com](https://gist.github.com/sanex3339/
2424
* Gulp: [gulp-javascript-obfuscator](https://github.com/javascript-obfuscator/gulp-javascript-obfuscator)
2525
* Grunt: [grunt-contrib-obfuscator](https://github.com/javascript-obfuscator/grunt-contrib-obfuscator)
2626
* Rollup: [rollup-plugin-javascript-obfuscator](https://github.com/javascript-obfuscator/rollup-plugin-javascript-obfuscator)
27+
* Weex: [weex-devtool](https://www.npmjs.com/package/weex-devtool)
28+
* Malta: [malta-js-obfuscator](https://github.com/fedeghe/malta-js-obfuscator)
2729

2830
[![npm version](https://badge.fury.io/js/javascript-obfuscator.svg)](https://badge.fury.io/js/javascript-obfuscator)
2931
[![Build Status](https://travis-ci.org/javascript-obfuscator/javascript-obfuscator.svg?branch=master)](https://travis-ci.org/javascript-obfuscator/javascript-obfuscator)
3032
[![Coverage Status](https://coveralls.io/repos/github/javascript-obfuscator/javascript-obfuscator/badge.svg?branch=master)](https://coveralls.io/github/javascript-obfuscator/javascript-obfuscator?branch=master)
3133
[![Backers on Open Collective](https://opencollective.com/javascript-obfuscator/backers/badge.svg)](#backers)
3234
[![Sponsors on Open Collective](https://opencollective.com/javascript-obfuscator/sponsors/badge.svg)](#sponsors)
3335

34-
*NOTE! the README on the master branch might not match that of the latest stable release!*
35-
36-
If this project helps you, you can support it:
36+
#####You can support this project by donating:
3737
* (Bitcoin) 14yhtZxLNp6ekZAgmEmPJqEKUP2VtUxQK6
3838
* (OpenCollective) https://opencollective.com/javascript-obfuscator
3939

40+
Big thanks to all supporters!
41+
42+
#####*NOTE! the README on the master branch might not match that of the latest stable release!*
43+
4044
## :warning: Important
4145
##### Obfuscate only the code that belongs to you.
4246

dist/index.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "javascript-obfuscator",
3-
"version": "0.13.0-dev.5",
3+
"version": "0.13.0",
44
"description": "JavaScript obfuscator",
55
"keywords": [
66
"obfuscator",
@@ -26,7 +26,7 @@
2626
"escodegen-wallaby": "1.6.15",
2727
"esprima": "4.0.0",
2828
"estraverse": "4.2.0",
29-
"inversify": "4.6.0",
29+
"inversify": "4.8.0",
3030
"md5": "2.2.1",
3131
"mkdirp": "0.5.1",
3232
"opencollective": "1.0.3",
@@ -63,7 +63,7 @@
6363
"pre-commit": "1.2.2",
6464
"sinon": "4.1.3",
6565
"threads": "^0.10.0",
66-
"ts-node": "4.0.1",
66+
"ts-node": "4.0.2",
6767
"tslint": "5.8.0",
6868
"tslint-eslint-rules": "4.1.1",
6969
"tslint-language-service": "0.9.7",

src/node-transformers/preparing-transformers/CommentsTransformer.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export class CommentsTransformer extends AbstractNodeTransformer {
1515
/**
1616
* @type {string[]}
1717
*/
18-
private static preservedWords: string[] = ['@license', '@preserve', 'javascript-obfuscator'];
18+
private static preservedWords: string[] = ['@license', '@preserve'];
1919

2020
/**
2121
* @param {IRandomGenerator} randomGenerator
@@ -33,7 +33,7 @@ export class CommentsTransformer extends AbstractNodeTransformer {
3333
*/
3434
public getVisitor (): IVisitor {
3535
return {
36-
enter: (node: ESTree.Node, parentNode: ESTree.Node | null) => {
36+
leave: (node: ESTree.Node, parentNode: ESTree.Node | null) => {
3737
if (parentNode && NodeGuards.isNodeWithComments(node)) {
3838
return this.transformNode(node, parentNode);
3939
}

src/node/NodeUtils.ts

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,11 @@ export class NodeUtils {
6060

6161
Object
6262
.keys(node)
63-
.filter((property: string) => property !== 'parentNode')
6463
.forEach((property: string): void => {
64+
if (property === 'parentNode') {
65+
return;
66+
}
67+
6568
const value: any = (<TObject>node)[property];
6669

6770
let clonedValue: any | null;
@@ -103,15 +106,11 @@ export class NodeUtils {
103106
* @returns {string}
104107
*/
105108
public static convertStructureToCode (structure: ESTree.Node[]): string {
106-
let code: string = '';
107-
108-
structure.forEach((node: ESTree.Node) => {
109-
code += escodegen.generate(node, {
109+
return structure.reduce((code: string, node: ESTree.Node) => {
110+
return code + escodegen.generate(node, {
110111
sourceMapWithCode: true
111112
}).code;
112-
});
113-
114-
return code;
113+
}, '');
115114
}
116115

117116
/**
@@ -120,15 +119,15 @@ export class NodeUtils {
120119
* @returns {NodeGuards}
121120
*/
122121
public static getBlockStatementNodeByIndex (node: ESTree.Node, index: number = 0): ESTree.Node {
123-
if (NodeGuards.isNodeHasBlockStatement(node)) {
124-
if (node.body[index] === undefined) {
125-
throw new ReferenceError(`Wrong index \`${index}\`. Block-statement body length is \`${node.body.length}\``);
126-
}
122+
if (!NodeGuards.isNodeHasBlockStatement(node)) {
123+
throw new TypeError('The specified node have no a block-statement');
124+
}
127125

128-
return node.body[index];
126+
if (node.body[index] === undefined) {
127+
throw new ReferenceError(`Wrong index \`${index}\`. Block-statement body length is \`${node.body.length}\``);
129128
}
130129

131-
throw new TypeError('The specified node have no a block-statement');
130+
return node.body[index];
132131
}
133132

134133
/**

test/functional-tests/node-transformers/preparing-transformers/comments-transformer/CommentsTransformer.spec.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ describe('CommentsTransformer', () => {
8282
` *\\* *test\\n` +
8383
` *\\*\\/\\n` +
8484
`var *test *= *0x1;` +
85-
`\\/\\/javascript-obfuscator\\n` +
8685
` *\\/\\*\\* *@preserved *\\*\\/$` +
8786
``);
8887

test/functional-tests/node-transformers/preparing-transformers/comments-transformer/fixtures/combined-words-2.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,4 @@
66
//abc
77
var test = 1;
88
//cde
9-
//javascript-obfuscator
109
/** @preserved */
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
(function () {
2+
var foo = 1;
3+
4+
// javascript-obfuscator:disable
5+
var bar = 2;
6+
7+
// javascript-obfuscator:enable
8+
var baz = 3;
9+
})();

yarn.lock

Lines changed: 8 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@
22
# yarn lockfile v1
33

44

5-
"@types/arrify@^1.0.1":
6-
version "1.0.2"
7-
resolved "https://registry.yarnpkg.com/@types/arrify/-/arrify-1.0.2.tgz#4a6856b9bfd4713c781df95349c6b15db60d4de1"
8-
95
106
version "4.0.10"
117
resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.0.10.tgz#0eb222c7353adde8e0980bea04165d4d3b6afef3"
@@ -20,10 +16,6 @@
2016
dependencies:
2117
commander "*"
2218

23-
"@types/diff@^3.2.1":
24-
version "3.2.2"
25-
resolved "https://registry.yarnpkg.com/@types/diff/-/diff-3.2.2.tgz#4d6f45537322a7a420d353a0939513c7e96d14a6"
26-
2719
2820
version "0.0.6"
2921
resolved "https://registry.yarnpkg.com/@types/escodegen/-/escodegen-0.0.6.tgz#5230a9ce796e042cda6f086dbf19f22ea330659c"
@@ -50,11 +42,7 @@
5042
dependencies:
5143
"@types/node" "*"
5244

53-
"@types/minimist@^1.2.0":
54-
version "1.2.0"
55-
resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6"
56-
57-
"@types/[email protected]", "@types/mkdirp@^0.5.0":
45+
5846
version "0.5.2"
5947
resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.5.2.tgz#503aacfe5cc2703d5484326b1b27efa67a339c1f"
6048
dependencies:
@@ -72,20 +60,10 @@
7260
version "8.5.1"
7361
resolved "https://registry.yarnpkg.com/@types/node/-/node-8.5.1.tgz#4ec3020bcdfe2abffeef9ba3fbf26fca097514b5"
7462

75-
"@types/node@^8.0.27":
76-
version "8.5.0"
77-
resolved "https://registry.yarnpkg.com/@types/node/-/node-8.5.0.tgz#c5be22ffc84b221466fc8dfc0d6b1f88060808ef"
78-
7963
8064
version "4.1.2"
8165
resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-4.1.2.tgz#9085db9cc3288b0f12daceee20a26c4afd9c2dcd"
8266

83-
"@types/source-map-support@^0.4.0":
84-
version "0.4.0"
85-
resolved "https://registry.yarnpkg.com/@types/source-map-support/-/source-map-support-0.4.0.tgz#a62a1866614af68c888173c001481f242aaf148b"
86-
dependencies:
87-
"@types/node" "*"
88-
8967
9068
version "1.0.2"
9169
resolved "https://registry.yarnpkg.com/@types/string-template/-/string-template-1.0.2.tgz#363b273c9b456705e3111e3571e9248f6474eba4"
@@ -98,18 +76,10 @@
9876
version "0.0.30"
9977
resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1"
10078

101-
"@types/v8flags@types/npm-v8flags#de224ae1cd5fd7dbb4e7158a6cc7a29e5315930d":
102-
version "2.0.0"
103-
resolved "https://codeload.github.com/types/npm-v8flags/tar.gz/de224ae1cd5fd7dbb4e7158a6cc7a29e5315930d"
104-
10579
10680
version "1.13.3"
10781
resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.13.3.tgz#0ecbe70f87341767793774d3683b51aa3246434c"
10882

109-
"@types/yn@types/npm-yn#ca75f6c82940fae6a06fb41d2d37a6aa9b4ea8e9":
110-
version "2.0.0"
111-
resolved "https://codeload.github.com/types/npm-yn/tar.gz/ca75f6c82940fae6a06fb41d2d37a6aa9b4ea8e9"
112-
11383
11484
version "1.0.9"
11585
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
@@ -2003,9 +1973,9 @@ invariant@^2.2.2:
20031973
dependencies:
20041974
loose-envify "^1.0.0"
20051975

2006-
inversify@4.6.0:
2007-
version "4.6.0"
2008-
resolved "https://registry.yarnpkg.com/inversify/-/inversify-4.6.0.tgz#49abb2ee8fce3c99e1e94f01f36df77c3bfeba75"
1976+
inversify@4.8.0:
1977+
version "4.8.0"
1978+
resolved "https://registry.yarnpkg.com/inversify/-/inversify-4.8.0.tgz#750c3c204ee9fe9a7529062dc6196c69d05fee7e"
20091979

20101980
invert-kv@^1.0.0:
20111981
version "1.0.0"
@@ -3678,18 +3648,10 @@ trim-right@^1.0.1:
36783648
version "1.0.1"
36793649
resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
36803650

3681-
3682-
version "4.0.1"
3683-
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-4.0.1.tgz#4d368088b50c382d78285c029784ea0f32a4eb5c"
3684-
dependencies:
3685-
"@types/arrify" "^1.0.1"
3686-
"@types/diff" "^3.2.1"
3687-
"@types/minimist" "^1.2.0"
3688-
"@types/mkdirp" "^0.5.0"
3689-
"@types/node" "^8.0.27"
3690-
"@types/source-map-support" "^0.4.0"
3691-
"@types/v8flags" types/npm-v8flags#de224ae1cd5fd7dbb4e7158a6cc7a29e5315930d
3692-
"@types/yn" types/npm-yn#ca75f6c82940fae6a06fb41d2d37a6aa9b4ea8e9
3651+
3652+
version "4.0.2"
3653+
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-4.0.2.tgz#cb3d039b9898fdc79ad09ab7e69c84564c8c41ee"
3654+
dependencies:
36933655
arrify "^1.0.0"
36943656
chalk "^2.3.0"
36953657
diff "^3.1.0"

0 commit comments

Comments
 (0)