webfuscator 1.3.2 → 1.3.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.
Files changed (174) hide show
  1. package/README.md +4 -1
  2. package/dist/obfuscator.d.ts.map +1 -1
  3. package/dist/obfuscator.js +29 -19
  4. package/dist/obfuscator.js.map +1 -1
  5. package/dist/options.d.ts +10 -11
  6. package/dist/options.d.ts.map +1 -1
  7. package/dist/transforms/arguments-to-parameters.d.ts +2 -5
  8. package/dist/transforms/arguments-to-parameters.d.ts.map +1 -1
  9. package/dist/transforms/arguments-to-parameters.js +2 -5
  10. package/dist/transforms/arguments-to-parameters.js.map +1 -1
  11. package/dist/transforms/arrow-to-function.d.ts +3 -4
  12. package/dist/transforms/arrow-to-function.d.ts.map +1 -1
  13. package/dist/transforms/arrow-to-function.js +3 -4
  14. package/dist/transforms/arrow-to-function.js.map +1 -1
  15. package/dist/transforms/collapse-single-use-temps.d.ts +2 -3
  16. package/dist/transforms/collapse-single-use-temps.d.ts.map +1 -1
  17. package/dist/transforms/collapse-single-use-temps.js +2 -3
  18. package/dist/transforms/collapse-single-use-temps.js.map +1 -1
  19. package/dist/transforms/conceal-strings.d.ts +8 -25
  20. package/dist/transforms/conceal-strings.d.ts.map +1 -1
  21. package/dist/transforms/conceal-strings.js +33 -48
  22. package/dist/transforms/conceal-strings.js.map +1 -1
  23. package/dist/transforms/const-let-to-var.d.ts +3 -4
  24. package/dist/transforms/const-let-to-var.d.ts.map +1 -1
  25. package/dist/transforms/const-let-to-var.js +3 -4
  26. package/dist/transforms/const-let-to-var.js.map +1 -1
  27. package/dist/transforms/do-while-to-while.d.ts +2 -3
  28. package/dist/transforms/do-while-to-while.d.ts.map +1 -1
  29. package/dist/transforms/do-while-to-while.js +2 -3
  30. package/dist/transforms/do-while-to-while.js.map +1 -1
  31. package/dist/transforms/drop-console.d.ts +1 -4
  32. package/dist/transforms/drop-console.d.ts.map +1 -1
  33. package/dist/transforms/drop-console.js +1 -4
  34. package/dist/transforms/drop-console.js.map +1 -1
  35. package/dist/transforms/expand-binary-assignment.d.ts +2 -8
  36. package/dist/transforms/expand-binary-assignment.d.ts.map +1 -1
  37. package/dist/transforms/expand-binary-assignment.js +2 -8
  38. package/dist/transforms/expand-binary-assignment.js.map +1 -1
  39. package/dist/transforms/expand-logical-assignment.d.ts +3 -2
  40. package/dist/transforms/expand-logical-assignment.d.ts.map +1 -1
  41. package/dist/transforms/expand-logical-assignment.js +3 -2
  42. package/dist/transforms/expand-logical-assignment.js.map +1 -1
  43. package/dist/transforms/extract-object-properties.d.ts +2 -3
  44. package/dist/transforms/extract-object-properties.d.ts.map +1 -1
  45. package/dist/transforms/extract-object-properties.js +2 -3
  46. package/dist/transforms/extract-object-properties.js.map +1 -1
  47. package/dist/transforms/fold-builtin-methods.d.ts +2 -3
  48. package/dist/transforms/fold-builtin-methods.d.ts.map +1 -1
  49. package/dist/transforms/fold-builtin-methods.js +2 -3
  50. package/dist/transforms/fold-builtin-methods.js.map +1 -1
  51. package/dist/transforms/fold-constants.d.ts +2 -2
  52. package/dist/transforms/fold-constants.js +2 -2
  53. package/dist/transforms/for-to-while.d.ts +2 -3
  54. package/dist/transforms/for-to-while.d.ts.map +1 -1
  55. package/dist/transforms/for-to-while.js +2 -3
  56. package/dist/transforms/for-to-while.js.map +1 -1
  57. package/dist/transforms/function-declaration-to-expression.d.ts +3 -7
  58. package/dist/transforms/function-declaration-to-expression.d.ts.map +1 -1
  59. package/dist/transforms/function-declaration-to-expression.js +3 -7
  60. package/dist/transforms/function-declaration-to-expression.js.map +1 -1
  61. package/dist/transforms/hoist-variables.d.ts +2 -4
  62. package/dist/transforms/hoist-variables.d.ts.map +1 -1
  63. package/dist/transforms/hoist-variables.js +2 -4
  64. package/dist/transforms/hoist-variables.js.map +1 -1
  65. package/dist/transforms/inline-functions.d.ts +2 -2
  66. package/dist/transforms/inline-functions.js +2 -2
  67. package/dist/transforms/logical-to-ternary.d.ts +2 -2
  68. package/dist/transforms/logical-to-ternary.js +2 -2
  69. package/dist/transforms/mangle-properties.d.ts +2 -3
  70. package/dist/transforms/mangle-properties.d.ts.map +1 -1
  71. package/dist/transforms/mangle-properties.js +2 -3
  72. package/dist/transforms/mangle-properties.js.map +1 -1
  73. package/dist/transforms/nullish-coalescing-to-ternary.d.ts +2 -2
  74. package/dist/transforms/nullish-coalescing-to-ternary.js +2 -2
  75. package/dist/transforms/numbers-to-strings.d.ts +1 -5
  76. package/dist/transforms/numbers-to-strings.d.ts.map +1 -1
  77. package/dist/transforms/numbers-to-strings.js +1 -5
  78. package/dist/transforms/numbers-to-strings.js.map +1 -1
  79. package/dist/transforms/object-method-to-property.d.ts +2 -10
  80. package/dist/transforms/object-method-to-property.d.ts.map +1 -1
  81. package/dist/transforms/object-method-to-property.js +2 -10
  82. package/dist/transforms/object-method-to-property.js.map +1 -1
  83. package/dist/transforms/optional-chaining-to-ternary.d.ts +2 -3
  84. package/dist/transforms/optional-chaining-to-ternary.d.ts.map +1 -1
  85. package/dist/transforms/optional-chaining-to-ternary.js +2 -3
  86. package/dist/transforms/optional-chaining-to-ternary.js.map +1 -1
  87. package/dist/transforms/pack-declarations-into-parameters.d.ts +2 -5
  88. package/dist/transforms/pack-declarations-into-parameters.d.ts.map +1 -1
  89. package/dist/transforms/pack-declarations-into-parameters.js +2 -5
  90. package/dist/transforms/pack-declarations-into-parameters.js.map +1 -1
  91. package/dist/transforms/pack-expressions.d.ts +25 -0
  92. package/dist/transforms/pack-expressions.d.ts.map +1 -0
  93. package/dist/transforms/pack-expressions.js +187 -0
  94. package/dist/transforms/pack-expressions.js.map +1 -0
  95. package/dist/transforms/pack.d.ts +2 -4
  96. package/dist/transforms/pack.d.ts.map +1 -1
  97. package/dist/transforms/pack.js +2 -4
  98. package/dist/transforms/pack.js.map +1 -1
  99. package/dist/transforms/remove-unreachable-code.d.ts +2 -4
  100. package/dist/transforms/remove-unreachable-code.d.ts.map +1 -1
  101. package/dist/transforms/remove-unreachable-code.js +2 -4
  102. package/dist/transforms/remove-unreachable-code.js.map +1 -1
  103. package/dist/transforms/remove-unused-code.d.ts +2 -2
  104. package/dist/transforms/remove-unused-code.js +2 -2
  105. package/dist/transforms/rename-identifiers.d.ts +2 -3
  106. package/dist/transforms/rename-identifiers.d.ts.map +1 -1
  107. package/dist/transforms/rename-identifiers.js +2 -3
  108. package/dist/transforms/rename-identifiers.js.map +1 -1
  109. package/dist/transforms/reorder-function-declarations.d.ts +2 -6
  110. package/dist/transforms/reorder-function-declarations.d.ts.map +1 -1
  111. package/dist/transforms/reorder-function-declarations.js +2 -6
  112. package/dist/transforms/reorder-function-declarations.js.map +1 -1
  113. package/dist/transforms/specials-to-strings.d.ts +2 -13
  114. package/dist/transforms/specials-to-strings.d.ts.map +1 -1
  115. package/dist/transforms/specials-to-strings.js +2 -13
  116. package/dist/transforms/specials-to-strings.js.map +1 -1
  117. package/dist/transforms/switch-to-if.d.ts +3 -4
  118. package/dist/transforms/switch-to-if.d.ts.map +1 -1
  119. package/dist/transforms/switch-to-if.js +3 -4
  120. package/dist/transforms/switch-to-if.js.map +1 -1
  121. package/dist/transforms/ternary-to-if.d.ts +2 -3
  122. package/dist/transforms/ternary-to-if.d.ts.map +1 -1
  123. package/dist/transforms/ternary-to-if.js +2 -3
  124. package/dist/transforms/ternary-to-if.js.map +1 -1
  125. package/dist/transforms/update-to-assignment.d.ts +2 -6
  126. package/dist/transforms/update-to-assignment.d.ts.map +1 -1
  127. package/dist/transforms/update-to-assignment.js +2 -6
  128. package/dist/transforms/update-to-assignment.js.map +1 -1
  129. package/dist/transforms/yodify-conditions.d.ts +2 -3
  130. package/dist/transforms/yodify-conditions.d.ts.map +1 -1
  131. package/dist/transforms/yodify-conditions.js +2 -3
  132. package/dist/transforms/yodify-conditions.js.map +1 -1
  133. package/package.json +1 -1
  134. package/src/obfuscator.ts +31 -19
  135. package/src/options.ts +12 -13
  136. package/src/transforms/arguments-to-parameters.ts +2 -5
  137. package/src/transforms/arrow-to-function.ts +3 -4
  138. package/src/transforms/collapse-single-use-temps.ts +2 -3
  139. package/src/transforms/conceal-strings.ts +48 -48
  140. package/src/transforms/const-let-to-var.ts +3 -4
  141. package/src/transforms/do-while-to-while.ts +2 -3
  142. package/src/transforms/drop-console.ts +1 -4
  143. package/src/transforms/expand-binary-assignment.ts +2 -8
  144. package/src/transforms/expand-logical-assignment.ts +3 -2
  145. package/src/transforms/extract-object-properties.ts +2 -3
  146. package/src/transforms/fold-builtin-methods.ts +2 -3
  147. package/src/transforms/fold-constants.ts +2 -2
  148. package/src/transforms/for-to-while.ts +2 -3
  149. package/src/transforms/function-declaration-to-expression.ts +3 -7
  150. package/src/transforms/hoist-variables.ts +2 -4
  151. package/src/transforms/inline-functions.ts +2 -2
  152. package/src/transforms/logical-to-ternary.ts +2 -2
  153. package/src/transforms/mangle-properties.ts +2 -3
  154. package/src/transforms/nullish-coalescing-to-ternary.ts +2 -2
  155. package/src/transforms/numbers-to-strings.ts +1 -5
  156. package/src/transforms/object-method-to-property.ts +2 -10
  157. package/src/transforms/optional-chaining-to-ternary.ts +2 -3
  158. package/src/transforms/pack-declarations-into-parameters.ts +2 -5
  159. package/src/transforms/pack-expressions.ts +237 -0
  160. package/src/transforms/pack.ts +2 -4
  161. package/src/transforms/remove-unreachable-code.ts +2 -4
  162. package/src/transforms/remove-unused-code.ts +2 -2
  163. package/src/transforms/rename-identifiers.ts +2 -3
  164. package/src/transforms/reorder-function-declarations.ts +2 -6
  165. package/src/transforms/specials-to-strings.ts +2 -13
  166. package/src/transforms/switch-to-if.ts +3 -4
  167. package/src/transforms/ternary-to-if.ts +2 -3
  168. package/src/transforms/update-to-assignment.ts +2 -6
  169. package/src/transforms/yodify-conditions.ts +2 -3
  170. package/dist/transforms/merge-variable-declarations.d.ts +0 -17
  171. package/dist/transforms/merge-variable-declarations.d.ts.map +0 -1
  172. package/dist/transforms/merge-variable-declarations.js +0 -68
  173. package/dist/transforms/merge-variable-declarations.js.map +0 -1
  174. package/src/transforms/merge-variable-declarations.ts +0 -91
