javascript-obfuscator 5.4.2 → 5.4.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.
Files changed (32) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/CLAUDE.md +9 -2
  3. package/README.md +22 -5
  4. package/dist/index.browser.js +19 -4
  5. package/dist/index.browser.js.map +1 -1
  6. package/dist/index.cli.js +1 -1
  7. package/dist/index.cli.js.map +1 -1
  8. package/dist/index.js +1 -1
  9. package/dist/index.js.map +1 -1
  10. package/package.json +2 -2
  11. package/typings/src/container/InversifyContainerFacade.d.ts +6 -6
  12. package/typings/src/container/modules/analyzers/AnalyzersModule.d.ts +2 -2
  13. package/typings/src/container/modules/code-transformers/CodeTransformersModule.d.ts +2 -2
  14. package/typings/src/container/modules/custom-code-helpers/CustomCodeHelpersModule.d.ts +2 -2
  15. package/typings/src/container/modules/custom-nodes/CustomNodesModule.d.ts +2 -2
  16. package/typings/src/container/modules/generators/GeneratorsModule.d.ts +2 -2
  17. package/typings/src/container/modules/node/NodeModule.d.ts +2 -2
  18. package/typings/src/container/modules/node-transformers/ControlFlowTransformersModule.d.ts +2 -2
  19. package/typings/src/container/modules/node-transformers/ConvertingTransformersModule.d.ts +2 -2
  20. package/typings/src/container/modules/node-transformers/DeadCodeInjectionTransformersModule.d.ts +2 -2
  21. package/typings/src/container/modules/node-transformers/FinalizingTransformersModule.d.ts +2 -2
  22. package/typings/src/container/modules/node-transformers/InitializingTransformersModule.d.ts +2 -2
  23. package/typings/src/container/modules/node-transformers/NodeTransformersModule.d.ts +2 -2
  24. package/typings/src/container/modules/node-transformers/PreparingTransformersModule.d.ts +2 -2
  25. package/typings/src/container/modules/node-transformers/RenameIdentifiersTransformersModule.d.ts +2 -2
  26. package/typings/src/container/modules/node-transformers/RenamePropertiesTransformersModule.d.ts +2 -2
  27. package/typings/src/container/modules/node-transformers/SimplifyingTransformersModule.d.ts +2 -2
  28. package/typings/src/container/modules/node-transformers/StringArrayTransformersModule.d.ts +2 -2
  29. package/typings/src/container/modules/options/OptionsModule.d.ts +2 -2
  30. package/typings/src/container/modules/storages/StoragesModule.d.ts +2 -2
  31. package/typings/src/container/modules/utils/UtilsModule.d.ts +2 -2
  32. package/typings/src/interfaces/container/IInversifyContainerFacade.d.ts +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  Change Log
2
2
 
3
+ v5.4.3
4
+ ---
5
+ * 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
6
+
3
7
  v5.4.2
4
8
  ---
5
9
  * 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 6.0.1
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
  ![logo](https://raw.githubusercontent.com/javascript-obfuscator/javascript-obfuscator/master/images/logo.png)
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.