webfuscator 1.3.3 → 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.
@@ -1 +1 @@
1
- {"version":3,"file":"obfuscator.d.ts","sourceRoot":"","sources":["../src/obfuscator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAoB,aAAa,EAAE,MAAM,WAAW,CAAA;AA6JnF,eAAO,MAAM,4BAA4B,EAAE,SAAS,aAAa,EAU1C,CAAA;AAEvB,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAiF/E"}
1
+ {"version":3,"file":"obfuscator.d.ts","sourceRoot":"","sources":["../src/obfuscator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAoB,aAAa,EAAE,MAAM,WAAW,CAAA;AA2JnF,eAAO,MAAM,4BAA4B,EAAE,SAAS,aAAa,EAU1C,CAAA;AAEvB,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAiF/E"}
@@ -27,7 +27,6 @@ import { hoistVariables } from './transforms/hoist-variables.js';
27
27
  import { inlineFunctions } from './transforms/inline-functions.js';
28
28
  import { logicalToTernary } from './transforms/logical-to-ternary.js';
29
29
  import { mangleProperties } from './transforms/mangle-properties.js';
30
- import { mergeVariableDeclarations } from './transforms/merge-variable-declarations.js';
31
30
  import { nullishCoalescingToTernary } from './transforms/nullish-coalescing-to-ternary.js';
32
31
  import { numbersToStrings } from './transforms/numbers-to-strings.js';
33
32
  import { objectMethodToProperty } from './transforms/object-method-to-property.js';
@@ -108,16 +107,15 @@ const LOWERING = [
108
107
  ['logicalToTernary', logicalToTernary],
109
108
  ['ternaryToIf', ternaryToIf],
110
109
  ];
111
- // `packDeclarationsIntoParameters` must precede declaration motion and merging.
110
+ // `packDeclarationsIntoParameters` must precede declaration motion.
112
111
  // `reorderFunctionDeclarations` follows `functionDeclarationToExpression`, so it
113
- // moves only declarations still needed for hoisting. `hoistVariables` must run
114
- // before `mergeVariableDeclarations`. `numbersToStrings` follows the fixed point,
115
- // yodification, and `specialsToStrings` because they need or create numbers.
112
+ // moves only declarations still needed for hoisting. `numbersToStrings` follows
113
+ // the fixed point, yodification, and `specialsToStrings` because they need or
114
+ // create numbers.
116
115
  const POST_PROCESS = [
117
116
  ['packDeclarationsIntoParameters', packDeclarationsIntoParameters],
118
117
  ['reorderFunctionDeclarations', reorderFunctionDeclarations],
119
118
  ['hoistVariables', hoistVariables],
120
- ['mergeVariableDeclarations', mergeVariableDeclarations],
121
119
  ['yodifyConditions', yodifyConditions],
122
120
  ['specialsToStrings', specialsToStrings],
123
121
  ['numbersToStrings', numbersToStrings],
@@ -128,8 +126,8 @@ const PROTECTION = [['concealStrings', concealStrings]];
128
126
  // All binding-producing passes run before renaming so their generated
129
127
  // identifiers also receive names from the configured string generator.
130
128
  const RENAME = [['renameIdentifiers', renameIdentifiers]];
131
- // Expression packing consumes final statement shapes and creates no bindings,
132
- // so it runs after renaming and before whole-program packing.
129
+ // Statement packing consumes final declaration and expression shapes and creates
130
+ // no bindings, so it runs after renaming and before whole-program packing.
133
131
  const FINAL_SHAPE = [['packExpressions', packExpressions]];
134
132
  // Packing serializes the finished program to a string and rebuilds it through
135
133
  // the Function constructor. It must see final names and shapes, so it runs after
@@ -1 +1 @@
1
- {"version":3,"file":"obfuscator.js","sourceRoot":"","sources":["../src/obfuscator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"obfuscator.js","sourceRoot":"","sources":["../src/obfuscator.ts"],"names":[],"mappings":"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"}
package/dist/options.d.ts CHANGED
@@ -3,7 +3,7 @@ import type { StringGeneratorModeOption } from './utils/string-generator.js';
3
3
  * Exported transform entry points. Preparation passes always run and do not
4
4
  * appear here.
5
5
  */
6
- export type TransformName = 'dropConsole' | 'dropDebugger' | 'constToLet' | 'constLetToVar' | 'argumentsToParameters' | 'objectMethodToProperty' | 'foldConstants' | 'foldBuiltinMethods' | 'extractObjectProperties' | 'inlineFunctions' | 'removeUnreachableCode' | 'removeUnusedCode' | 'removeAnonymousFunctionNames' | 'collapseSingleUseTemps' | 'arrowToFunction' | 'functionDeclarationToExpression' | 'reorderFunctionDeclarations' | 'hoistVariables' | 'mergeVariableDeclarations' | 'switchToIf' | 'forToWhile' | 'doWhileToWhile' | 'updateToAssignment' | 'expandBinaryAssignment' | 'expandLogicalAssignment' | 'optionalChainingToTernary' | 'nullishCoalescingToTernary' | 'logicalToTernary' | 'ternaryToIf' | 'packDeclarationsIntoParameters' | 'yodifyConditions' | 'specialsToStrings' | 'numbersToStrings' | 'concealStrings' | 'mangleProperties' | 'renameIdentifiers' | 'packExpressions' | 'pack';
6
+ export type TransformName = 'dropConsole' | 'dropDebugger' | 'constToLet' | 'constLetToVar' | 'argumentsToParameters' | 'objectMethodToProperty' | 'foldConstants' | 'foldBuiltinMethods' | 'extractObjectProperties' | 'inlineFunctions' | 'removeUnreachableCode' | 'removeUnusedCode' | 'removeAnonymousFunctionNames' | 'collapseSingleUseTemps' | 'arrowToFunction' | 'functionDeclarationToExpression' | 'reorderFunctionDeclarations' | 'hoistVariables' | 'switchToIf' | 'forToWhile' | 'doWhileToWhile' | 'updateToAssignment' | 'expandBinaryAssignment' | 'expandLogicalAssignment' | 'optionalChainingToTernary' | 'nullishCoalescingToTernary' | 'logicalToTernary' | 'ternaryToIf' | 'packDeclarationsIntoParameters' | 'yodifyConditions' | 'specialsToStrings' | 'numbersToStrings' | 'concealStrings' | 'mangleProperties' | 'renameIdentifiers' | 'packExpressions' | 'pack';
7
7
  type TransformEntry = boolean | {
8
8
  stringGeneratorMode?: StringGeneratorModeOption;
9
9
  };
@@ -63,8 +63,6 @@ export interface ConcealStringsOptions {
63
63
  cache?: boolean;
64
64
  /** Choose how much of the UTF-16 range pads each pool. Default `'regional'`. */
65
65
  cover?: 'full' | 'regional' | 'used';
66
- /** Reuse one vault entry for equal strings. Default `true`. */
67
- deduplicate?: boolean;
68
66
  /** Use one program vault or a separate vault per function. Default `'program'`. */
69
67
  scope?: 'function' | 'program';
70
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"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"}
@@ -11,21 +11,21 @@ import type { TransformContext } from '../options.js';
11
11
  * }
12
12
  *
13
13
  * // ▶️ after
14
- * const _stringPool = " lo,He",
15
- * _stringPayload = [0, 4, 7, 2, 2, 6, 2],
14
+ * var _stringPool = " lo,He";
15
+ * var _stringPayload = [0, 4, 7, 2, 2, 6, 2],
16
16
  * _stringMetadata = [0, 7, 4, 5],
17
17
  * _stringCache = [null],
18
18
  * _stringDecoder = function (_entry) {
19
- * let _cached = _stringCache[_entry];
19
+ * var _cached = _stringCache[_entry];
20
20
  * if (_cached !== null) return _cached;
21
- * let _result = "",
21
+ * var _result = "",
22
22
  * _record = _entry * 4,
23
23
  * _start = _stringMetadata[_record],
24
24
  * _length = _stringMetadata[_record + 1],
25
25
  * _stringKey = _stringMetadata[_record + 2],
26
26
  * _stringStep = _stringMetadata[_record + 3];
27
- * for (let _position = 0; _position < _length; _position++) {
28
- * let _stringMask = _stringKey + _position * _stringStep & 7;
27
+ * for (var _position = 0; _position < _length; _position++) {
28
+ * var _stringMask = _stringKey + _position * _stringStep & 7;
29
29
  * _result += _stringPool[_stringPayload[_start + _position] ^ _stringMask];
30
30
  * }
31
31
  * _stringCache[_entry] = _result;
@@ -1 +1 @@
1
- {"version":3,"file":"conceal-strings.d.ts","sourceRoot":"","sources":["../../src/transforms/conceal-strings.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAExC,OAAO,KAAK,EAAyB,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAOzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAmBxE"}
1
+ {"version":3,"file":"conceal-strings.d.ts","sourceRoot":"","sources":["../../src/transforms/conceal-strings.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAExC,OAAO,KAAK,EAAyB,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAOzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAqBxE"}
@@ -14,21 +14,21 @@ const RECORD_WIDTH = 4;
14
14
  * }
15
15
  *
16
16
  * // ▶️ after
17
- * const _stringPool = " lo,He",
18
- * _stringPayload = [0, 4, 7, 2, 2, 6, 2],
17
+ * var _stringPool = " lo,He";
18
+ * var _stringPayload = [0, 4, 7, 2, 2, 6, 2],
19
19
  * _stringMetadata = [0, 7, 4, 5],
20
20
  * _stringCache = [null],
21
21
  * _stringDecoder = function (_entry) {
22
- * let _cached = _stringCache[_entry];
22
+ * var _cached = _stringCache[_entry];
23
23
  * if (_cached !== null) return _cached;
24
- * let _result = "",
24
+ * var _result = "",
25
25
  * _record = _entry * 4,
26
26
  * _start = _stringMetadata[_record],
27
27
  * _length = _stringMetadata[_record + 1],
28
28
  * _stringKey = _stringMetadata[_record + 2],
29
29
  * _stringStep = _stringMetadata[_record + 3];
30
- * for (let _position = 0; _position < _length; _position++) {
31
- * let _stringMask = _stringKey + _position * _stringStep & 7;
30
+ * for (var _position = 0; _position < _length; _position++) {
31
+ * var _stringMask = _stringKey + _position * _stringStep & 7;
32
32
  * _result += _stringPool[_stringPayload[_start + _position] ^ _stringMask];
33
33
  * }
34
34
  * _stringCache[_entry] = _result;
@@ -41,7 +41,7 @@ const RECORD_WIDTH = 4;
41
41
  export function concealStrings(ast, ctx) {
42
42
  const options = resolveOptions(ctx.concealStrings);
43
43
  const rng = mulberry32(ctx.seed);
44
- const state = { changed: false, groups: new Map(), options };
44
+ const state = { changed: false, groups: new Map(), options, program: null };
45
45
  if (options.scope === 'function') {
46
46
  normalizeConciseArrows(ast, options);
47
47
  }
@@ -50,13 +50,18 @@ export function concealStrings(ast, ctx) {
50
50
  return false;
51
51
  }
52
52
  const pool = buildSharedPool(state.groups.values(), options.cover, rng);
53
+ const poolIdentifier = t.identifier(state.program.scope.generateUid('stringPool'));
53
54
  for (const group of state.groups.values()) {
54
- concealGroup(group, options, pool, rng);
55
+ concealGroup(group, options, pool, poolIdentifier, rng);
55
56
  state.changed = true;
56
57
  }
58
+ insertSharedPool(state.program, poolIdentifier, pool.value);
57
59
  return state.changed;
58
60
  }
59
61
  const collectVisitor = {
62
+ Program(path, state) {
63
+ state.program = path;
64
+ },
60
65
  StringLiteral(path, state) {
61
66
  if (!isRuntimeString(path)) {
62
67
  return;
@@ -76,7 +81,6 @@ const collectVisitor = {
76
81
  function resolveOptions(options) {
77
82
  const cache = options?.cache ?? true;
78
83
  const cover = options?.cover ?? 'regional';
79
- const deduplicate = options?.deduplicate ?? true;
80
84
  const scope = options?.scope ?? 'program';
81
85
  if (typeof cache !== 'boolean') {
82
86
  throw new TypeError('concealStrings cache must be a boolean');
@@ -84,13 +88,10 @@ function resolveOptions(options) {
84
88
  if (cover !== 'full' && cover !== 'regional' && cover !== 'used') {
85
89
  throw new TypeError("concealStrings cover must be 'full', 'regional', or 'used'");
86
90
  }
87
- if (typeof deduplicate !== 'boolean') {
88
- throw new TypeError('concealStrings deduplicate must be a boolean');
89
- }
90
91
  if (scope !== 'function' && scope !== 'program') {
91
92
  throw new TypeError("concealStrings scope must be 'function' or 'program'");
92
93
  }
93
- return { cache, cover, deduplicate, scope };
94
+ return { cache, cover, scope };
94
95
  }
95
96
  function normalizeConciseArrows(ast, options) {
96
97
  const marked = new WeakSet();
@@ -145,11 +146,11 @@ function isRuntimeString(path) {
145
146
  }
146
147
  return !isNonComputedKey(path);
147
148
  }
148
- function concealGroup(group, options, pool, rng) {
149
- const entries = makeEntries(group.occurrences, options.deduplicate);
149
+ function concealGroup(group, options, pool, poolIdentifier, rng) {
150
+ const entries = makeEntries(group.occurrences);
150
151
  shuffleInPlace(entries, rng);
151
152
  const data = encodeEntries(entries, pool, rng);
152
- const identifiers = insertVault(statementBody(group.owner), entries.length, data, options.cache);
153
+ const identifiers = insertVault(statementBody(group.owner), entries.length, data, options.cache, poolIdentifier);
153
154
  for (let index = 0; index < entries.length; index++) {
154
155
  for (const occurrence of entries[index].occurrences) {
155
156
  occurrence.path.replaceWith(t.callExpression(t.identifier(identifiers.decoder.name), [t.numericLiteral(index)]));
@@ -157,10 +158,7 @@ function concealGroup(group, options, pool, rng) {
157
158
  }
158
159
  }
159
160
  }
160
- function makeEntries(occurrences, deduplicate) {
161
- if (!deduplicate) {
162
- return occurrences.map((occurrence) => ({ occurrences: [occurrence], value: occurrence.value }));
163
- }
161
+ function makeEntries(occurrences) {
164
162
  const byValue = new Map();
165
163
  for (const occurrence of occurrences) {
166
164
  let entry = byValue.get(occurrence.value);
@@ -203,7 +201,7 @@ function encodeEntries(entries, pool, rng) {
203
201
  payload.push(truePosition ^ maskPosition(position, key, step, pool.indexMask));
204
202
  }
205
203
  }
206
- return { indexMask: pool.indexMask, metadata, payload, pool: pool.value };
204
+ return { indexMask: pool.indexMask, metadata, payload };
207
205
  }
208
206
  function makePoolUnits(usedUnits, cover) {
209
207
  return cover === 'used' ? [...usedUnits] : coveredPageUnits(usedUnits, cover);
@@ -263,18 +261,17 @@ function statementBody(owner) {
263
261
  }
264
262
  return body;
265
263
  }
266
- function insertVault(body, entryCount, data, cache) {
264
+ function insertVault(body, entryCount, data, cache, pool) {
267
265
  const fresh = (purpose) => t.identifier(body.scope.generateUid(purpose));
268
266
  const identifiers = {
269
267
  cache: cache ? fresh('stringCache') : null,
270
268
  decoder: fresh('stringDecoder'),
271
269
  metadata: fresh('stringMetadata'),
272
270
  payload: fresh('stringPayload'),
273
- pool: fresh('stringPool'),
271
+ pool,
274
272
  };
275
273
  const decoder = t.functionExpression(null, [], t.blockStatement([]));
276
274
  const declarations = [
277
- t.variableDeclarator(identifiers.pool, t.stringLiteral(data.pool)),
278
275
  t.variableDeclarator(identifiers.payload, numericArray(data.payload)),
279
276
  t.variableDeclarator(identifiers.metadata, numericArray(data.metadata)),
280
277
  ];
@@ -282,7 +279,7 @@ function insertVault(body, entryCount, data, cache) {
282
279
  declarations.push(t.variableDeclarator(identifiers.cache, t.arrayExpression(Array.from({ length: entryCount }, () => t.nullLiteral()))));
283
280
  }
284
281
  declarations.push(t.variableDeclarator(identifiers.decoder, decoder));
285
- const declaration = t.variableDeclaration('const', declarations);
282
+ const declaration = t.variableDeclaration('var', declarations);
286
283
  const [declarationPath] = body.unshiftContainer('body', declaration);
287
284
  const declaratorPaths = declarationPath.get('declarations');
288
285
  const decoderPath = declaratorPaths
@@ -291,6 +288,11 @@ function insertVault(body, entryCount, data, cache) {
291
288
  populateDecoder(decoderPath, identifiers, data.indexMask);
292
289
  return identifiers;
293
290
  }
291
+ function insertSharedPool(program, identifier, value) {
292
+ program.unshiftContainer('body', t.variableDeclaration('var', [
293
+ t.variableDeclarator(t.cloneNode(identifier), t.stringLiteral(value)),
294
+ ]));
295
+ }
294
296
  function populateDecoder(decoderPath, vault, indexMask) {
295
297
  const fresh = (purpose) => t.identifier(decoderPath.scope.generateUid(purpose));
296
298
  const entry = fresh('entry');
@@ -305,17 +307,17 @@ function populateDecoder(decoderPath, vault, indexMask) {
305
307
  const statements = [];
306
308
  if (vault.cache) {
307
309
  const cached = fresh('cached');
308
- statements.push(t.variableDeclaration('let', [t.variableDeclarator(cached, indexed(vault.cache, entry))]), t.ifStatement(t.binaryExpression('!==', cached, t.nullLiteral()), t.returnStatement(cached)));
310
+ statements.push(t.variableDeclaration('var', [t.variableDeclarator(cached, indexed(vault.cache, entry))]), t.ifStatement(t.binaryExpression('!==', cached, t.nullLiteral()), t.returnStatement(cached)));
309
311
  }
310
- statements.push(t.variableDeclaration('let', [
312
+ statements.push(t.variableDeclaration('var', [
311
313
  t.variableDeclarator(result, t.stringLiteral('')),
312
314
  t.variableDeclarator(record, t.binaryExpression('*', entry, t.numericLiteral(RECORD_WIDTH))),
313
315
  t.variableDeclarator(start, indexed(vault.metadata, record)),
314
316
  t.variableDeclarator(length, indexed(vault.metadata, t.binaryExpression('+', record, t.numericLiteral(1)))),
315
317
  t.variableDeclarator(key, indexed(vault.metadata, t.binaryExpression('+', record, t.numericLiteral(2)))),
316
318
  t.variableDeclarator(step, indexed(vault.metadata, t.binaryExpression('+', record, t.numericLiteral(3)))),
317
- ]), t.forStatement(t.variableDeclaration('let', [t.variableDeclarator(position, t.numericLiteral(0))]), t.binaryExpression('<', position, length), t.updateExpression('++', position), t.blockStatement([
318
- t.variableDeclaration('let', [
319
+ ]), t.forStatement(t.variableDeclaration('var', [t.variableDeclarator(position, t.numericLiteral(0))]), t.binaryExpression('<', position, length), t.updateExpression('++', position), t.blockStatement([
320
+ t.variableDeclaration('var', [
319
321
  t.variableDeclarator(mask, maskExpression(position, key, step, indexMask)),
320
322
  ]),
321
323
  t.expressionStatement(t.assignmentExpression('+=', result, indexed(vault.pool, t.binaryExpression('^', indexed(vault.payload, t.binaryExpression('+', start, position)), mask)))),
@@ -1 +1 @@
1
- {"version":3,"file":"conceal-strings.js","sourceRoot":"","sources":["../../src/transforms/conceal-strings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conceal-strings.js","sourceRoot":"","sources":["../../src/transforms/conceal-strings.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,24 @@
1
1
  import type { File } from '@babel/types';
2
2
  /**
3
- * Combines adjacent expression statements with the comma operator and moves
4
- * them into a following compatible statement when execution order is preserved.
3
+ * Merges adjacent compatible variable declarations, combines adjacent
4
+ * expression statements with the comma operator, and moves expressions into a
5
+ * following compatible statement when execution order is preserved.
5
6
  *
6
7
  * @example
7
8
  * // ◀️ before
8
9
  * function run() {
9
- * prepare();
10
- * update();
10
+ * let first = prepare();
11
+ * let second = update(first);
12
+ * record(first);
13
+ * record(second);
11
14
  * return finish();
12
15
  * }
13
16
  *
14
17
  * // ▶️ after
15
18
  * function run() {
16
- * return prepare(), update(), finish();
19
+ * let first = prepare(),
20
+ * second = update(first);
21
+ * return record(first), record(second), finish();
17
22
  * }
18
23
  */
19
24
  export declare function packExpressions(ast: File): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"pack-expressions.d.ts","sourceRoot":"","sources":["../../src/transforms/pack-expressions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAIxC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAIlD"}
1
+ {"version":3,"file":"pack-expressions.d.ts","sourceRoot":"","sources":["../../src/transforms/pack-expressions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAIxC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAIlD"}
@@ -1,26 +1,81 @@
1
1
  import * as t from '@babel/types';
2
2
  import { rewriteStatementLists } from '../utils/statement-lists.js';
3
3
  /**
4
- * Combines adjacent expression statements with the comma operator and moves
5
- * them into a following compatible statement when execution order is preserved.
4
+ * Merges adjacent compatible variable declarations, combines adjacent
5
+ * expression statements with the comma operator, and moves expressions into a
6
+ * following compatible statement when execution order is preserved.
6
7
  *
7
8
  * @example
8
9
  * // ◀️ before
9
10
  * function run() {
10
- * prepare();
11
- * update();
11
+ * let first = prepare();
12
+ * let second = update(first);
13
+ * record(first);
14
+ * record(second);
12
15
  * return finish();
13
16
  * }
14
17
  *
15
18
  * // ▶️ after
16
19
  * function run() {
17
- * return prepare(), update(), finish();
20
+ * let first = prepare(),
21
+ * second = update(first);
22
+ * return record(first), record(second), finish();
18
23
  * }
19
24
  */
20
25
  export function packExpressions(ast) {
21
26
  return rewriteStatementLists(ast, (statements) => packStatementList(statements.map((path) => path.node)));
22
27
  }
23
28
  function packStatementList(list) {
29
+ const declarationsMerged = mergeAdjacentDeclarations(list);
30
+ const expressionsPacked = packExpressionStatements(declarationsMerged ?? list);
31
+ return expressionsPacked ?? declarationsMerged;
32
+ }
33
+ function mergeAdjacentDeclarations(list) {
34
+ const out = [];
35
+ let pendingEmpty = [];
36
+ let changed = false;
37
+ for (const statement of list) {
38
+ if (t.isEmptyStatement(statement) && mergeableDeclaration(out.at(-1)) !== null) {
39
+ pendingEmpty.push(statement);
40
+ continue;
41
+ }
42
+ const previous = mergeableDeclaration(out.at(-1));
43
+ const current = mergeableDeclaration(statement);
44
+ if (previous && current && canMergeDeclarations(previous, current)) {
45
+ out[out.length - 1] = mergeDeclarationPair(previous, current);
46
+ pendingEmpty = [];
47
+ changed = true;
48
+ continue;
49
+ }
50
+ out.push(...pendingEmpty, statement);
51
+ pendingEmpty = [];
52
+ }
53
+ out.push(...pendingEmpty);
54
+ return changed ? out : null;
55
+ }
56
+ function mergeableDeclaration(statement) {
57
+ if (statement === undefined) {
58
+ return null;
59
+ }
60
+ if (t.isVariableDeclaration(statement)) {
61
+ return { declaration: statement, exported: false };
62
+ }
63
+ if (t.isExportNamedDeclaration(statement) && t.isVariableDeclaration(statement.declaration)) {
64
+ return { declaration: statement.declaration, exported: true };
65
+ }
66
+ return null;
67
+ }
68
+ function canMergeDeclarations(previous, current) {
69
+ return (previous.exported === current.exported && previous.declaration.kind === current.declaration.kind);
70
+ }
71
+ function mergeDeclarationPair(previous, current) {
72
+ const declaration = t.variableDeclaration(previous.declaration.kind, [
73
+ ...previous.declaration.declarations,
74
+ ...current.declaration.declarations,
75
+ ]);
76
+ return previous.exported ? t.exportNamedDeclaration(declaration) : declaration;
77
+ }
78
+ function packExpressionStatements(list) {
24
79
  const out = [];
25
80
  let pending = [];
26
81
  let changed = false;
@@ -1 +1 @@
1
- {"version":3,"file":"pack-expressions.js","sourceRoot":"","sources":["../../src/transforms/pack-expressions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pack-expressions.js","sourceRoot":"","sources":["../../src/transforms/pack-expressions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webfuscator",
3
- "version": "1.3.3",
3
+ "version": "1.3.4",
4
4
  "description": "JavaScript obfuscator built on Babel",
5
5
  "keywords": [
6
6
  "babel",
package/src/obfuscator.ts CHANGED
@@ -31,7 +31,6 @@ import { hoistVariables } from './transforms/hoist-variables'
31
31
  import { inlineFunctions } from './transforms/inline-functions'
32
32
  import { logicalToTernary } from './transforms/logical-to-ternary'
33
33
  import { mangleProperties } from './transforms/mangle-properties'
34
- import { mergeVariableDeclarations } from './transforms/merge-variable-declarations'
35
34
  import { nullishCoalescingToTernary } from './transforms/nullish-coalescing-to-ternary'
36
35
  import { numbersToStrings } from './transforms/numbers-to-strings'
37
36
  import { objectMethodToProperty } from './transforms/object-method-to-property'
@@ -126,16 +125,15 @@ const LOWERING: readonly ConfigurablePhase[] = [
126
125
  ['ternaryToIf', ternaryToIf],
127
126
  ]
128
127
 
129
- // `packDeclarationsIntoParameters` must precede declaration motion and merging.
128
+ // `packDeclarationsIntoParameters` must precede declaration motion.
130
129
  // `reorderFunctionDeclarations` follows `functionDeclarationToExpression`, so it
131
- // moves only declarations still needed for hoisting. `hoistVariables` must run
132
- // before `mergeVariableDeclarations`. `numbersToStrings` follows the fixed point,
133
- // yodification, and `specialsToStrings` because they need or create numbers.
130
+ // moves only declarations still needed for hoisting. `numbersToStrings` follows
131
+ // the fixed point, yodification, and `specialsToStrings` because they need or
132
+ // create numbers.
134
133
  const POST_PROCESS: readonly ConfigurablePhase[] = [
135
134
  ['packDeclarationsIntoParameters', packDeclarationsIntoParameters],
136
135
  ['reorderFunctionDeclarations', reorderFunctionDeclarations],
137
136
  ['hoistVariables', hoistVariables],
138
- ['mergeVariableDeclarations', mergeVariableDeclarations],
139
137
  ['yodifyConditions', yodifyConditions],
140
138
  ['specialsToStrings', specialsToStrings],
141
139
  ['numbersToStrings', numbersToStrings],
@@ -149,8 +147,8 @@ const PROTECTION: readonly ConfigurablePhase[] = [['concealStrings', concealStri
149
147
  // identifiers also receive names from the configured string generator.
150
148
  const RENAME: readonly ConfigurablePhase[] = [['renameIdentifiers', renameIdentifiers]]
151
149
 
152
- // Expression packing consumes final statement shapes and creates no bindings,
153
- // so it runs after renaming and before whole-program packing.
150
+ // Statement packing consumes final declaration and expression shapes and creates
151
+ // no bindings, so it runs after renaming and before whole-program packing.
154
152
  const FINAL_SHAPE: readonly ConfigurablePhase[] = [['packExpressions', packExpressions]]
155
153
 
156
154
  // Packing serializes the finished program to a string and rebuilds it through
package/src/options.ts CHANGED
@@ -23,7 +23,6 @@ export type TransformName =
23
23
  | 'functionDeclarationToExpression'
24
24
  | 'reorderFunctionDeclarations'
25
25
  | 'hoistVariables'
26
- | 'mergeVariableDeclarations'
27
26
  | 'switchToIf'
28
27
  | 'forToWhile'
29
28
  | 'doWhileToWhile'
@@ -106,8 +105,6 @@ export interface ConcealStringsOptions {
106
105
  cache?: boolean
107
106
  /** Choose how much of the UTF-16 range pads each pool. Default `'regional'`. */
108
107
  cover?: 'full' | 'regional' | 'used'
109
- /** Reuse one vault entry for equal strings. Default `true`. */
110
- deduplicate?: boolean
111
108
  /** Use one program vault or a separate vault per function. Default `'program'`. */
112
109
  scope?: 'function' | 'program'
113
110
  }
@@ -21,21 +21,21 @@ const RECORD_WIDTH = 4
21
21
  * }
22
22
  *
23
23
  * // ▶️ after
24
- * const _stringPool = " lo,He",
25
- * _stringPayload = [0, 4, 7, 2, 2, 6, 2],
24
+ * var _stringPool = " lo,He";
25
+ * var _stringPayload = [0, 4, 7, 2, 2, 6, 2],
26
26
  * _stringMetadata = [0, 7, 4, 5],
27
27
  * _stringCache = [null],
28
28
  * _stringDecoder = function (_entry) {
29
- * let _cached = _stringCache[_entry];
29
+ * var _cached = _stringCache[_entry];
30
30
  * if (_cached !== null) return _cached;
31
- * let _result = "",
31
+ * var _result = "",
32
32
  * _record = _entry * 4,
33
33
  * _start = _stringMetadata[_record],
34
34
  * _length = _stringMetadata[_record + 1],
35
35
  * _stringKey = _stringMetadata[_record + 2],
36
36
  * _stringStep = _stringMetadata[_record + 3];
37
- * for (let _position = 0; _position < _length; _position++) {
38
- * let _stringMask = _stringKey + _position * _stringStep & 7;
37
+ * for (var _position = 0; _position < _length; _position++) {
38
+ * var _stringMask = _stringKey + _position * _stringStep & 7;
39
39
  * _result += _stringPool[_stringPayload[_start + _position] ^ _stringMask];
40
40
  * }
41
41
  * _stringCache[_entry] = _result;
@@ -48,7 +48,7 @@ const RECORD_WIDTH = 4
48
48
  export function concealStrings(ast: File, ctx: TransformContext): boolean {
49
49
  const options = resolveOptions(ctx.concealStrings)
50
50
  const rng = mulberry32(ctx.seed)
51
- const state: State = { changed: false, groups: new Map(), options }
51
+ const state: State = { changed: false, groups: new Map(), options, program: null }
52
52
 
53
53
  if (options.scope === 'function') {
54
54
  normalizeConciseArrows(ast, options)
@@ -59,17 +59,18 @@ export function concealStrings(ast: File, ctx: TransformContext): boolean {
59
59
  return false
60
60
  }
61
61
  const pool = buildSharedPool(state.groups.values(), options.cover, rng)
62
+ const poolIdentifier = t.identifier(state.program!.scope.generateUid('stringPool'))
62
63
  for (const group of state.groups.values()) {
63
- concealGroup(group, options, pool, rng)
64
+ concealGroup(group, options, pool, poolIdentifier, rng)
64
65
  state.changed = true
65
66
  }
67
+ insertSharedPool(state.program!, poolIdentifier, pool.value)
66
68
  return state.changed
67
69
  }
68
70
 
69
71
  interface ResolvedOptions {
70
72
  cache: boolean
71
73
  cover: 'full' | 'regional' | 'used'
72
- deduplicate: boolean
73
74
  scope: 'function' | 'program'
74
75
  }
75
76
 
@@ -89,6 +90,7 @@ interface VaultGroup {
89
90
  interface State extends ChangeState {
90
91
  groups: Map<VaultOwner, VaultGroup>
91
92
  options: ResolvedOptions
93
+ program: NodePath<t.Program> | null
92
94
  }
93
95
 
94
96
  interface Entry {
@@ -100,7 +102,6 @@ interface VaultData {
100
102
  indexMask: number
101
103
  metadata: number[]
102
104
  payload: number[]
103
- pool: string
104
105
  }
105
106
 
106
107
  interface SharedPool {
@@ -118,6 +119,9 @@ interface VaultIdentifiers {
118
119
  }
119
120
 
120
121
  const collectVisitor: Visitor<State> = {
122
+ Program(path, state) {
123
+ state.program = path
124
+ },
121
125
  StringLiteral(path, state) {
122
126
  if (!isRuntimeString(path)) {
123
127
  return
@@ -138,7 +142,6 @@ const collectVisitor: Visitor<State> = {
138
142
  function resolveOptions(options: ConcealStringsOptions | undefined): ResolvedOptions {
139
143
  const cache = options?.cache ?? true
140
144
  const cover = options?.cover ?? 'regional'
141
- const deduplicate = options?.deduplicate ?? true
142
145
  const scope = options?.scope ?? 'program'
143
146
  if (typeof cache !== 'boolean') {
144
147
  throw new TypeError('concealStrings cache must be a boolean')
@@ -146,13 +149,10 @@ function resolveOptions(options: ConcealStringsOptions | undefined): ResolvedOpt
146
149
  if (cover !== 'full' && cover !== 'regional' && cover !== 'used') {
147
150
  throw new TypeError("concealStrings cover must be 'full', 'regional', or 'used'")
148
151
  }
149
- if (typeof deduplicate !== 'boolean') {
150
- throw new TypeError('concealStrings deduplicate must be a boolean')
151
- }
152
152
  if (scope !== 'function' && scope !== 'program') {
153
153
  throw new TypeError("concealStrings scope must be 'function' or 'program'")
154
154
  }
155
- return { cache, cover, deduplicate, scope }
155
+ return { cache, cover, scope }
156
156
  }
157
157
 
158
158
  function normalizeConciseArrows(ast: File, options: ResolvedOptions): void {
@@ -220,12 +220,19 @@ function concealGroup(
220
220
  group: VaultGroup,
221
221
  options: ResolvedOptions,
222
222
  pool: SharedPool,
223
+ poolIdentifier: t.Identifier,
223
224
  rng: () => number,
224
225
  ): void {
225
- const entries = makeEntries(group.occurrences, options.deduplicate)
226
+ const entries = makeEntries(group.occurrences)
226
227
  shuffleInPlace(entries, rng)
227
228
  const data = encodeEntries(entries, pool, rng)
228
- const identifiers = insertVault(statementBody(group.owner), entries.length, data, options.cache)
229
+ const identifiers = insertVault(
230
+ statementBody(group.owner),
231
+ entries.length,
232
+ data,
233
+ options.cache,
234
+ poolIdentifier,
235
+ )
229
236
 
230
237
  for (let index = 0; index < entries.length; index++) {
231
238
  for (const occurrence of entries[index]!.occurrences) {
@@ -237,10 +244,7 @@ function concealGroup(
237
244
  }
238
245
  }
239
246
 
240
- function makeEntries(occurrences: Occurrence[], deduplicate: boolean): Entry[] {
241
- if (!deduplicate) {
242
- return occurrences.map((occurrence) => ({ occurrences: [occurrence], value: occurrence.value }))
243
- }
247
+ function makeEntries(occurrences: Occurrence[]): Entry[] {
244
248
  const byValue = new Map<string, Entry>()
245
249
  for (const occurrence of occurrences) {
246
250
  let entry = byValue.get(occurrence.value)
@@ -291,7 +295,7 @@ function encodeEntries(entries: Entry[], pool: SharedPool, rng: () => number): V
291
295
  payload.push(truePosition ^ maskPosition(position, key, step, pool.indexMask))
292
296
  }
293
297
  }
294
- return { indexMask: pool.indexMask, metadata, payload, pool: pool.value }
298
+ return { indexMask: pool.indexMask, metadata, payload }
295
299
  }
296
300
 
297
301
  function makePoolUnits(usedUnits: ReadonlySet<string>, cover: ResolvedOptions['cover']): string[] {
@@ -368,6 +372,7 @@ function insertVault(
368
372
  entryCount: number,
369
373
  data: VaultData,
370
374
  cache: boolean,
375
+ pool: t.Identifier,
371
376
  ): VaultIdentifiers {
372
377
  const fresh = (purpose: string): t.Identifier => t.identifier(body.scope.generateUid(purpose))
373
378
  const identifiers: VaultIdentifiers = {
@@ -375,11 +380,10 @@ function insertVault(
375
380
  decoder: fresh('stringDecoder'),
376
381
  metadata: fresh('stringMetadata'),
377
382
  payload: fresh('stringPayload'),
378
- pool: fresh('stringPool'),
383
+ pool,
379
384
  }
380
385
  const decoder = t.functionExpression(null, [], t.blockStatement([]))
381
386
  const declarations = [
382
- t.variableDeclarator(identifiers.pool, t.stringLiteral(data.pool)),
383
387
  t.variableDeclarator(identifiers.payload, numericArray(data.payload)),
384
388
  t.variableDeclarator(identifiers.metadata, numericArray(data.metadata)),
385
389
  ]
@@ -393,7 +397,7 @@ function insertVault(
393
397
  }
394
398
  declarations.push(t.variableDeclarator(identifiers.decoder, decoder))
395
399
 
396
- const declaration = t.variableDeclaration('const', declarations)
400
+ const declaration = t.variableDeclaration('var', declarations)
397
401
  const [declarationPath] = body.unshiftContainer('body', declaration)
398
402
  const declaratorPaths = declarationPath!.get('declarations') as NodePath<t.VariableDeclarator>[]
399
403
  const decoderPath = declaratorPaths
@@ -403,6 +407,19 @@ function insertVault(
403
407
  return identifiers
404
408
  }
405
409
 
410
+ function insertSharedPool(
411
+ program: NodePath<t.Program>,
412
+ identifier: t.Identifier,
413
+ value: string,
414
+ ): void {
415
+ program.unshiftContainer(
416
+ 'body',
417
+ t.variableDeclaration('var', [
418
+ t.variableDeclarator(t.cloneNode(identifier), t.stringLiteral(value)),
419
+ ]),
420
+ )
421
+ }
422
+
406
423
  function populateDecoder(
407
424
  decoderPath: NodePath<t.FunctionExpression>,
408
425
  vault: VaultIdentifiers,
@@ -424,13 +441,13 @@ function populateDecoder(
424
441
  if (vault.cache) {
425
442
  const cached = fresh('cached')
426
443
  statements.push(
427
- t.variableDeclaration('let', [t.variableDeclarator(cached, indexed(vault.cache, entry))]),
444
+ t.variableDeclaration('var', [t.variableDeclarator(cached, indexed(vault.cache, entry))]),
428
445
  t.ifStatement(t.binaryExpression('!==', cached, t.nullLiteral()), t.returnStatement(cached)),
429
446
  )
430
447
  }
431
448
 
432
449
  statements.push(
433
- t.variableDeclaration('let', [
450
+ t.variableDeclaration('var', [
434
451
  t.variableDeclarator(result, t.stringLiteral('')),
435
452
  t.variableDeclarator(record, t.binaryExpression('*', entry, t.numericLiteral(RECORD_WIDTH))),
436
453
  t.variableDeclarator(start, indexed(vault.metadata, record)),
@@ -448,11 +465,11 @@ function populateDecoder(
448
465
  ),
449
466
  ]),
450
467
  t.forStatement(
451
- t.variableDeclaration('let', [t.variableDeclarator(position, t.numericLiteral(0))]),
468
+ t.variableDeclaration('var', [t.variableDeclarator(position, t.numericLiteral(0))]),
452
469
  t.binaryExpression('<', position, length),
453
470
  t.updateExpression('++', position),
454
471
  t.blockStatement([
455
- t.variableDeclaration('let', [
472
+ t.variableDeclaration('var', [
456
473
  t.variableDeclarator(mask, maskExpression(position, key, step, indexMask)),
457
474
  ]),
458
475
  t.expressionStatement(
@@ -4,20 +4,25 @@ import type { File } from '@babel/types'
4
4
  import { rewriteStatementLists } from '../utils/statement-lists'
5
5
 
6
6
  /**
7
- * Combines adjacent expression statements with the comma operator and moves
8
- * them into a following compatible statement when execution order is preserved.
7
+ * Merges adjacent compatible variable declarations, combines adjacent
8
+ * expression statements with the comma operator, and moves expressions into a
9
+ * following compatible statement when execution order is preserved.
9
10
  *
10
11
  * @example
11
12
  * // ◀️ before
12
13
  * function run() {
13
- * prepare();
14
- * update();
14
+ * let first = prepare();
15
+ * let second = update(first);
16
+ * record(first);
17
+ * record(second);
15
18
  * return finish();
16
19
  * }
17
20
  *
18
21
  * // ▶️ after
19
22
  * function run() {
20
- * return prepare(), update(), finish();
23
+ * let first = prepare(),
24
+ * second = update(first);
25
+ * return record(first), record(second), finish();
21
26
  * }
22
27
  */
23
28
  export function packExpressions(ast: File): boolean {
@@ -29,6 +34,79 @@ export function packExpressions(ast: File): boolean {
29
34
  type StatementLike = t.Program['body'][number]
30
35
 
31
36
  function packStatementList(list: readonly StatementLike[]): StatementLike[] | null {
37
+ const declarationsMerged = mergeAdjacentDeclarations(list)
38
+ const expressionsPacked = packExpressionStatements(declarationsMerged ?? list)
39
+ return expressionsPacked ?? declarationsMerged
40
+ }
41
+
42
+ interface MergeableDeclaration {
43
+ declaration: t.VariableDeclaration
44
+ exported: boolean
45
+ }
46
+
47
+ function mergeAdjacentDeclarations(list: readonly StatementLike[]): StatementLike[] | null {
48
+ const out: StatementLike[] = []
49
+ let pendingEmpty: t.EmptyStatement[] = []
50
+ let changed = false
51
+
52
+ for (const statement of list) {
53
+ if (t.isEmptyStatement(statement) && mergeableDeclaration(out.at(-1)) !== null) {
54
+ pendingEmpty.push(statement)
55
+ continue
56
+ }
57
+
58
+ const previous = mergeableDeclaration(out.at(-1))
59
+ const current = mergeableDeclaration(statement)
60
+ if (previous && current && canMergeDeclarations(previous, current)) {
61
+ out[out.length - 1] = mergeDeclarationPair(previous, current)
62
+ pendingEmpty = []
63
+ changed = true
64
+ continue
65
+ }
66
+
67
+ out.push(...pendingEmpty, statement)
68
+ pendingEmpty = []
69
+ }
70
+
71
+ out.push(...pendingEmpty)
72
+ return changed ? out : null
73
+ }
74
+
75
+ function mergeableDeclaration(statement: StatementLike | undefined): MergeableDeclaration | null {
76
+ if (statement === undefined) {
77
+ return null
78
+ }
79
+ if (t.isVariableDeclaration(statement)) {
80
+ return { declaration: statement, exported: false }
81
+ }
82
+ if (t.isExportNamedDeclaration(statement) && t.isVariableDeclaration(statement.declaration)) {
83
+ return { declaration: statement.declaration, exported: true }
84
+ }
85
+ return null
86
+ }
87
+
88
+ function canMergeDeclarations(
89
+ previous: MergeableDeclaration,
90
+ current: MergeableDeclaration,
91
+ ): boolean {
92
+ return (
93
+ previous.exported === current.exported && previous.declaration.kind === current.declaration.kind
94
+ )
95
+ }
96
+
97
+ function mergeDeclarationPair(
98
+ previous: MergeableDeclaration,
99
+ current: MergeableDeclaration,
100
+ ): StatementLike {
101
+ const declaration = t.variableDeclaration(previous.declaration.kind, [
102
+ ...previous.declaration.declarations,
103
+ ...current.declaration.declarations,
104
+ ])
105
+
106
+ return previous.exported ? t.exportNamedDeclaration(declaration) : declaration
107
+ }
108
+
109
+ function packExpressionStatements(list: readonly StatementLike[]): StatementLike[] | null {
32
110
  const out: StatementLike[] = []
33
111
  let pending: t.ExpressionStatement[] = []
34
112
  let changed = false
@@ -1,15 +0,0 @@
1
- import type { File } from '@babel/types';
2
- /**
3
- * Merges adjacent compatible variable declarations into a single declaration.
4
- *
5
- * @example
6
- * // ◀️ before
7
- * let a = 1;
8
- * let b = 2;
9
- *
10
- * // ▶️ after
11
- * let a = 1,
12
- * b = 2;
13
- */
14
- export declare function mergeVariableDeclarations(ast: File): boolean;
15
- //# sourceMappingURL=merge-variable-declarations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"merge-variable-declarations.d.ts","sourceRoot":"","sources":["../../src/transforms/merge-variable-declarations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAIxC;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAI5D"}
@@ -1,66 +0,0 @@
1
- import * as t from '@babel/types';
2
- import { rewriteStatementLists } from '../utils/statement-lists.js';
3
- /**
4
- * Merges adjacent compatible variable declarations into a single declaration.
5
- *
6
- * @example
7
- * // ◀️ before
8
- * let a = 1;
9
- * let b = 2;
10
- *
11
- * // ▶️ after
12
- * let a = 1,
13
- * b = 2;
14
- */
15
- export function mergeVariableDeclarations(ast) {
16
- return rewriteStatementLists(ast, (statements) => mergeAdjacent(statements.map((path) => path.node)));
17
- }
18
- function mergeAdjacent(list) {
19
- const out = [];
20
- let pendingEmpty = [];
21
- let merged = false;
22
- for (const statement of list) {
23
- if (t.isEmptyStatement(statement) && mergeableDeclaration(out.at(-1)) !== null) {
24
- pendingEmpty.push(statement);
25
- continue;
26
- }
27
- const previous = mergeableDeclaration(out.at(-1));
28
- const current = mergeableDeclaration(statement);
29
- if (previous && current && canMerge(previous, current)) {
30
- out[out.length - 1] = mergePair(previous, current);
31
- pendingEmpty = [];
32
- merged = true;
33
- continue;
34
- }
35
- out.push(...pendingEmpty, statement);
36
- pendingEmpty = [];
37
- }
38
- out.push(...pendingEmpty);
39
- return merged ? out : null;
40
- }
41
- function mergeableDeclaration(statement) {
42
- if (statement === undefined) {
43
- return null;
44
- }
45
- if (t.isVariableDeclaration(statement)) {
46
- return { declaration: statement, exported: false };
47
- }
48
- if (t.isExportNamedDeclaration(statement) && t.isVariableDeclaration(statement.declaration)) {
49
- return { declaration: statement.declaration, exported: true };
50
- }
51
- return null;
52
- }
53
- function canMerge(previous, current) {
54
- return (previous.exported === current.exported && previous.declaration.kind === current.declaration.kind);
55
- }
56
- function mergePair(previous, current) {
57
- const declaration = t.variableDeclaration(previous.declaration.kind, [
58
- ...previous.declaration.declarations,
59
- ...current.declaration.declarations,
60
- ]);
61
- if (!previous.exported) {
62
- return declaration;
63
- }
64
- return t.exportNamedDeclaration(declaration);
65
- }
66
- //# sourceMappingURL=merge-variable-declarations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"merge-variable-declarations.js","sourceRoot":"","sources":["../../src/transforms/merge-variable-declarations.ts"],"names":[],"mappings":"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"}
@@ -1,89 +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 compatible variable declarations into a single declaration.
8
- *
9
- * @example
10
- * // ◀️ before
11
- * let a = 1;
12
- * let b = 2;
13
- *
14
- * // ▶️ after
15
- * let a = 1,
16
- * b = 2;
17
- */
18
- export function mergeVariableDeclarations(ast: File): boolean {
19
- return rewriteStatementLists(ast, (statements) =>
20
- mergeAdjacent(statements.map((path) => path.node)),
21
- )
22
- }
23
-
24
- type StatementLike = t.Program['body'][number]
25
-
26
- interface MergeableDeclaration {
27
- declaration: t.VariableDeclaration
28
- exported: boolean
29
- }
30
-
31
- function mergeAdjacent(list: readonly StatementLike[]): StatementLike[] | null {
32
- const out: StatementLike[] = []
33
- let pendingEmpty: t.EmptyStatement[] = []
34
- let merged = false
35
-
36
- for (const statement of list) {
37
- if (t.isEmptyStatement(statement) && mergeableDeclaration(out.at(-1)) !== null) {
38
- pendingEmpty.push(statement)
39
- continue
40
- }
41
-
42
- const previous = mergeableDeclaration(out.at(-1))
43
- const current = mergeableDeclaration(statement)
44
- if (previous && current && canMerge(previous, current)) {
45
- out[out.length - 1] = mergePair(previous, current)
46
- pendingEmpty = []
47
- merged = true
48
- continue
49
- }
50
-
51
- out.push(...pendingEmpty, statement)
52
- pendingEmpty = []
53
- }
54
-
55
- out.push(...pendingEmpty)
56
- return merged ? out : null
57
- }
58
-
59
- function mergeableDeclaration(statement: StatementLike | undefined): MergeableDeclaration | null {
60
- if (statement === undefined) {
61
- return null
62
- }
63
- if (t.isVariableDeclaration(statement)) {
64
- return { declaration: statement, exported: false }
65
- }
66
- if (t.isExportNamedDeclaration(statement) && t.isVariableDeclaration(statement.declaration)) {
67
- return { declaration: statement.declaration, exported: true }
68
- }
69
- return null
70
- }
71
-
72
- function canMerge(previous: MergeableDeclaration, current: MergeableDeclaration): boolean {
73
- return (
74
- previous.exported === current.exported && previous.declaration.kind === current.declaration.kind
75
- )
76
- }
77
-
78
- function mergePair(previous: MergeableDeclaration, current: MergeableDeclaration): StatementLike {
79
- const declaration = t.variableDeclaration(previous.declaration.kind, [
80
- ...previous.declaration.declarations,
81
- ...current.declaration.declarations,
82
- ])
83
-
84
- if (!previous.exported) {
85
- return declaration
86
- }
87
-
88
- return t.exportNamedDeclaration(declaration)
89
- }