javascript-obfuscator 5.4.2 → 5.4.4
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/CHANGELOG.md +11 -0
- package/CLAUDE.md +9 -2
- package/README.md +22 -5
- package/dist/index.browser.js +19 -4
- package/dist/index.browser.js.map +1 -1
- package/dist/index.cli.js +1 -1
- package/dist/index.cli.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/typings/src/analyzers/scope-analyzer/ScopeAnalyzer.d.ts +2 -0
- package/typings/src/container/InversifyContainerFacade.d.ts +6 -6
- package/typings/src/container/modules/analyzers/AnalyzersModule.d.ts +2 -2
- package/typings/src/container/modules/code-transformers/CodeTransformersModule.d.ts +2 -2
- package/typings/src/container/modules/custom-code-helpers/CustomCodeHelpersModule.d.ts +2 -2
- package/typings/src/container/modules/custom-nodes/CustomNodesModule.d.ts +2 -2
- package/typings/src/container/modules/generators/GeneratorsModule.d.ts +2 -2
- package/typings/src/container/modules/node/NodeModule.d.ts +2 -2
- package/typings/src/container/modules/node-transformers/ControlFlowTransformersModule.d.ts +2 -2
- package/typings/src/container/modules/node-transformers/ConvertingTransformersModule.d.ts +2 -2
- package/typings/src/container/modules/node-transformers/DeadCodeInjectionTransformersModule.d.ts +2 -2
- package/typings/src/container/modules/node-transformers/FinalizingTransformersModule.d.ts +2 -2
- package/typings/src/container/modules/node-transformers/InitializingTransformersModule.d.ts +2 -2
- package/typings/src/container/modules/node-transformers/NodeTransformersModule.d.ts +2 -2
- package/typings/src/container/modules/node-transformers/PreparingTransformersModule.d.ts +2 -2
- package/typings/src/container/modules/node-transformers/RenameIdentifiersTransformersModule.d.ts +2 -2
- package/typings/src/container/modules/node-transformers/RenamePropertiesTransformersModule.d.ts +2 -2
- package/typings/src/container/modules/node-transformers/SimplifyingTransformersModule.d.ts +2 -2
- package/typings/src/container/modules/node-transformers/StringArrayTransformersModule.d.ts +2 -2
- package/typings/src/container/modules/options/OptionsModule.d.ts +2 -2
- package/typings/src/container/modules/storages/StoragesModule.d.ts +2 -2
- package/typings/src/container/modules/utils/UtilsModule.d.ts +2 -2
- package/typings/src/interfaces/analyzers/scope-analyzer/IScopeAnalyzer.d.ts +1 -0
- package/typings/src/interfaces/container/IInversifyContainerFacade.d.ts +3 -3
- package/typings/src/interfaces/node/IScopeIdentifiersTraverser.d.ts +2 -2
- package/typings/src/interfaces/node-transformers/INodeTransformer.d.ts +1 -0
- package/typings/src/node/ScopeIdentifiersTraverser.d.ts +3 -2
- package/typings/src/node-transformers/AbstractNodeTransformer.d.ts +1 -0
- package/typings/src/node-transformers/NodeTransformersRunner.d.ts +3 -0
- package/typings/src/node-transformers/dead-code-injection-transformers/DeadCodeInjectionIdentifiersTransformer.d.ts +1 -1
- package/typings/src/node-transformers/preparing-transformers/VariablePreserveTransformer.d.ts +3 -1
- package/typings/src/node-transformers/rename-identifiers-transformers/ScopeIdentifiersTransformer.d.ts +4 -1
- package/typings/src/node-transformers/rename-identifiers-transformers/ScopeThroughIdentifiersTransformer.d.ts +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
Change Log
|
|
2
2
|
|
|
3
|
+
v5.4.4
|
|
4
|
+
---
|
|
5
|
+
* Optimized scope identifiers transformer performance
|
|
6
|
+
* Optimized identifier renaming performance by reusing scope analysis between transformers
|
|
7
|
+
* Fixed `Invalid regular expression` error when obfuscating code that uses ES2025 RegExp pattern modifiers (e.g. `/(?i:abc)/`). Fixes https://github.com/javascript-obfuscator/javascript-obfuscator/issues/1410
|
|
8
|
+
* Fixed `SyntaxError` when obfuscating a class that extends a boolean literal (e.g. `class C extends true {}`). Fixes https://github.com/javascript-obfuscator/javascript-obfuscator/issues/1131
|
|
9
|
+
|
|
10
|
+
v5.4.3
|
|
11
|
+
---
|
|
12
|
+
* Fixed `controlFlowFlattening` occasionally dropping the `?.` short-circuit on `foo?.(arg)` calls, causing `TypeError: <X> is not a function`. Fixes https://github.com/javascript-obfuscator/javascript-obfuscator/issues/1408
|
|
13
|
+
|
|
3
14
|
v5.4.2
|
|
4
15
|
---
|
|
5
16
|
* Fixed obfuscated code hanging in Bun when `selfDefending` is enabled. Fixes https://github.com/javascript-obfuscator/javascript-obfuscator/issues/1404
|
package/CLAUDE.md
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
- **Parser**: Acorn 8.8.2 (ES3-ES2020 support)
|
|
43
43
|
- **Code Generator**: @javascript-obfuscator/escodegen 2.3.0
|
|
44
44
|
- **AST Traversal**: @javascript-obfuscator/estraverse 5.4.0
|
|
45
|
-
- **DI Framework**: InversifyJS
|
|
45
|
+
- **DI Framework**: InversifyJS 7.10.8
|
|
46
46
|
- **Testing**: Mocha 10.4.0 + Chai 4.3.7
|
|
47
47
|
- **Build System**: Webpack 5.75.0
|
|
48
48
|
|
|
@@ -210,7 +210,7 @@ The obfuscation process follows a multi-stage pipeline defined in `JavaScriptObf
|
|
|
210
210
|
|
|
211
211
|
### Dependency Injection Architecture
|
|
212
212
|
|
|
213
|
-
The project uses **InversifyJS** for dependency injection, providing:
|
|
213
|
+
The project uses **InversifyJS v7** for dependency injection, providing:
|
|
214
214
|
|
|
215
215
|
- **Modularity**: Clean separation of concerns
|
|
216
216
|
- **Testability**: Easy mocking and testing
|
|
@@ -219,6 +219,13 @@ The project uses **InversifyJS** for dependency injection, providing:
|
|
|
219
219
|
|
|
220
220
|
All components are registered in container modules located in `src/container/modules/`.
|
|
221
221
|
|
|
222
|
+
**Key Changes in InversifyJS v7:**
|
|
223
|
+
- Container modules now use `ContainerModuleLoadOptions` instead of separate `bind`, `unbind`, etc. parameters
|
|
224
|
+
- `getNamed`, `getTagged`, etc. are replaced by `get(serviceId, { name: ... })` or `get(serviceId, { tag: ... })`
|
|
225
|
+
- `load()` and `unload()` are now async, with `loadSync()` and `unloadSync()` alternatives for synchronous operations
|
|
226
|
+
- Types like `Context`, `Newable`, `Factory` are now directly exported instead of through `interfaces` namespace
|
|
227
|
+
- Custom metadata and middleware features have been removed
|
|
228
|
+
|
|
222
229
|
## Key Components Deep Dive
|
|
223
230
|
|
|
224
231
|
### 1. JavaScriptObfuscator (Main Engine)
|
package/README.md
CHANGED
|
@@ -4,17 +4,34 @@
|
|
|
4
4
|
Author: Timofei Kachalov
|
|
5
5
|
-->
|
|
6
6
|
|
|
7
|
-
#### You can support this project by donating:
|
|
8
|
-
* (Github) https://github.com/sponsors/sanex3339
|
|
9
|
-
|
|
10
|
-
Huge thanks to all supporters!
|
|
11
|
-
|
|
12
7
|
# JavaScript obfuscator
|
|
13
8
|
|
|
14
9
|

|
|
15
10
|
|
|
16
11
|
---
|
|
17
12
|
|
|
13
|
+
### Do you use JavaScript Obfuscator at your company?
|
|
14
|
+
|
|
15
|
+
JavaScript Obfuscator has reached over **1 million npm downloads per week**. I am currently preparing an **EB-1 immigration case** and collecting independent evidence of the project’s real-world professional usage and impact.
|
|
16
|
+
|
|
17
|
+
If you use JavaScript Obfuscator in a company project — especially at a well-known company, large organization, or widely used product — I would be very grateful if you could contact me.
|
|
18
|
+
|
|
19
|
+
Helpful evidence may include a brief confirmation or, ideally, a 1–2 page reference letter describing:
|
|
20
|
+
|
|
21
|
+
- how your team or company used JavaScript Obfuscator;
|
|
22
|
+
- why you chose it;
|
|
23
|
+
- what problem it helped solve;
|
|
24
|
+
- whether it was used in production or an important internal workflow;
|
|
25
|
+
- your role and how you are familiar with the usage.
|
|
26
|
+
|
|
27
|
+
I can provide a simple draft/template to make this easy.
|
|
28
|
+
|
|
29
|
+
Please contact me at: **referenceletter@obfuscator.io**
|
|
30
|
+
|
|
31
|
+
Thank you for supporting the project.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
18
35
|
### :rocket: Obfuscator.io with VM Obfuscation
|
|
19
36
|
|
|
20
37
|
**Obfuscator.io** adds **VM-based bytecode obfuscation** to this package - your JavaScript functions are compiled to custom bytecode that runs on an embedded virtual machine. Each build produces unique opcodes and VM structure, making reverse engineering and automated deobfuscation dramatically harder.
|