Skip to content

Commit 2b227b2

Browse files
author
sanex3339
committed
0.25.3 release
1 parent ba686de commit 2b227b2

File tree

5 files changed

+42
-23
lines changed

5 files changed

+42
-23
lines changed

Diff for: dist/index.d.ts

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { Compiler } from 'webpack';
22
import { ObfuscatorOptions } from 'javascript-obfuscator';
33
declare class WebpackObfuscator {
44
options: ObfuscatorOptions;
5+
private static readonly baseIdentifiersPrefix;
56
excludes: string[];
67
constructor(options?: ObfuscatorOptions, excludes?: string | string[]);
78
apply(compiler: Compiler): void;

Diff for: dist/index.js

+6-3
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,15 @@ class WebpackObfuscator {
2020
}
2121
const pluginName = this.constructor.name;
2222
compiler.hooks.emit.tap(pluginName, (compilation) => {
23+
let identifiersPrefixCounter = 0;
2324
compilation.chunks.forEach(chunk => {
2425
chunk.files.forEach((fileName) => {
2526
if (!fileName.toLowerCase().endsWith('.js') || this.shouldExclude(fileName)) {
2627
return;
2728
}
2829
const asset = compilation.assets[fileName];
2930
const { inputSource, inputSourceMap } = this.extractSourceAndSourceMap(asset);
30-
const { obfuscatedSource, obfuscationSourceMap } = this.obfuscate(inputSource);
31+
const { obfuscatedSource, obfuscationSourceMap } = this.obfuscate(inputSource, identifiersPrefixCounter);
3132
if (this.options.sourceMap && inputSourceMap) {
3233
const transferredSourceMap = transferSourceMap({
3334
fromSourceMap: obfuscationSourceMap,
@@ -38,6 +39,7 @@ class WebpackObfuscator {
3839
else {
3940
compilation.assets[fileName] = new webpack_sources_1.RawSource(obfuscatedSource);
4041
}
42+
identifiersPrefixCounter++;
4143
});
4244
});
4345
});
@@ -57,12 +59,13 @@ class WebpackObfuscator {
5759
};
5860
}
5961
}
60-
obfuscate(javascript) {
61-
const obfuscationResult = javascript_obfuscator_1.default.obfuscate(javascript, this.options);
62+
obfuscate(javascript, identifiersPrefixCounter) {
63+
const obfuscationResult = javascript_obfuscator_1.default.obfuscate(javascript, Object.assign({ identifiersPrefix: `${WebpackObfuscator.baseIdentifiersPrefix}${identifiersPrefixCounter}` }, this.options));
6264
return {
6365
obfuscatedSource: obfuscationResult.getObfuscatedCode(),
6466
obfuscationSourceMap: obfuscationResult.getSourceMap()
6567
};
6668
}
6769
}
70+
WebpackObfuscator.baseIdentifiersPrefix = 'a';
6871
module.exports = WebpackObfuscator;

Diff for: index.ts

+18-3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ import { RawSourceMap } from 'source-map';
88
const transferSourceMap = require("multi-stage-sourcemap").transfer;
99

1010
class WebpackObfuscator {
11+
/**
12+
* @type {string}
13+
*/
14+
private static readonly baseIdentifiersPrefix: string = 'a';
1115

1216
public excludes: string[] = [];
1317

@@ -28,15 +32,18 @@ class WebpackObfuscator {
2832
}
2933

3034
const pluginName = this.constructor.name;
35+
3136
compiler.hooks.emit.tap(pluginName, (compilation: compilation.Compilation) => {
37+
let identifiersPrefixCounter: number = 0;
38+
3239
compilation.chunks.forEach(chunk => {
3340
chunk.files.forEach((fileName: string) => {
3441
if (!fileName.toLowerCase().endsWith('.js') || this.shouldExclude(fileName)) {
3542
return;
3643
}
3744
const asset = compilation.assets[fileName]
3845
const { inputSource, inputSourceMap } = this.extractSourceAndSourceMap(asset);
39-
const { obfuscatedSource, obfuscationSourceMap } = this.obfuscate(inputSource);
46+
const { obfuscatedSource, obfuscationSourceMap } = this.obfuscate(inputSource, identifiersPrefixCounter);
4047

4148
if (this.options.sourceMap && inputSourceMap) {
4249
const transferredSourceMap = transferSourceMap({
@@ -54,6 +61,8 @@ class WebpackObfuscator {
5461
} else {
5562
compilation.assets[fileName] = new RawSource(obfuscatedSource);
5663
}
64+
65+
identifiersPrefixCounter++;
5766
});
5867
});
5968
});
@@ -75,10 +84,16 @@ class WebpackObfuscator {
7584
}
7685
}
7786

78-
private obfuscate(javascript: string): { obfuscatedSource: string, obfuscationSourceMap: string } {
87+
private obfuscate(
88+
javascript: string,
89+
identifiersPrefixCounter: number
90+
): { obfuscatedSource: string, obfuscationSourceMap: string } {
7991
const obfuscationResult = JavaScriptObfuscator.obfuscate(
8092
javascript,
81-
this.options
93+
{
94+
identifiersPrefix: `${WebpackObfuscator.baseIdentifiersPrefix}${identifiersPrefixCounter}`,
95+
...this.options
96+
}
8297
);
8398

8499
return {

Diff for: package-lock.json

+15-15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "webpack-obfuscator",
3-
"version": "0.25.2",
3+
"version": "0.25.3",
44
"description": "javascript-obfuscator plugin for Webpack",
55
"keywords": [
66
"obfuscator",
@@ -15,7 +15,7 @@
1515
"main": "./dist/index.js",
1616
"types": "./dist/index.d.ts",
1717
"dependencies": {
18-
"javascript-obfuscator": "^0.25.2",
18+
"javascript-obfuscator": "^0.25.3",
1919
"multi-stage-sourcemap": "^0.2.1",
2020
"multimatch": "^2.1.0",
2121
"webpack-sources": "^1.3.0"

0 commit comments

Comments
 (0)