webfuscator 1.2.1 → 1.3.0

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 (110) hide show
  1. package/dist/analysis/constant.js +3 -4
  2. package/dist/analysis/constant.js.map +1 -1
  3. package/dist/analysis/inlineability.js +1 -1
  4. package/dist/analysis/inlineability.js.map +1 -1
  5. package/dist/index.d.ts +1 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/obfuscator.d.ts +2 -1
  8. package/dist/obfuscator.d.ts.map +1 -1
  9. package/dist/obfuscator.js +47 -12
  10. package/dist/obfuscator.js.map +1 -1
  11. package/dist/options.d.ts +17 -4
  12. package/dist/options.d.ts.map +1 -1
  13. package/dist/preparation/expand-destructuring.d.ts +3 -3
  14. package/dist/preparation/expand-destructuring.js +6 -6
  15. package/dist/preparation/expand-destructuring.js.map +1 -1
  16. package/dist/transforms/arrow-to-function.js +3 -5
  17. package/dist/transforms/arrow-to-function.js.map +1 -1
  18. package/dist/transforms/conceal-strings.d.ts +57 -0
  19. package/dist/transforms/conceal-strings.d.ts.map +1 -0
  20. package/dist/transforms/conceal-strings.js +361 -0
  21. package/dist/transforms/conceal-strings.js.map +1 -0
  22. package/dist/transforms/const-let-to-var.d.ts +3 -3
  23. package/dist/transforms/const-let-to-var.d.ts.map +1 -1
  24. package/dist/transforms/const-let-to-var.js +36 -9
  25. package/dist/transforms/const-let-to-var.js.map +1 -1
  26. package/dist/transforms/const-to-let.d.ts +2 -3
  27. package/dist/transforms/const-to-let.d.ts.map +1 -1
  28. package/dist/transforms/const-to-let.js +3 -5
  29. package/dist/transforms/const-to-let.js.map +1 -1
  30. package/dist/transforms/fold-builtin-methods.d.ts.map +1 -1
  31. package/dist/transforms/fold-builtin-methods.js +48 -10
  32. package/dist/transforms/fold-builtin-methods.js.map +1 -1
  33. package/dist/transforms/fold-constants.js +3 -0
  34. package/dist/transforms/fold-constants.js.map +1 -1
  35. package/dist/transforms/hoist-variables.d.ts +30 -0
  36. package/dist/transforms/hoist-variables.d.ts.map +1 -0
  37. package/dist/transforms/hoist-variables.js +224 -0
  38. package/dist/transforms/hoist-variables.js.map +1 -0
  39. package/dist/transforms/inline-functions.js +3 -4
  40. package/dist/transforms/inline-functions.js.map +1 -1
  41. package/dist/transforms/mangle-properties.js +7 -4
  42. package/dist/transforms/mangle-properties.js.map +1 -1
  43. package/dist/transforms/merge-variable-declarations.d.ts +17 -0
  44. package/dist/transforms/merge-variable-declarations.d.ts.map +1 -0
  45. package/dist/transforms/merge-variable-declarations.js +68 -0
  46. package/dist/transforms/merge-variable-declarations.js.map +1 -0
  47. package/dist/transforms/numbers-to-strings.d.ts.map +1 -1
  48. package/dist/transforms/numbers-to-strings.js +1 -8
  49. package/dist/transforms/numbers-to-strings.js.map +1 -1
  50. package/dist/transforms/pack-declarations-into-parameters.js +1 -5
  51. package/dist/transforms/pack-declarations-into-parameters.js.map +1 -1
  52. package/dist/transforms/pack.d.ts +5 -7
  53. package/dist/transforms/pack.d.ts.map +1 -1
  54. package/dist/transforms/pack.js +10 -17
  55. package/dist/transforms/pack.js.map +1 -1
  56. package/dist/transforms/remove-unused-code.d.ts.map +1 -1
  57. package/dist/transforms/remove-unused-code.js +7 -39
  58. package/dist/transforms/remove-unused-code.js.map +1 -1
  59. package/dist/transforms/rename-identifiers.d.ts.map +1 -1
  60. package/dist/transforms/rename-identifiers.js +29 -17
  61. package/dist/transforms/rename-identifiers.js.map +1 -1
  62. package/dist/transforms/reorder-function-declarations.d.ts +25 -0
  63. package/dist/transforms/reorder-function-declarations.d.ts.map +1 -0
  64. package/dist/transforms/reorder-function-declarations.js +64 -0
  65. package/dist/transforms/reorder-function-declarations.js.map +1 -0
  66. package/dist/transforms/specials-to-strings.js +4 -3
  67. package/dist/transforms/specials-to-strings.js.map +1 -1
  68. package/dist/transforms/update-to-assignment.js +1 -16
  69. package/dist/transforms/update-to-assignment.js.map +1 -1
  70. package/dist/utils/ast.d.ts +1 -2
  71. package/dist/utils/ast.d.ts.map +1 -1
  72. package/dist/utils/ast.js +12 -42
  73. package/dist/utils/ast.js.map +1 -1
  74. package/dist/utils/literal.d.ts.map +1 -1
  75. package/dist/utils/literal.js +74 -2
  76. package/dist/utils/literal.js.map +1 -1
  77. package/dist/utils/statement-lists.d.ts +9 -0
  78. package/dist/utils/statement-lists.d.ts.map +1 -0
  79. package/dist/utils/statement-lists.js +27 -0
  80. package/dist/utils/statement-lists.js.map +1 -0
  81. package/package.json +10 -12
  82. package/src/analysis/constant.ts +3 -6
  83. package/src/analysis/inlineability.ts +1 -1
  84. package/src/index.ts +1 -0
  85. package/src/obfuscator.ts +51 -14
  86. package/src/options.ts +21 -3
  87. package/src/preparation/expand-destructuring.ts +6 -6
  88. package/src/transforms/arrow-to-function.ts +3 -5
  89. package/src/transforms/conceal-strings.ts +530 -0
  90. package/src/transforms/const-let-to-var.ts +37 -9
  91. package/src/transforms/const-to-let.ts +3 -5
  92. package/src/transforms/fold-builtin-methods.ts +67 -12
  93. package/src/transforms/fold-constants.ts +3 -0
  94. package/src/transforms/hoist-variables.ts +272 -0
  95. package/src/transforms/inline-functions.ts +3 -4
  96. package/src/transforms/mangle-properties.ts +7 -7
  97. package/src/transforms/merge-variable-declarations.ts +91 -0
  98. package/src/transforms/numbers-to-strings.ts +2 -12
  99. package/src/transforms/pack-declarations-into-parameters.ts +1 -5
  100. package/src/transforms/pack.ts +10 -18
  101. package/src/transforms/remove-unused-code.ts +9 -64
  102. package/src/transforms/rename-identifiers.ts +42 -17
  103. package/src/transforms/reorder-function-declarations.ts +80 -0
  104. package/src/transforms/specials-to-strings.ts +4 -3
  105. package/src/transforms/update-to-assignment.ts +1 -17
  106. package/src/utils/ast.ts +15 -51
  107. package/src/utils/literal.ts +91 -2
  108. package/src/utils/statement-lists.ts +45 -0
  109. package/DISCLOSURE +0 -9
  110. package/README.md +0 -67
