webfuscator 1.3.1 → 1.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -1
- package/dist/obfuscator.d.ts.map +1 -1
- package/dist/obfuscator.js +25 -13
- package/dist/obfuscator.js.map +1 -1
- package/dist/options.d.ts +10 -9
- package/dist/options.d.ts.map +1 -1
- package/dist/transforms/arguments-to-parameters.d.ts +2 -5
- package/dist/transforms/arguments-to-parameters.d.ts.map +1 -1
- package/dist/transforms/arguments-to-parameters.js +2 -5
- package/dist/transforms/arguments-to-parameters.js.map +1 -1
- package/dist/transforms/arrow-to-function.d.ts +3 -4
- package/dist/transforms/arrow-to-function.d.ts.map +1 -1
- package/dist/transforms/arrow-to-function.js +3 -4
- package/dist/transforms/arrow-to-function.js.map +1 -1
- package/dist/transforms/collapse-single-use-temps.d.ts +2 -3
- package/dist/transforms/collapse-single-use-temps.d.ts.map +1 -1
- package/dist/transforms/collapse-single-use-temps.js +2 -3
- package/dist/transforms/collapse-single-use-temps.js.map +1 -1
- package/dist/transforms/conceal-strings.d.ts +2 -19
- package/dist/transforms/conceal-strings.d.ts.map +1 -1
- package/dist/transforms/conceal-strings.js +2 -19
- package/dist/transforms/conceal-strings.js.map +1 -1
- package/dist/transforms/const-let-to-var.d.ts +3 -4
- package/dist/transforms/const-let-to-var.d.ts.map +1 -1
- package/dist/transforms/const-let-to-var.js +3 -4
- package/dist/transforms/const-let-to-var.js.map +1 -1
- package/dist/transforms/do-while-to-while.d.ts +2 -3
- package/dist/transforms/do-while-to-while.d.ts.map +1 -1
- package/dist/transforms/do-while-to-while.js +2 -3
- package/dist/transforms/do-while-to-while.js.map +1 -1
- package/dist/transforms/drop-console.d.ts +1 -4
- package/dist/transforms/drop-console.d.ts.map +1 -1
- package/dist/transforms/drop-console.js +1 -4
- package/dist/transforms/drop-console.js.map +1 -1
- package/dist/transforms/expand-binary-assignment.d.ts +2 -8
- package/dist/transforms/expand-binary-assignment.d.ts.map +1 -1
- package/dist/transforms/expand-binary-assignment.js +2 -8
- package/dist/transforms/expand-binary-assignment.js.map +1 -1
- package/dist/transforms/expand-logical-assignment.d.ts +3 -2
- package/dist/transforms/expand-logical-assignment.d.ts.map +1 -1
- package/dist/transforms/expand-logical-assignment.js +3 -2
- package/dist/transforms/expand-logical-assignment.js.map +1 -1
- package/dist/transforms/extract-object-properties.d.ts +2 -3
- package/dist/transforms/extract-object-properties.d.ts.map +1 -1
- package/dist/transforms/extract-object-properties.js +2 -3
- package/dist/transforms/extract-object-properties.js.map +1 -1
- package/dist/transforms/fold-builtin-methods.d.ts +2 -3
- package/dist/transforms/fold-builtin-methods.d.ts.map +1 -1
- package/dist/transforms/fold-builtin-methods.js +2 -3
- package/dist/transforms/fold-builtin-methods.js.map +1 -1
- package/dist/transforms/fold-constants.d.ts +2 -2
- package/dist/transforms/fold-constants.js +2 -2
- package/dist/transforms/for-to-while.d.ts +2 -3
- package/dist/transforms/for-to-while.d.ts.map +1 -1
- package/dist/transforms/for-to-while.js +2 -3
- package/dist/transforms/for-to-while.js.map +1 -1
- package/dist/transforms/function-declaration-to-expression.d.ts +3 -7
- package/dist/transforms/function-declaration-to-expression.d.ts.map +1 -1
- package/dist/transforms/function-declaration-to-expression.js +3 -7
- package/dist/transforms/function-declaration-to-expression.js.map +1 -1
- package/dist/transforms/hoist-variables.d.ts +2 -4
- package/dist/transforms/hoist-variables.d.ts.map +1 -1
- package/dist/transforms/hoist-variables.js +2 -4
- package/dist/transforms/hoist-variables.js.map +1 -1
- package/dist/transforms/inline-functions.d.ts +2 -2
- package/dist/transforms/inline-functions.js +2 -2
- package/dist/transforms/logical-to-ternary.d.ts +2 -2
- package/dist/transforms/logical-to-ternary.js +2 -2
- package/dist/transforms/mangle-properties.d.ts +2 -3
- package/dist/transforms/mangle-properties.d.ts.map +1 -1
- package/dist/transforms/mangle-properties.js +2 -3
- package/dist/transforms/mangle-properties.js.map +1 -1
- package/dist/transforms/merge-variable-declarations.d.ts +1 -3
- package/dist/transforms/merge-variable-declarations.d.ts.map +1 -1
- package/dist/transforms/merge-variable-declarations.js +1 -3
- package/dist/transforms/merge-variable-declarations.js.map +1 -1
- package/dist/transforms/nullish-coalescing-to-ternary.d.ts +2 -2
- package/dist/transforms/nullish-coalescing-to-ternary.js +2 -2
- package/dist/transforms/numbers-to-strings.d.ts +1 -5
- package/dist/transforms/numbers-to-strings.d.ts.map +1 -1
- package/dist/transforms/numbers-to-strings.js +1 -5
- package/dist/transforms/numbers-to-strings.js.map +1 -1
- package/dist/transforms/object-method-to-property.d.ts +2 -10
- package/dist/transforms/object-method-to-property.d.ts.map +1 -1
- package/dist/transforms/object-method-to-property.js +2 -10
- package/dist/transforms/object-method-to-property.js.map +1 -1
- package/dist/transforms/optional-chaining-to-ternary.d.ts +2 -3
- package/dist/transforms/optional-chaining-to-ternary.d.ts.map +1 -1
- package/dist/transforms/optional-chaining-to-ternary.js +2 -3
- package/dist/transforms/optional-chaining-to-ternary.js.map +1 -1
- package/dist/transforms/pack-declarations-into-parameters.d.ts +2 -5
- package/dist/transforms/pack-declarations-into-parameters.d.ts.map +1 -1
- package/dist/transforms/pack-declarations-into-parameters.js +2 -5
- package/dist/transforms/pack-declarations-into-parameters.js.map +1 -1
- package/dist/transforms/pack-expressions.d.ts +20 -0
- package/dist/transforms/pack-expressions.d.ts.map +1 -0
- package/dist/transforms/pack-expressions.js +132 -0
- package/dist/transforms/pack-expressions.js.map +1 -0
- package/dist/transforms/pack.d.ts +2 -4
- package/dist/transforms/pack.d.ts.map +1 -1
- package/dist/transforms/pack.js +2 -4
- package/dist/transforms/pack.js.map +1 -1
- package/dist/transforms/remove-unreachable-code.d.ts +2 -4
- package/dist/transforms/remove-unreachable-code.d.ts.map +1 -1
- package/dist/transforms/remove-unreachable-code.js +2 -4
- package/dist/transforms/remove-unreachable-code.js.map +1 -1
- package/dist/transforms/remove-unused-code.d.ts +2 -2
- package/dist/transforms/remove-unused-code.js +2 -2
- package/dist/transforms/rename-identifiers.d.ts +2 -3
- package/dist/transforms/rename-identifiers.d.ts.map +1 -1
- package/dist/transforms/rename-identifiers.js +2 -3
- package/dist/transforms/rename-identifiers.js.map +1 -1
- package/dist/transforms/reorder-function-declarations.d.ts +2 -6
- package/dist/transforms/reorder-function-declarations.d.ts.map +1 -1
- package/dist/transforms/reorder-function-declarations.js +2 -6
- package/dist/transforms/reorder-function-declarations.js.map +1 -1
- package/dist/transforms/specials-to-strings.d.ts +2 -13
- package/dist/transforms/specials-to-strings.d.ts.map +1 -1
- package/dist/transforms/specials-to-strings.js +2 -13
- package/dist/transforms/specials-to-strings.js.map +1 -1
- package/dist/transforms/switch-to-if.d.ts +3 -4
- package/dist/transforms/switch-to-if.d.ts.map +1 -1
- package/dist/transforms/switch-to-if.js +3 -4
- package/dist/transforms/switch-to-if.js.map +1 -1
- package/dist/transforms/ternary-to-if.d.ts +2 -3
- package/dist/transforms/ternary-to-if.d.ts.map +1 -1
- package/dist/transforms/ternary-to-if.js +2 -3
- package/dist/transforms/ternary-to-if.js.map +1 -1
- package/dist/transforms/update-to-assignment.d.ts +2 -6
- package/dist/transforms/update-to-assignment.d.ts.map +1 -1
- package/dist/transforms/update-to-assignment.js +2 -6
- package/dist/transforms/update-to-assignment.js.map +1 -1
- package/dist/transforms/yodify-conditions.d.ts +2 -3
- package/dist/transforms/yodify-conditions.d.ts.map +1 -1
- package/dist/transforms/yodify-conditions.js +2 -3
- package/dist/transforms/yodify-conditions.js.map +1 -1
- package/package.json +2 -18
- package/src/obfuscator.ts +27 -13
- package/src/options.ts +12 -10
- package/src/transforms/arguments-to-parameters.ts +2 -5
- package/src/transforms/arrow-to-function.ts +3 -4
- package/src/transforms/collapse-single-use-temps.ts +2 -3
- package/src/transforms/conceal-strings.ts +2 -19
- package/src/transforms/const-let-to-var.ts +3 -4
- package/src/transforms/do-while-to-while.ts +2 -3
- package/src/transforms/drop-console.ts +1 -4
- package/src/transforms/expand-binary-assignment.ts +2 -8
- package/src/transforms/expand-logical-assignment.ts +3 -2
- package/src/transforms/extract-object-properties.ts +2 -3
- package/src/transforms/fold-builtin-methods.ts +2 -3
- package/src/transforms/fold-constants.ts +2 -2
- package/src/transforms/for-to-while.ts +2 -3
- package/src/transforms/function-declaration-to-expression.ts +3 -7
- package/src/transforms/hoist-variables.ts +2 -4
- package/src/transforms/inline-functions.ts +2 -2
- package/src/transforms/logical-to-ternary.ts +2 -2
- package/src/transforms/mangle-properties.ts +2 -3
- package/src/transforms/merge-variable-declarations.ts +1 -3
- package/src/transforms/nullish-coalescing-to-ternary.ts +2 -2
- package/src/transforms/numbers-to-strings.ts +1 -5
- package/src/transforms/object-method-to-property.ts +2 -10
- package/src/transforms/optional-chaining-to-ternary.ts +2 -3
- package/src/transforms/pack-declarations-into-parameters.ts +2 -5
- package/src/transforms/pack-expressions.ts +159 -0
- package/src/transforms/pack.ts +2 -4
- package/src/transforms/remove-unreachable-code.ts +2 -4
- package/src/transforms/remove-unused-code.ts +2 -2
- package/src/transforms/rename-identifiers.ts +2 -3
- package/src/transforms/reorder-function-declarations.ts +2 -6
- package/src/transforms/specials-to-strings.ts +2 -13
- package/src/transforms/switch-to-if.ts +3 -4
- package/src/transforms/ternary-to-if.ts +2 -3
- package/src/transforms/update-to-assignment.ts +2 -6
- package/src/transforms/yodify-conditions.ts +2 -3
|
@@ -4,10 +4,9 @@ import { traverseForChanges } from '../utils/change-tracking.js';
|
|
|
4
4
|
import { isPrimitiveLiteral } from '../utils/literal.js';
|
|
5
5
|
import { generateLoopLabel } from '../utils/loop-lowering.js';
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* `if` blocks cannot preserve the shared switch scope.
|
|
7
|
+
* Rewrites eligible `switch` statements as equivalent `if` statements, using a
|
|
8
|
+
* labeled block when fallthrough must be preserved. Switches whose shared case
|
|
9
|
+
* scope cannot be preserved stay unchanged.
|
|
11
10
|
*
|
|
12
11
|
* @example
|
|
13
12
|
* // ◀️ before
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch-to-if.js","sourceRoot":"","sources":["../../src/transforms/switch-to-if.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAGjC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE1D
|
|
1
|
+
{"version":3,"file":"switch-to-if.js","sourceRoot":"","sources":["../../src/transforms/switch-to-if.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { File } from '@babel/types';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* temporary
|
|
5
|
-
* hoisting would change when they run.
|
|
3
|
+
* Rewrites eligible conditional expressions as `if` statements, using a
|
|
4
|
+
* temporary when their value is needed.
|
|
6
5
|
*
|
|
7
6
|
* @example
|
|
8
7
|
* // ◀️ before
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ternary-to-if.d.ts","sourceRoot":"","sources":["../../src/transforms/ternary-to-if.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAOxC
|
|
1
|
+
{"version":3,"file":"ternary-to-if.d.ts","sourceRoot":"","sources":["../../src/transforms/ternary-to-if.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAOxC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAM9C"}
|
|
@@ -3,9 +3,8 @@ import { traverseForChanges } from '../utils/change-tracking.js';
|
|
|
3
3
|
import { isConditionalGate, reorderableToStatement } from '../utils/evaluation-order.js';
|
|
4
4
|
import { isStandaloneDeclaration } from '../utils/paths.js';
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
* temporary
|
|
8
|
-
* hoisting would change when they run.
|
|
6
|
+
* Rewrites eligible conditional expressions as `if` statements, using a
|
|
7
|
+
* temporary when their value is needed.
|
|
9
8
|
*
|
|
10
9
|
* @example
|
|
11
10
|
* // ◀️ before
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ternary-to-if.js","sourceRoot":"","sources":["../../src/transforms/ternary-to-if.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ternary-to-if.js","sourceRoot":"","sources":["../../src/transforms/ternary-to-if.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import type { File } from '@babel/types';
|
|
2
2
|
/**
|
|
3
|
-
* Rewrites numeric
|
|
4
|
-
*
|
|
5
|
-
* value.
|
|
6
|
-
*
|
|
7
|
-
* BigInt differs because adding the number `1` throws. Only bindings proven to
|
|
8
|
-
* stay numeric are rewritten. Members and parameters stay unchanged.
|
|
3
|
+
* Rewrites eligible numeric update expressions as compound assignments. Postfix
|
|
4
|
+
* updates stay unchanged when their original value is used.
|
|
9
5
|
*
|
|
10
6
|
* @example
|
|
11
7
|
* // ◀️ before
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-to-assignment.d.ts","sourceRoot":"","sources":["../../src/transforms/update-to-assignment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAKxC
|
|
1
|
+
{"version":3,"file":"update-to-assignment.d.ts","sourceRoot":"","sources":["../../src/transforms/update-to-assignment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAKxC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAErD"}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import * as t from '@babel/types';
|
|
2
2
|
import { traverseForChanges } from '../utils/change-tracking.js';
|
|
3
3
|
/**
|
|
4
|
-
* Rewrites numeric
|
|
5
|
-
*
|
|
6
|
-
* value.
|
|
7
|
-
*
|
|
8
|
-
* BigInt differs because adding the number `1` throws. Only bindings proven to
|
|
9
|
-
* stay numeric are rewritten. Members and parameters stay unchanged.
|
|
4
|
+
* Rewrites eligible numeric update expressions as compound assignments. Postfix
|
|
5
|
+
* updates stay unchanged when their original value is used.
|
|
10
6
|
*
|
|
11
7
|
* @example
|
|
12
8
|
* // ◀️ before
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-to-assignment.js","sourceRoot":"","sources":["../../src/transforms/update-to-assignment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAGjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAG7D
|
|
1
|
+
{"version":3,"file":"update-to-assignment.js","sourceRoot":"","sources":["../../src/transforms/update-to-assignment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { File } from '@babel/types';
|
|
2
2
|
/**
|
|
3
|
-
* Moves
|
|
4
|
-
*
|
|
5
|
-
* are flipped after swapping.
|
|
3
|
+
* Moves eligible literal-like right operands to the left side of comparisons,
|
|
4
|
+
* reversing relational operators as needed.
|
|
6
5
|
*
|
|
7
6
|
* @example
|
|
8
7
|
* // ◀️ before
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yodify-conditions.d.ts","sourceRoot":"","sources":["../../src/transforms/yodify-conditions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAMxC
|
|
1
|
+
{"version":3,"file":"yodify-conditions.d.ts","sourceRoot":"","sources":["../../src/transforms/yodify-conditions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAMxC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAEnD"}
|
|
@@ -2,9 +2,8 @@ import * as t from '@babel/types';
|
|
|
2
2
|
import { traverseForChanges } from '../utils/change-tracking.js';
|
|
3
3
|
import { isLiteralShaped } from '../utils/literal.js';
|
|
4
4
|
/**
|
|
5
|
-
* Moves
|
|
6
|
-
*
|
|
7
|
-
* are flipped after swapping.
|
|
5
|
+
* Moves eligible literal-like right operands to the left side of comparisons,
|
|
6
|
+
* reversing relational operators as needed.
|
|
8
7
|
*
|
|
9
8
|
* @example
|
|
10
9
|
* // ◀️ before
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yodify-conditions.js","sourceRoot":"","sources":["../../src/transforms/yodify-conditions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAGjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD
|
|
1
|
+
{"version":3,"file":"yodify-conditions.js","sourceRoot":"","sources":["../../src/transforms/yodify-conditions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAGjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAS;IACxC,OAAO,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;AACzC,CAAC;AAED,MAAM,OAAO,GAAyB;IACpC,gBAAgB,CAAC,IAAI,EAAE,KAAK;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACtB,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAA;QACxB,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAM;QACR,CAAC;QACD,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAM;QACR,CAAC;QACD,yEAAyE;QACzE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,OAAM;QACR,CAAC;QACD,6EAA6E;QAC7E,IAAI,eAAe,CAAC,EAAE,CAAC,KAAK,SAAS,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3E,OAAM;QACR,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,MAAM,OAAO,GAAG,eAAe,CAAC,EAAE,CAAC,CAAA;QACnC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACzB,CAAC;QACD,KAAK,CAAC,OAAO,GAAG,IAAI,CAAA;IACtB,CAAC;CACF,CAAA;AAED,MAAM,cAAc,GAAG,IAAI,GAAG,CAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;AAExF,SAAS,cAAc,CAAC,EAAU;IAChC,OAAO,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,eAAe,GAAmD;IACtE,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;CACX,CAAA;AAED,yEAAyE;AACzE,SAAS,yBAAyB,CAAC,IAAkB;IACnD,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAA;AAClE,CAAC;AAED,4EAA4E;AAC5E,SAAS,yBAAyB,CAAC,IAAY;IAC7C,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjE,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;QAC1B,OAAO,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjD,CAAC;IACD,OAAO,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACrF,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAkB;IAC/C,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/D,OAAO,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC7C,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "webfuscator",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.3",
|
|
4
4
|
"description": "JavaScript obfuscator built on Babel",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"babel",
|
|
@@ -43,32 +43,16 @@
|
|
|
43
43
|
"publishConfig": {
|
|
44
44
|
"access": "public"
|
|
45
45
|
},
|
|
46
|
-
"scripts": {
|
|
47
|
-
"prepublishOnly": "pnpm --workspace-root check",
|
|
48
|
-
"prepack": "pnpm run package-files:check && pnpm run build",
|
|
49
|
-
"build": "node --eval \"require('node:fs').rmSync('dist', { force: true, recursive: true })\" && tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && node scripts/verify-dist.mjs",
|
|
50
|
-
"package-files:check": "node scripts/sync-package-files.mjs --check",
|
|
51
|
-
"package-files:sync": "node scripts/sync-package-files.mjs",
|
|
52
|
-
"test": "vitest run",
|
|
53
|
-
"test:watch": "vitest",
|
|
54
|
-
"typecheck": "tsc --noEmit"
|
|
55
|
-
},
|
|
56
46
|
"dependencies": {
|
|
57
47
|
"@babel/generator": "^8.0.0",
|
|
58
48
|
"@babel/parser": "^8.0.4",
|
|
59
49
|
"@babel/traverse": "^8.0.4",
|
|
60
50
|
"@babel/types": "^8.0.4"
|
|
61
51
|
},
|
|
62
|
-
"devDependencies": {
|
|
63
|
-
"@types/node": "catalog:",
|
|
64
|
-
"tsc-alias": "^1.9.2",
|
|
65
|
-
"typescript": "catalog:",
|
|
66
|
-
"vitest": "^4.1.11"
|
|
67
|
-
},
|
|
68
52
|
"engines": {
|
|
69
53
|
"node": "^22.18.0 || >=24.11.0"
|
|
70
54
|
},
|
|
71
55
|
"contentPolicy": {
|
|
72
56
|
"class": "dual-use"
|
|
73
57
|
}
|
|
74
|
-
}
|
|
58
|
+
}
|
package/src/obfuscator.ts
CHANGED
|
@@ -38,6 +38,7 @@ import { objectMethodToProperty } from './transforms/object-method-to-property'
|
|
|
38
38
|
import { optionalChainingToTernary } from './transforms/optional-chaining-to-ternary'
|
|
39
39
|
import { pack } from './transforms/pack'
|
|
40
40
|
import { packDeclarationsIntoParameters } from './transforms/pack-declarations-into-parameters'
|
|
41
|
+
import { packExpressions } from './transforms/pack-expressions'
|
|
41
42
|
import { removeAnonymousFunctionNames } from './transforms/remove-anonymous-function-names'
|
|
42
43
|
import { removeUnreachableCode } from './transforms/remove-unreachable-code'
|
|
43
44
|
import { removeUnusedCode } from './transforms/remove-unused-code'
|
|
@@ -144,12 +145,17 @@ const POST_PROCESS: readonly ConfigurablePhase[] = [
|
|
|
144
145
|
// generated vault bindings use the caller's name generator.
|
|
145
146
|
const PROTECTION: readonly ConfigurablePhase[] = [['concealStrings', concealStrings]]
|
|
146
147
|
|
|
147
|
-
//
|
|
148
|
+
// All binding-producing passes run before renaming so their generated
|
|
149
|
+
// identifiers also receive names from the configured string generator.
|
|
148
150
|
const RENAME: readonly ConfigurablePhase[] = [['renameIdentifiers', renameIdentifiers]]
|
|
149
151
|
|
|
152
|
+
// Expression packing consumes final statement shapes and creates no bindings,
|
|
153
|
+
// so it runs after renaming and before whole-program packing.
|
|
154
|
+
const FINAL_SHAPE: readonly ConfigurablePhase[] = [['packExpressions', packExpressions]]
|
|
155
|
+
|
|
150
156
|
// Packing serializes the finished program to a string and rebuilds it through
|
|
151
157
|
// the Function constructor. It must see final names and shapes, so it runs after
|
|
152
|
-
// every other rewrite
|
|
158
|
+
// every other rewrite.
|
|
153
159
|
const PACK: readonly ConfigurablePhase[] = [['pack', pack]]
|
|
154
160
|
|
|
155
161
|
// Tests derive their all-transforms setup from this list. The phase tables remain
|
|
@@ -162,6 +168,7 @@ export const CONFIGURABLE_TRANSFORM_NAMES: readonly TransformName[] = [
|
|
|
162
168
|
...POST_PROCESS,
|
|
163
169
|
...PROTECTION,
|
|
164
170
|
...RENAME,
|
|
171
|
+
...FINAL_SHAPE,
|
|
165
172
|
...PACK,
|
|
166
173
|
].map(([name]) => name)
|
|
167
174
|
|
|
@@ -175,7 +182,7 @@ export function obfuscate(code: string, options: ObfuscatorOptions = {}): string
|
|
|
175
182
|
const ast = run(log, 'parse', () => parse(code, parserOptions))
|
|
176
183
|
|
|
177
184
|
for (const [name, fn] of BEFORE_PREPARATION) {
|
|
178
|
-
if (!
|
|
185
|
+
if (!shouldRun(name, options)) {
|
|
179
186
|
continue
|
|
180
187
|
}
|
|
181
188
|
run(log, name, () => fn(ast, ctxFor(name, options, baseCtx)))
|
|
@@ -186,7 +193,7 @@ export function obfuscate(code: string, options: ObfuscatorOptions = {}): string
|
|
|
186
193
|
}
|
|
187
194
|
|
|
188
195
|
for (const [name, fn] of PRE_LOOP) {
|
|
189
|
-
if (!
|
|
196
|
+
if (!shouldRun(name, options)) {
|
|
190
197
|
continue
|
|
191
198
|
}
|
|
192
199
|
run(log, name, () => fn(ast, ctxFor(name, options, baseCtx)))
|
|
@@ -195,35 +202,42 @@ export function obfuscate(code: string, options: ObfuscatorOptions = {}): string
|
|
|
195
202
|
runFixedPoint(ast, options, baseCtx, log)
|
|
196
203
|
|
|
197
204
|
for (const [name, fn] of LOWERING) {
|
|
198
|
-
if (!
|
|
205
|
+
if (!shouldRun(name, options)) {
|
|
199
206
|
continue
|
|
200
207
|
}
|
|
201
208
|
run(log, name, () => fn(ast, ctxFor(name, options, baseCtx)))
|
|
202
209
|
}
|
|
203
210
|
|
|
204
211
|
for (const [name, fn] of POST_PROCESS) {
|
|
205
|
-
if (!
|
|
212
|
+
if (!shouldRun(name, options)) {
|
|
206
213
|
continue
|
|
207
214
|
}
|
|
208
215
|
run(log, name, () => fn(ast, ctxFor(name, options, baseCtx)))
|
|
209
216
|
}
|
|
210
217
|
|
|
211
218
|
for (const [name, fn] of PROTECTION) {
|
|
212
|
-
if (!
|
|
219
|
+
if (!shouldRun(name, options)) {
|
|
213
220
|
continue
|
|
214
221
|
}
|
|
215
222
|
run(log, name, () => fn(ast, ctxFor(name, options, baseCtx)))
|
|
216
223
|
}
|
|
217
224
|
|
|
218
225
|
for (const [name, fn] of RENAME) {
|
|
219
|
-
if (!
|
|
226
|
+
if (!shouldRun(name, options)) {
|
|
227
|
+
continue
|
|
228
|
+
}
|
|
229
|
+
run(log, name, () => fn(ast, ctxFor(name, options, baseCtx)))
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
for (const [name, fn] of FINAL_SHAPE) {
|
|
233
|
+
if (!shouldRun(name, options)) {
|
|
220
234
|
continue
|
|
221
235
|
}
|
|
222
236
|
run(log, name, () => fn(ast, ctxFor(name, options, baseCtx)))
|
|
223
237
|
}
|
|
224
238
|
|
|
225
239
|
for (const [name, fn] of PACK) {
|
|
226
|
-
if (!
|
|
240
|
+
if (!shouldRun(name, options)) {
|
|
227
241
|
continue
|
|
228
242
|
}
|
|
229
243
|
run(log, name, () => fn(ast, ctxFor(name, options, baseCtx)))
|
|
@@ -242,7 +256,7 @@ export function obfuscate(code: string, options: ObfuscatorOptions = {}): string
|
|
|
242
256
|
)
|
|
243
257
|
}
|
|
244
258
|
|
|
245
|
-
function
|
|
259
|
+
function shouldRun(name: TransformName, options: ObfuscatorOptions): boolean {
|
|
246
260
|
const entry = options.transforms?.[name]
|
|
247
261
|
return entry !== undefined && entry !== false
|
|
248
262
|
}
|
|
@@ -277,14 +291,14 @@ function runFixedPoint(
|
|
|
277
291
|
ctx: TransformContext,
|
|
278
292
|
log: Logger | null,
|
|
279
293
|
): void {
|
|
280
|
-
const
|
|
281
|
-
if (
|
|
294
|
+
const transforms = FIXED_POINT.filter(([name]) => shouldRun(name, options))
|
|
295
|
+
if (transforms.length === 0) {
|
|
282
296
|
return
|
|
283
297
|
}
|
|
284
298
|
|
|
285
299
|
for (let iter = 0; iter < FIXED_POINT_ITERATION_CAP; iter++) {
|
|
286
300
|
let any = false
|
|
287
|
-
for (const [name, fn] of
|
|
301
|
+
for (const [name, fn] of transforms) {
|
|
288
302
|
if (run(log, name, () => fn(ast, ctx))) {
|
|
289
303
|
any = true
|
|
290
304
|
}
|
package/src/options.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { StringGeneratorModeOption } from './utils/string-generator'
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Exported transform entry points. Preparation passes
|
|
5
|
-
*
|
|
4
|
+
* Exported transform entry points. Preparation passes always run and do not
|
|
5
|
+
* appear here.
|
|
6
6
|
*/
|
|
7
7
|
export type TransformName =
|
|
8
8
|
| 'dropConsole'
|
|
@@ -41,9 +41,10 @@ export type TransformName =
|
|
|
41
41
|
| 'concealStrings'
|
|
42
42
|
| 'mangleProperties'
|
|
43
43
|
| 'renameIdentifiers'
|
|
44
|
+
| 'packExpressions'
|
|
44
45
|
| 'pack'
|
|
45
46
|
|
|
46
|
-
// An
|
|
47
|
+
// An options object runs the transform and replaces its string-generator mode.
|
|
47
48
|
type TransformEntry = boolean | { stringGeneratorMode?: StringGeneratorModeOption }
|
|
48
49
|
|
|
49
50
|
/** Maps a zero-based ordinal to a stable property name. */
|
|
@@ -130,21 +131,22 @@ export interface ObfuscatorOptions {
|
|
|
130
131
|
/** Logs each pipeline step and its elapsed milliseconds to stderr. */
|
|
131
132
|
verbose?: boolean
|
|
132
133
|
/**
|
|
133
|
-
* Per-transform
|
|
134
|
-
*
|
|
134
|
+
* Per-transform entries and string-generator overrides. An omitted key or
|
|
135
|
+
* `false` means that transform does not run. Preparation passes always run.
|
|
135
136
|
*/
|
|
136
137
|
transforms?: TransformsMap
|
|
137
138
|
/**
|
|
138
|
-
*
|
|
139
|
-
* array mixes modes uniformly. Individual transforms may
|
|
140
|
-
* `transforms.<name>.stringGeneratorMode`. Default
|
|
139
|
+
* Mode used by transforms that run for generated identifiers, labels, and
|
|
140
|
+
* string contents. An array mixes modes uniformly. Individual transforms may
|
|
141
|
+
* override it through `transforms.<name>.stringGeneratorMode`. Default
|
|
142
|
+
* `'mangled'`.
|
|
141
143
|
*/
|
|
142
144
|
stringGeneratorMode?: StringGeneratorModeOption
|
|
143
|
-
/** Seed
|
|
145
|
+
/** Seed used by randomized transforms that run. Same seed, same output. Default `0`. */
|
|
144
146
|
seed?: number
|
|
145
147
|
}
|
|
146
148
|
|
|
147
|
-
// Resolved per-call
|
|
149
|
+
// Resolved per-call settings handed to each executed pass.
|
|
148
150
|
export interface TransformContext {
|
|
149
151
|
concealStrings?: ConcealStringsOptions
|
|
150
152
|
mangleProperties?: ManglePropertiesOptions
|
|
@@ -8,11 +8,8 @@ import type { ChangeState } from '../utils/change-tracking'
|
|
|
8
8
|
import { isInStrictContext } from '../utils/paths'
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
* Replaces numeric `arguments[i]` reads with the corresponding
|
|
12
|
-
* sloppy functions with simple parameter lists.
|
|
13
|
-
* that index is written or its parameter is reassigned. Reassigning, deleting,
|
|
14
|
-
* or passing around `arguments` disables the rewrite. Missing parameters are
|
|
15
|
-
* never added because that would change `fn.length`.
|
|
11
|
+
* Replaces eligible numeric `arguments[i]` reads with the corresponding
|
|
12
|
+
* parameter in sloppy functions with simple parameter lists.
|
|
16
13
|
*
|
|
17
14
|
* @example
|
|
18
15
|
* // ◀️ before
|
|
@@ -6,10 +6,9 @@ import { traverseForChanges } from '../utils/change-tracking'
|
|
|
6
6
|
import type { ChangeState } from '../utils/change-tracking'
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Converts
|
|
10
|
-
* Arrows that use `super`
|
|
11
|
-
*
|
|
12
|
-
* function can be constructed with `new` and has a `prototype`.
|
|
9
|
+
* Converts eligible arrow functions to function expressions while preserving
|
|
10
|
+
* their lexical captures. Arrows that use `super` or whose values escape stay
|
|
11
|
+
* unchanged.
|
|
13
12
|
*
|
|
14
13
|
* @example
|
|
15
14
|
* // ◀️ before
|
|
@@ -15,9 +15,8 @@ import { valueToLiteral } from '../utils/literal'
|
|
|
15
15
|
import { isCalleeOrTagOf } from '../utils/paths'
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* another.
|
|
18
|
+
* Replaces eligible single-use temporary bindings with their values and removes
|
|
19
|
+
* the declarations.
|
|
21
20
|
*
|
|
22
21
|
* @example
|
|
23
22
|
* // ◀️ before
|
|
@@ -11,25 +11,8 @@ import { mulberry32, shuffleInPlace } from '../utils/random'
|
|
|
11
11
|
const RECORD_WIDTH = 4
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
-
* Replaces runtime string literals with calls to a generated decoder
|
|
15
|
-
*
|
|
16
|
-
* surrogates without relying on mutable built-ins. The default `regional` pool
|
|
17
|
-
* covers U+0000-00FF and every 256-unit page used by the program. `full` covers
|
|
18
|
-
* all 65,536 code units.
|
|
19
|
-
*
|
|
20
|
-
* `scope: 'program'` creates one vault. `scope: 'function'` creates a vault per
|
|
21
|
-
* function but repeats the program-wide pool in each one. Parameter defaults and
|
|
22
|
-
* computed keys use the enclosing vault because they run before the function
|
|
23
|
-
* body.
|
|
24
|
-
*
|
|
25
|
-
* Directives, module specifiers, import attributes, and non-computed keys are not
|
|
26
|
-
* runtime expressions, so they stay unchanged.
|
|
27
|
-
*
|
|
28
|
-
* This is obfuscation, not encryption. The output contains the decoder and all
|
|
29
|
-
* data needed to recover each string. `cover: 'used'` also leaves one-unit
|
|
30
|
-
* strings in the pool and may reproduce longer text by chance.
|
|
31
|
-
*
|
|
32
|
-
* The example uses `{ cover: 'used' }` to keep the pool short.
|
|
14
|
+
* Replaces runtime string literals with calls to a generated decoder backed by
|
|
15
|
+
* an obfuscated string vault.
|
|
33
16
|
*
|
|
34
17
|
* @example
|
|
35
18
|
* // ◀️ before
|
|
@@ -4,10 +4,9 @@ import * as t from '@babel/types'
|
|
|
4
4
|
import type { File } from '@babel/types'
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* Converts `let` and `const` declarations to `var
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* iteration's value.
|
|
7
|
+
* Converts eligible `let` and `const` declarations to `var`, renaming bindings
|
|
8
|
+
* when needed to avoid hoisting conflicts. Loop bindings stay unchanged when
|
|
9
|
+
* conversion would alter iteration behavior.
|
|
11
10
|
*
|
|
12
11
|
* @example
|
|
13
12
|
* // ◀️ before
|
|
@@ -7,9 +7,8 @@ import type { ChangeState } from '../utils/change-tracking'
|
|
|
7
7
|
import { collectLoopLabels, generateLoopLabel, redirectContinues } from '../utils/loop-lowering'
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
* Rewrites `do` loops as `while
|
|
11
|
-
*
|
|
12
|
-
* The inner label is omitted when nothing uses it.
|
|
10
|
+
* Rewrites `do...while` loops as equivalent `while` loops while preserving
|
|
11
|
+
* `continue` behavior.
|
|
13
12
|
*
|
|
14
13
|
* @example
|
|
15
14
|
* // ◀️ before
|
|
@@ -8,10 +8,7 @@ import { traverseForChanges } from '../utils/change-tracking'
|
|
|
8
8
|
import type { ChangeState } from '../utils/change-tracking'
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
* Removes `console
|
|
12
|
-
* locally shadowed. Matches dot, bracket, and optional-chain forms.
|
|
13
|
-
* Leaves indirect uses alone (`console.log.call(...)`, assignments,
|
|
14
|
-
* `await console.log(...)`).
|
|
11
|
+
* Removes eligible `console` call expression statements.
|
|
15
12
|
*
|
|
16
13
|
* @example
|
|
17
14
|
* // ◀️ before
|
|
@@ -6,14 +6,8 @@ import { traverseForChanges } from '../utils/change-tracking'
|
|
|
6
6
|
import type { ChangeState } from '../utils/change-tracking'
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* Member objects and computed keys are cached so the read and write use the same
|
|
13
|
-
* evaluated receiver. The cache assignment stays on the outer write target,
|
|
14
|
-
* which evaluates before its right side.
|
|
15
|
-
*
|
|
16
|
-
* Compound and expanded forms use the same operator semantics, including BigInt.
|
|
9
|
+
* Expands arithmetic and bitwise compound assignments into simple assignments
|
|
10
|
+
* while preserving single evaluation of member receivers and computed keys.
|
|
17
11
|
*
|
|
18
12
|
* @example
|
|
19
13
|
* // ◀️ before
|
|
@@ -6,8 +6,9 @@ import { traverseForChanges } from '../utils/change-tracking'
|
|
|
6
6
|
import type { ChangeState } from '../utils/change-tracking'
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* Expands logical compound assignments into equivalent short-circuiting
|
|
10
|
+
* assignments while preserving single evaluation of member receivers and
|
|
11
|
+
* computed keys.
|
|
11
12
|
*
|
|
12
13
|
* @example
|
|
13
14
|
* // ◀️ before
|