@@ -1,91 +0,0 @@
1
- import * as t from '@babel/types'
2
- import type { File } from '@babel/types'
3
-
4
- import { rewriteStatementLists } from '../utils/statement-lists'
5
-
6
- /**
7
- * Merges adjacent variable declarations when their kinds and export wrappers
8
- * match. It runs in programs, blocks, switch cases, and static blocks, and
9
- * removes unlabeled empty statements between compatible declarations.
10
- *
11
- * @example
12
- * // ◀️ before
13
- * let a = 1;
14
- * let b = 2;
15
- *
16
- * // ▶️ after
17
- * let a = 1,
18
- * b = 2;
19
- */
20
- export function mergeVariableDeclarations(ast: File): boolean {
21
- return rewriteStatementLists(ast, (statements) =>
22
- mergeAdjacent(statements.map((path) => path.node)),
23
- )
24
- }
25
-
26
- type StatementLike = t.Program['body'][number]
27
-
28
- interface MergeableDeclaration {
29
- declaration: t.VariableDeclaration
30
- exported: boolean
31
- }
32
-
33
- function mergeAdjacent(list: readonly StatementLike[]): StatementLike[] | null {
34
- const out: StatementLike[] = []
35
- let pendingEmpty: t.EmptyStatement[] = []
36
- let merged = false
37
-
38
- for (const statement of list) {
39
- if (t.isEmptyStatement(statement) && mergeableDeclaration(out.at(-1)) !== null) {
40
- pendingEmpty.push(statement)
41
- continue
42
- }
43
-
44
- const previous = mergeableDeclaration(out.at(-1))
45
- const current = mergeableDeclaration(statement)
46
- if (previous && current && canMerge(previous, current)) {
47
- out[out.length - 1] = mergePair(previous, current)
48
- pendingEmpty = []
49
- merged = true
50
- continue
51
- }
52
-
53
- out.push(...pendingEmpty, statement)
54
- pendingEmpty = []
55
- }
56
-
57
- out.push(...pendingEmpty)
58
- return merged ? out : null
59
- }
60
-
61
- function mergeableDeclaration(statement: StatementLike | undefined): MergeableDeclaration | null {
62
- if (statement === undefined) {
63
- return null
64
- }
65
- if (t.isVariableDeclaration(statement)) {
66
- return { declaration: statement, exported: false }
67
- }
68
- if (t.isExportNamedDeclaration(statement) && t.isVariableDeclaration(statement.declaration)) {
69
- return { declaration: statement.declaration, exported: true }
70
- }
71
- return null
72
- }
73
-
74
- function canMerge(previous: MergeableDeclaration, current: MergeableDeclaration): boolean {
75
- return (
76
- previous.exported === current.exported && previous.declaration.kind === current.declaration.kind
77
- )
78
- }
79
-
80
- function mergePair(previous: MergeableDeclaration, current: MergeableDeclaration): StatementLike {
81
- const declaration = t.variableDeclaration(previous.declaration.kind, [
82
- ...previous.declaration.declarations,
83
- ...current.declaration.declarations,
84
- ])
85
-
86
- if (!previous.exported) {
87
- return declaration
88
- }
89
-
90
- return t.exportNamedDeclaration(declaration)
91
- }