package/README.md DELETED
@@ -1,67 +0,0 @@
1
- `webfuscator` is a Babel-based JavaScript obfuscator. It parses a JavaScript source string, applies configurable transforms, and returns JavaScript source.
2
-
3
- [Read the documentation](https://docs.webfuscator.dev) for the quickstart, configuration guides, API details, and a reference page for every transform. To try it without installing anything, open the [playground](https://playground.webfuscator.dev) and obfuscate a file in your browser.
4
-
5
- ## Install
6
-
7
- ```sh
8
- npm install --save-dev webfuscator
9
- ```
10
-
11
- The package is ESM-only, includes TypeScript declarations, and requires Node.js `^22.18.0 || >=24.11.0`.
12
-
13
- ## Usage
14
-
15
- ```js
16
- import { obfuscate } from 'webfuscator'
17
-
18
- const source = `export default function square(value) {
19
- return value * value
20
- }`
21
-
22
- const output = obfuscate(source, {
23
- minify: true,
24
- seed: 0,
25
- transforms: {
26
- renameIdentifiers: true,
27
- },
28
- })
29
- ```
30
-
31
- `obfuscate(code, options?)` is synchronous. It does not execute the input or write files.
32
-
33
- Configurable transforms are disabled by default; preparation passes always run.
34
-
35
- ## Documentation
36
-
37
- - [Playground](https://playground.webfuscator.dev)
38
- - [Quickstart](https://docs.webfuscator.dev/getting-started/quickstart)
39
- - [JavaScript API](https://docs.webfuscator.dev/reference/api)
40
- - [Configure transforms](https://docs.webfuscator.dev/guides/configure-transforms)
41
- - [Obfuscator options](https://docs.webfuscator.dev/reference/options)
42
- - [Property mangling](https://docs.webfuscator.dev/reference/property-mangling-options)
43
- - [String generator modes](https://docs.webfuscator.dev/reference/string-generator-modes)
44
- - [Report a bug](https://docs.webfuscator.dev/troubleshooting/report-a-bug)
45
-
46
- ## Development
47
-
48
- Every task runs from the repository root.
49
-
50
- ```sh
51
- pnpm install
52
- pnpm dev # playground at localhost:5173
53
- pnpm docs:dev # documentation site
54
- pnpm test # the full suite
55
- pnpm check # typecheck, lint, format, knip, generated docs, tests
56
- pnpm docs:check # links, snippets, redirects, accessibility
57
- ```
58
-
59
- [AGENTS.md](./AGENTS.md) lists the rest and explains which workspace owns what. Read it before changing transforms or analysis code.
60
-
61
- ## Responsible use
62
-
63
- Use `webfuscator` only on software you own or are authorized to modify. Read [DISCLOSURE](./DISCLOSURE) for the project's dual-use policy.
64
-
65
- ## License
66
-
67
- [MIT](./LICENSE)