webfuscator 1.0.0 → 1.1.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.
package/README.md CHANGED
@@ -1,8 +1,6 @@
1
- # webfuscator
2
-
3
1
  `webfuscator` is a Babel-based JavaScript obfuscator. It parses a JavaScript source string, applies configurable transforms, and returns JavaScript source.
4
2
 
5
- [Read the documentation](./docs/index.mdx) for the quickstart, configuration guides, API details, and a reference page for every transform.
3
+ [Read the documentation](https://webfuscator.mintlify.app/) for the quickstart, configuration guides, API details, and a reference page for every transform.
6
4
 
7
5
  ## Install
8
6
 
@@ -36,13 +34,13 @@ Configurable transforms are disabled by default; preparation passes always run.
36
34
 
37
35
  ## Documentation
38
36
 
39
- - [Quickstart](./docs/getting-started/quickstart.mdx)
40
- - [JavaScript API](./docs/reference/api.mdx)
41
- - [Configure transforms](./docs/guides/configure-transforms.mdx)
42
- - [Obfuscator options](./docs/reference/options.mdx)
43
- - [Property mangling](./docs/reference/property-mangling-options.mdx)
44
- - [String generator modes](./docs/reference/string-generator-modes.mdx)
45
- - [Report a bug](./docs/troubleshooting/report-a-bug.mdx)
37
+ - [Quickstart](https://webfuscator.mintlify.app/getting-started/quickstart)
38
+ - [JavaScript API](https://webfuscator.mintlify.app/reference/api)
39
+ - [Configure transforms](https://webfuscator.mintlify.app/guides/configure-transforms)
40
+ - [Obfuscator options](https://webfuscator.mintlify.app/reference/options)
41
+ - [Property mangling](https://webfuscator.mintlify.app/reference/property-mangling-options)
42
+ - [String generator modes](https://webfuscator.mintlify.app/reference/string-generator-modes)
43
+ - [Report a bug](https://webfuscator.mintlify.app/troubleshooting/report-a-bug)
46
44
 
47
45
  ## Development
48
46
 
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { obfuscate } from './obfuscator.js';
2
- export type { ManglePropertiesOptions, ObfuscatorOptions, PropertyNameGenerator } from './options.js';
2
+ export type { ManglePropertiesOptions, ObfuscatorOptions, PackOptions, PropertyNameGenerator, } from './options.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EACV,uBAAuB,EACvB,iBAAiB,EACjB,WAAW,EACX,qBAAqB,GACtB,MAAM,aAAa,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"obfuscator.d.ts","sourceRoot":"","sources":["../src/obfuscator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAmC,MAAM,aAAa,CAAA;AAsIrF,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAsD/E"}
1
+ {"version":3,"file":"obfuscator.d.ts","sourceRoot":"","sources":["../src/obfuscator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAmC,MAAM,aAAa,CAAA;AA0IrF,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,MAAM,CA6D/E"}
@@ -3,7 +3,6 @@ import { parse } from '@babel/parser';
3
3
  import { dotToBracket } from './preparation/dot-to-bracket.js';
4
4
  import { expandDestructuring } from './preparation/expand-destructuring.js';
5
5
  import { expandTemplateLiterals } from './preparation/expand-template-literals.js';
6
- import { rewriteClassFields } from './preparation/rewrite-class-fields.js';
7
6
  import { splitSequenceExpressions } from './preparation/split-sequence-expressions.js';
8
7
  import { splitVariableDeclarations } from './preparation/split-variable-declarations.js';
9
8
  import { stringifyObjectKeys } from './preparation/stringify-object-keys.js';
@@ -30,6 +29,7 @@ import { nullishCoalescingToTernary } from './transforms/nullish-coalescing-to-t
30
29
  import { numbersToStrings } from './transforms/numbers-to-strings.js';
31
30
  import { objectMethodToProperty } from './transforms/object-method-to-property.js';
32
31
  import { optionalChainingToTernary } from './transforms/optional-chaining-to-ternary.js';
32
+ import { pack } from './transforms/pack.js';
33
33
  import { packDeclarationsIntoParameters } from './transforms/pack-declarations-into-parameters.js';
34
34
  import { removeAnonymousFunctionNames } from './transforms/remove-anonymous-function-names.js';
35
35
  import { removeUnreachableCode } from './transforms/remove-unreachable-code.js';
@@ -47,12 +47,11 @@ const DEFAULT_SEED = 0;
47
47
  // Real inputs settle in a handful of iterations. Hitting this cap signals an
48
48
  // algorithmic bug; never raise it as a workaround.
49
49
  const FIXED_POINT_ITERATION_CAP = 10;
50
- // Mangling must see quoted access and class fields before preparation erases
51
- // those shapes. It is opt-in because outside code may use the same properties.
50
+ // Mangling must see quoted access before preparation erases that distinction.
51
+ // It is opt-in because outside code may use the same properties.
52
52
  const BEFORE_PREPARATION = [['mangleProperties', mangleProperties]];
53
53
  // Shape-normalizing passes. Always run; never exposed in `options.transforms`.
54
54
  const PREPARATION = [
55
- ['rewriteClassFields', asBoolean(rewriteClassFields)],
56
55
  ['expandDestructuring', asBoolean(expandDestructuring)],
57
56
  ['wrapSingleStatements', asBoolean(wrapSingleStatements)],
58
57
  ['splitSequenceExpressions', asBoolean(splitSequenceExpressions)],
@@ -116,6 +115,10 @@ const POST_PROCESS = [
116
115
  ];
117
116
  // Renaming runs last because later transforms depend on recognizable bindings.
118
117
  const RENAME = [['renameIdentifiers', renameIdentifiers]];
118
+ // Packing serializes the finished program to a string and rebuilds it through
119
+ // the Function constructor. It must see final names and shapes, so it runs after
120
+ // every other rewrite, including renaming.
121
+ const PACK = [['pack', pack]];
119
122
  /** Parses, transforms, and prints JavaScript without mutating external state. */
120
123
  export function obfuscate(code, options = {}) {
121
124
  const log = options.verbose ? makeLogger() : null;
@@ -158,6 +161,12 @@ export function obfuscate(code, options = {}) {
158
161
  }
159
162
  run(log, name, () => fn(ast, ctxFor(name, options, baseCtx)));
160
163
  }
164
+ for (const [name, fn] of PACK) {
165
+ if (!isEnabled(name, options)) {
166
+ continue;
167
+ }
168
+ run(log, name, () => fn(ast, ctxFor(name, options, baseCtx)));
169
+ }
161
170
  return run(log, 'generate', () => generate(ast, { minified: options.minify ?? false, shouldPrintComment }).code);
162
171
  }
163
172
  function isEnabled(name, options) {
@@ -174,6 +183,9 @@ function ctxFor(name, options, base) {
174
183
  if (name === 'mangleProperties' && entry && typeof entry === 'object') {
175
184
  return { ...context, mangleProperties: entry };
176
185
  }
186
+ if (name === 'pack' && entry && typeof entry === 'object') {
187
+ return { ...context, pack: entry };
188
+ }
177
189
  return context;
178
190
  }
179
191
  function runFixedPoint(ast, options, ctx, log) {
@@ -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 are always enabled and
4
4
  * do not appear here.
5
5
  */
6
- export type TransformName = 'dropConsole' | 'dropDebugger' | 'constToLet' | 'constLetToVar' | 'argumentsToParameters' | 'objectMethodToProperty' | 'foldConstants' | 'foldBuiltinMethods' | 'extractObjectProperties' | 'inlineFunctions' | 'removeUnreachableCode' | 'removeUnusedCode' | 'removeAnonymousFunctionNames' | 'collapseSingleUseTemps' | 'arrowToFunction' | 'functionDeclarationToExpression' | 'switchToIf' | 'forToWhile' | 'doWhileToWhile' | 'updateToAssignment' | 'expandBinaryAssignment' | 'expandLogicalAssignment' | 'optionalChainingToTernary' | 'nullishCoalescingToTernary' | 'logicalToTernary' | 'ternaryToIf' | 'packDeclarationsIntoParameters' | 'yodifyConditions' | 'specialsToStrings' | 'numbersToStrings' | 'mangleProperties' | 'renameIdentifiers';
6
+ export type TransformName = 'dropConsole' | 'dropDebugger' | 'constToLet' | 'constLetToVar' | 'argumentsToParameters' | 'objectMethodToProperty' | 'foldConstants' | 'foldBuiltinMethods' | 'extractObjectProperties' | 'inlineFunctions' | 'removeUnreachableCode' | 'removeUnusedCode' | 'removeAnonymousFunctionNames' | 'collapseSingleUseTemps' | 'arrowToFunction' | 'functionDeclarationToExpression' | 'switchToIf' | 'forToWhile' | 'doWhileToWhile' | 'updateToAssignment' | 'expandBinaryAssignment' | 'expandLogicalAssignment' | 'optionalChainingToTernary' | 'nullishCoalescingToTernary' | 'logicalToTernary' | 'ternaryToIf' | 'packDeclarationsIntoParameters' | 'yodifyConditions' | 'specialsToStrings' | 'numbersToStrings' | 'mangleProperties' | 'renameIdentifiers' | 'pack';
7
7
  type TransformEntry = boolean | {
8
8
  stringGeneratorMode?: StringGeneratorModeOption;
9
9
  };
@@ -40,9 +40,20 @@ export interface ManglePropertiesOptions {
40
40
  /** Mangle accesses rooted at undeclared identifiers. Default `false`. */
41
41
  undeclared?: boolean;
42
42
  }
43
- type SimpleTransform = Exclude<TransformName, 'mangleProperties' | 'renameIdentifiers' | 'specialsToStrings'>;
43
+ /** Options for the `Function`-constructor packing transform. */
44
+ export interface PackOptions {
45
+ /**
46
+ * Skip the strict-mode directive so the packed body runs sloppy even when the
47
+ * source is strict. This deliberately changes behavior. Default `false`.
48
+ */
49
+ escapeStrict?: boolean;
50
+ /** Override the default string-generator mode for the names pack creates. */
51
+ stringGeneratorMode?: StringGeneratorModeOption;
52
+ }
53
+ type SimpleTransform = Exclude<TransformName, 'mangleProperties' | 'pack' | 'renameIdentifiers' | 'specialsToStrings'>;
44
54
  type TransformsMap = Partial<Record<SimpleTransform, boolean>> & {
45
55
  mangleProperties?: boolean | ManglePropertiesOptions;
56
+ pack?: boolean | PackOptions;
46
57
  renameIdentifiers?: TransformEntry;
47
58
  specialsToStrings?: TransformEntry;
48
59
  };
@@ -67,6 +78,7 @@ export interface ObfuscatorOptions {
67
78
  }
68
79
  export interface TransformContext {
69
80
  mangleProperties?: ManglePropertiesOptions;
81
+ pack?: PackOptions;
70
82
  seed: number;
71
83
  stringGeneratorMode: StringGeneratorModeOption;
72
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAE3E;;;GAGG;AACH,MAAM,MAAM,aAAa,GACrB,aAAa,GACb,cAAc,GACd,YAAY,GACZ,eAAe,GACf,uBAAuB,GACvB,wBAAwB,GACxB,eAAe,GACf,oBAAoB,GACpB,yBAAyB,GACzB,iBAAiB,GACjB,uBAAuB,GACvB,kBAAkB,GAClB,8BAA8B,GAC9B,wBAAwB,GACxB,iBAAiB,GACjB,iCAAiC,GACjC,YAAY,GACZ,YAAY,GACZ,gBAAgB,GAChB,oBAAoB,GACpB,wBAAwB,GACxB,yBAAyB,GACzB,2BAA2B,GAC3B,4BAA4B,GAC5B,kBAAkB,GAClB,aAAa,GACb,gCAAgC,GAChC,kBAAkB,GAClB,mBAAmB,GACnB,kBAAkB,GAClB,kBAAkB,GAClB,mBAAmB,CAAA;AAGvB,KAAK,cAAc,GAAG,OAAO,GAAG;IAAE,mBAAmB,CAAC,EAAE,yBAAyB,CAAA;CAAE,CAAA;AAEnF,2DAA2D;AAC3D,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;AAE7D,0EAA0E;AAC1E,MAAM,WAAW,uBAAuB;IACtC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3B,2EAA2E;IAC3E,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IAC/B,sFAAsF;IACtF,aAAa,CAAC,EAAE,qBAAqB,CAAA;IACrC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5B,qEAAqE;IACrE,mBAAmB,CAAC,EAAE,yBAAyB,CAAA;IAC/C,yEAAyE;IACzE,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,KAAK,eAAe,GAAG,OAAO,CAC5B,aAAa,EACb,kBAAkB,GAAG,mBAAmB,GAAG,mBAAmB,CAC/D,CAAA;AAED,KAAK,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,GAAG;IAC/D,gBAAgB,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAA;IACpD,iBAAiB,CAAC,EAAE,cAAc,CAAA;IAClC,iBAAiB,CAAC,EAAE,cAAc,CAAA;CACnC,CAAA;AAED,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,aAAa,CAAA;IAC1B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,yBAAyB,CAAA;IAC/C,oFAAoF;IACpF,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAGD,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,CAAC,EAAE,uBAAuB,CAAA;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,mBAAmB,EAAE,yBAAyB,CAAA;CAC/C"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import type { TransformContext } from '../options.js';
6
6
  * that this pipeline must leave unchanged.
7
7
  *
8
8
  * This pass runs before shape preparation, while Babel still distinguishes
9
- * `obj.name` from `obj["name"]` and class fields still carry their source keys.
9
+ * `obj.name` from `obj["name"]`.
10
10
  *
11
11
  * @example
12
12
  * // ◀️ before
@@ -11,7 +11,7 @@ import { StringGenerator } from '../utils/string-generator.js';
11
11
  * that this pipeline must leave unchanged.
12
12
  *
13
13
  * This pass runs before shape preparation, while Babel still distinguishes
14
- * `obj.name` from `obj["name"]` and class fields still carry their source keys.
14
+ * `obj.name` from `obj["name"]`.
15
15
  *
16
16
  * @example
17
17
  * // ◀️ before
@@ -155,7 +155,10 @@ function transformChain(path) {
155
155
  }
156
156
  let check;
157
157
  if (path.scope.isStatic(chain)) {
158
- check = chain;
158
+ // The receiver stays in the member expression, so the check needs its own
159
+ // node. One node under two parents is visited twice, and a later in-place
160
+ // rewrite such as renameIdentifiers then applies itself twice to it.
161
+ check = t.cloneNode(chain);
159
162
  }
160
163
  else {
161
164
  const tmp = path.scope.generateUidIdentifierBasedOnNode(chain);
@@ -193,7 +196,7 @@ function transformChain(path) {
193
196
  if (isDelete && i === optionals.length - 1) {
194
197
  alternate = t.unaryExpression('delete', alternate);
195
198
  }
196
- const newTernary = t.conditionalExpression(condition, shortCircuit, alternate);
199
+ const newTernary = t.conditionalExpression(condition, t.cloneNode(shortCircuit), alternate);
197
200
  const replaced = replacementPath.replaceWith(newTernary)[0];
198
201
  replacementPath = replaced.get('alternate');
199
202
  }
@@ -1 +1 @@
1
- {"version":3,"file":"optional-chaining-to-ternary.js","sourceRoot":"","sources":["../../src/transforms/optional-chaining-to-ternary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"optional-chaining-to-ternary.js","sourceRoot":"","sources":["../../src/transforms/optional-chaining-to-ternary.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAGjC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAG9D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,yBAAyB,CAAC,GAAS;IACjD,OAAO,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;AACzC,CAAC;AAED,MAAM,OAAO,GAAyB;IACpC,wBAAwB,CAAC,IAAI,EAAE,KAAK;QAClC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAA;QACtB,CAAC;IACH,CAAC;IACD,sBAAsB,CAAC,IAAI,EAAE,KAAK;QAChC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAA;QACtB,CAAC;IACH,CAAC;CACF,CAAA;AAED,SAAS,kBAAkB,CAAC,IAAkB;IAC5C,kEAAkE;IAClE,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,8EAA8E;IAC9E,oBAAoB;IACpB,IAAI,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACtD,IAAI,CAAC,IAAI,EAAE,CAAA;QACX,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,cAAc,CAAC,IAAI,CAAC,CAAA;AAC7B,CAAC;AAED,6CAA6C;AAC7C,SAAS,uBAAuB,CAAC,IAAkB;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAA;IAC9B,OAAO,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,0BAA0B,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAA;AAC/F,CAAC;AAKD,SAAS,qBAAqB,CAAC,IAAc;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAA;IAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,MAAM,CAAC,0BAA0B,EAAE,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAA;IACzC,CAAC;IACD,IAAI,MAAM,CAAC,wBAAwB,EAAE,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAA;IACzC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,kFAAkF;AAClF,gFAAgF;AAChF,6CAA6C;AAC7C,SAAS,aAAa,CAAC,IAAkB;IACvC,IAAI,IAAI,GAAW,IAAI,CAAC,IAAI,CAAA;IAC5B,SAAS,CAAC;QACR,IAAI,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,MAAM,GAAW,IAAI,CAAC,MAAM,CAAA;YAClC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBAC5F,OAAO,IAAI,CAAA;YACb,CAAC;YACD,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAA;YACb,CAAC;YACD,IAAI,GAAG,MAAM,CAAA;QACf,CAAC;aAAM,IAAI,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAW,IAAI,CAAC,MAAM,CAAA;YAClC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAA;YACb,CAAC;YACD,IAAI,GAAG,MAAM,CAAA;QACf,CAAC;aAAM,CAAC;YACN,MAAK;QACP,CAAC;IACH,CAAC;IACD,IAAI,KAAK,GAAW,IAAI,CAAC,IAAI,CAAA;IAC7B,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAA;IAC5B,OAAO,MAAM,EAAE,yBAAyB,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;QAC/E,KAAK,GAAG,MAAM,CAAC,IAAI,CAAA;QACnB,MAAM,GAAG,MAAM,CAAC,UAAU,CAAA;IAC5B,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC5F,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,MAAM,CAAC,0BAA0B,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,CAAA;AACzE,CAAC;AAED,SAAS,cAAc,CAAC,IAAkB;IACxC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,SAAS,GAA8C,EAAE,CAAA;IAE/D,IAAI,GAAG,GAAa,IAAI,CAAA;IACxB,OAAO,GAAG,CAAC,0BAA0B,EAAE,IAAI,GAAG,CAAC,wBAAwB,EAAE,EAAE,CAAC;QAC1E,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;QACpB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,SAAS,CAAC,IAAI,CAAC,IAAwD,CAAC,CAAA;QAC1E,CAAC;QACD,yDAAyD;QACzD,IAAI,GAAG,CAAC,0BAA0B,EAAE,EAAE,CAAC;YACrC,CAAC;YAAC,IAAoC,CAAC,IAAI,GAAG,kBAAkB,CAAA;YAChE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAa,CAAA;QACrC,CAAC;aAAM,CAAC;YACN,CAAC;YAAC,IAAoC,CAAC,IAAI,GAAG,gBAAgB,CAAA;YAC9D,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAa,CAAA;QACrC,CAAC;IACH,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAA;IAC9B,MAAM,QAAQ,GACZ,MAAM,KAAK,IAAI;QACf,MAAM,CAAC,iBAAiB,EAAE;QAC1B,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ;QACjC,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAA;IAEpC,gDAAgD;IAChD,MAAM,YAAY,GAAiB,QAAQ;QACzC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC;QACxB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;IAElD,IAAI,eAAe,GAAa,IAAI,CAAA;IAEpC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAE,CAAA;QAC1B,MAAM,MAAM,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACvC,MAAM,KAAK,GAA2B,MAAM;YAC1C,CAAC,CAAG,IAAyB,CAAC,MAAiC;YAC/D,CAAC,CAAE,IAA2B,CAAC,MAAM,CAAA;QAEvC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,KAAmB,CAAA;QAEvB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,0EAA0E;YAC1E,0EAA0E;YAC1E,qEAAqE;YACrE,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,KAAK,CAAC,CAAA;YAC9D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACzC,KAAK,GAAG,CAAC,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;YAC5D,IAAI,MAAM,EAAE,CAAC;gBACX,CAAC;gBAAC,IAAyB,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YACvD,CAAC;iBAAM,CAAC;gBACN,CAAC;gBAAC,IAA2B,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YACzD,CAAC;QACH,CAAC;QAED,8DAA8D;QAC9D,IAAI,MAAM,IAAI,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,IAAwB,CAAA;YACzC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;YACxB,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvB,IAAI,OAAqB,CAAA;gBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAA;gBACzD,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;oBAC/B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,oBAAoB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;gBAC9D,CAAC;qBAAM,CAAC;oBACN,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAiB,CAAA;gBAC/C,CAAC;gBACD,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;gBAChD,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAsB,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;YAC7F,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;QAElE,IAAI,SAAS,GAAG,eAAe,CAAC,IAAoB,CAAA;QACpD,IAAI,QAAQ,IAAI,CAAC,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,SAAS,GAAG,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;QACpD,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,CAAC,qBAAqB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAA;QAC3F,MAAM,QAAQ,GAAsC,eAAe,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9F,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,6EAA6E;QAC7E,MAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { File } from '@babel/types';
2
+ import type { TransformContext } from '../options.js';
3
+ /**
4
+ * Serializes the whole program to a string and rebuilds it at runtime through
5
+ * the `Function` constructor. A detached function body only reaches true globals
6
+ * and its own parameters. A free name might instead be a CommonJS `require`, a
7
+ * bundler-injected binding, or a live import, none reachable from the body and
8
+ * none distinguishable from a global at build time, so free names are routed
9
+ * through a parameter object whose accessors run in the original top-level scope
10
+ * and resolve each name there. Import declarations return above the call. `eval`
11
+ * is left un-routed so a direct eval still reads the body scope. Names inside a
12
+ * `with` stay un-routed too, since they may resolve against the with object at
13
+ * runtime. Export statements cannot live inside a Function body, so pack throws
14
+ * on them. It packs everything else as written. Code that needs `import.meta`,
15
+ * top-level await, dynamic `import()`, or a top-level `arguments` will not run
16
+ * once moved into a Function body.
17
+ *
18
+ * @example
19
+ * // ◀️ before
20
+ * console.log(value);
21
+ *
22
+ * // ▶️ after
23
+ * Function("M", "return M[\"b\"].log(M[\"_\"]);")({
24
+ * get "b"() {
25
+ * return console;
26
+ * },
27
+ * get "_"() {
28
+ * return value;
29
+ * }
30
+ * });
31
+ */
32
+ export declare function pack(ast: File, ctx: TransformContext): boolean;
33
+ //# sourceMappingURL=pack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../../src/transforms/pack.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAExC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAMnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAY9D"}
@@ -0,0 +1,266 @@
1
+ import generate from '@babel/generator';
2
+ import traverse from '@babel/traverse';
3
+ import * as t from '@babel/types';
4
+ import { isInsideWith } from '../utils/ast.js';
5
+ import { isCalleeOrTagOf, isInStrictContext, referencesOrWritesVariable } from '../utils/paths.js';
6
+ import { mulberry32 } from '../utils/random.js';
7
+ import { StringGenerator } from '../utils/string-generator.js';
8
+ /**
9
+ * Serializes the whole program to a string and rebuilds it at runtime through
10
+ * the `Function` constructor. A detached function body only reaches true globals
11
+ * and its own parameters. A free name might instead be a CommonJS `require`, a
12
+ * bundler-injected binding, or a live import, none reachable from the body and
13
+ * none distinguishable from a global at build time, so free names are routed
14
+ * through a parameter object whose accessors run in the original top-level scope
15
+ * and resolve each name there. Import declarations return above the call. `eval`
16
+ * is left un-routed so a direct eval still reads the body scope. Names inside a
17
+ * `with` stay un-routed too, since they may resolve against the with object at
18
+ * runtime. Export statements cannot live inside a Function body, so pack throws
19
+ * on them. It packs everything else as written. Code that needs `import.meta`,
20
+ * top-level await, dynamic `import()`, or a top-level `arguments` will not run
21
+ * once moved into a Function body.
22
+ *
23
+ * @example
24
+ * // ◀️ before
25
+ * console.log(value);
26
+ *
27
+ * // ▶️ after
28
+ * Function("M", "return M[\"b\"].log(M[\"_\"]);")({
29
+ * get "b"() {
30
+ * return console;
31
+ * },
32
+ * get "_"() {
33
+ * return value;
34
+ * }
35
+ * });
36
+ */
37
+ export function pack(ast, ctx) {
38
+ let programPath = null;
39
+ traverse(ast, {
40
+ Program(path) {
41
+ programPath = path;
42
+ path.stop();
43
+ },
44
+ });
45
+ if (!programPath) {
46
+ return false;
47
+ }
48
+ return packProgram(programPath, ctx);
49
+ }
50
+ function packProgram(programPath, ctx) {
51
+ assertNoExports(programPath);
52
+ const importPaths = collectImportDeclarations(programPath);
53
+ const importDeclarations = importPaths.map((path) => path.node);
54
+ // An import named `Function` shadows the constructor at the output top level,
55
+ // so the wrap reaches the real one through a function instance instead.
56
+ const shadowedConstructor = importDeclarations.some((declaration) => bindsFunctionConstructor(declaration));
57
+ const programNode = programPath.node;
58
+ const wasModule = programNode.sourceType === 'module';
59
+ // Escaping strict is a deliberate opt-in: drop the directive so the packed
60
+ // body runs sloppy even when the source was strict.
61
+ const escapeStrict = ctx.pack?.escapeStrict ?? false;
62
+ const bodyStrict = !escapeStrict && isInStrictContext(programPath);
63
+ // Detaching imports drops their bindings, so their names read as free and are
64
+ // routed like any other global. The declarations return at the output top
65
+ // level, where the accessors close over them.
66
+ for (const path of importPaths) {
67
+ path.remove();
68
+ }
69
+ programPath.scope.crawl();
70
+ const usedNames = collectUsedNames(programNode, importDeclarations);
71
+ const generator = new StringGenerator(ctx.stringGeneratorMode, mulberry32(ctx.seed));
72
+ const freshIdentifier = () => {
73
+ let name;
74
+ do {
75
+ name = generator.next();
76
+ } while (usedNames.has(name));
77
+ usedNames.add(name);
78
+ return name;
79
+ };
80
+ const objectName = freshIdentifier();
81
+ const setterParam = freshIdentifier();
82
+ const readProperties = new Map();
83
+ const typeofProperties = new Map();
84
+ const settable = new Set();
85
+ const propertyFor = (registry, name) => {
86
+ let property = registry.get(name);
87
+ if (property === undefined) {
88
+ do {
89
+ // `__proto__` as an object-literal key would set the prototype rather
90
+ // than name an accessor.
91
+ property = generator.next();
92
+ } while (property === '__proto__');
93
+ registry.set(name, property);
94
+ }
95
+ return property;
96
+ };
97
+ const memberFor = (property) => t.memberExpression(t.identifier(objectName), t.stringLiteral(property), true);
98
+ const isRoutable = (path) => {
99
+ const { name } = path.node;
100
+ // The wrapper parameter stays as written. `arguments` and `eval` are never
101
+ // routed: `arguments` binds to its own function's object, and leaving `eval`
102
+ // bare keeps a direct eval reading the body scope rather than the global one.
103
+ if (name === objectName || name === 'arguments' || name === 'eval') {
104
+ return false;
105
+ }
106
+ // Inside `with`, a free name may resolve to a property of the with object at
107
+ // runtime, so routing it to the top-level accessor would change behavior.
108
+ if (isInsideWith(path)) {
109
+ return false;
110
+ }
111
+ if (!referencesOrWritesVariable(path)) {
112
+ return false;
113
+ }
114
+ return !path.scope.getBinding(name);
115
+ };
116
+ const routingVisitor = {
117
+ UnaryExpression(path) {
118
+ if (path.node.operator !== 'typeof') {
119
+ return;
120
+ }
121
+ const argument = path.get('argument');
122
+ // A bare `typeof name` must not throw for an undeclared global, so it maps
123
+ // to an accessor that applies `typeof` in the original scope.
124
+ if (!argument.isIdentifier() || !isRoutable(argument)) {
125
+ return;
126
+ }
127
+ path.replaceWith(memberFor(propertyFor(typeofProperties, argument.node.name)));
128
+ },
129
+ Identifier(path) {
130
+ // `delete name` must keep hitting the global binding; `delete obj[prop]`
131
+ // would drop the accessor instead. A real global stays reachable bare.
132
+ if (isBareDeleteArgument(path) || !isRoutable(path)) {
133
+ return;
134
+ }
135
+ const { name } = path.node;
136
+ if (isWriteReference(path)) {
137
+ settable.add(name);
138
+ }
139
+ const member = memberFor(propertyFor(readProperties, name));
140
+ // A member callee would bind `this` to the object; the comma discards the
141
+ // base and keeps the original receiver.
142
+ path.replaceWith(isCalleeOrTagOf(path) ? t.sequenceExpression([t.numericLiteral(0), member]) : member);
143
+ },
144
+ };
145
+ programPath.traverse(routingVisitor);
146
+ // The script completion value is its trailing expression; returning it keeps
147
+ // `eval` of the packed output producing the same value.
148
+ const { body } = programNode;
149
+ const lastStatement = body.at(-1);
150
+ if (lastStatement && t.isExpressionStatement(lastStatement)) {
151
+ body[body.length - 1] = t.returnStatement(lastStatement.expression);
152
+ }
153
+ const innerDirectives = bodyStrict ? [t.directive(t.directiveLiteral('use strict'))] : [];
154
+ const innerCode = generate(t.program(body, innerDirectives, 'script'), {
155
+ minified: true,
156
+ comments: false,
157
+ }).code;
158
+ const objectExpression = buildAccessorObject({
159
+ readProperties,
160
+ typeofProperties,
161
+ settable,
162
+ setterParam,
163
+ strict: bodyStrict,
164
+ });
165
+ const constructorReference = shadowedConstructor
166
+ ? t.memberExpression(t.functionExpression(null, [], t.blockStatement([])), t.identifier('constructor'))
167
+ : t.identifier('Function');
168
+ const wrapper = t.callExpression(constructorReference, [
169
+ t.stringLiteral(objectName),
170
+ t.stringLiteral(innerCode),
171
+ ]);
172
+ // A strict script keeps top-level `this` bound to the global object. A plainly
173
+ // called strict function would instead see `undefined`, so pass the global
174
+ // `this` of the sloppy output script.
175
+ const invocation = bodyStrict && !wasModule
176
+ ? t.callExpression(t.memberExpression(wrapper, t.identifier('call')), [
177
+ t.thisExpression(),
178
+ objectExpression,
179
+ ])
180
+ : t.callExpression(wrapper, [objectExpression]);
181
+ programNode.body = [...importDeclarations, t.expressionStatement(invocation)];
182
+ programNode.directives = [];
183
+ programNode.sourceType = importDeclarations.length > 0 ? 'module' : 'script';
184
+ return true;
185
+ }
186
+ // Export statements are module-only syntax and cannot exist inside a Function
187
+ // body. Pack throws rather than emit output that fails to parse at runtime.
188
+ function assertNoExports(programPath) {
189
+ const hasExport = programPath.node.body.some((statement) => t.isExportNamedDeclaration(statement) ||
190
+ t.isExportDefaultDeclaration(statement) ||
191
+ t.isExportAllDeclaration(statement));
192
+ if (hasExport) {
193
+ throw new Error('pack cannot wrap a program that uses export statements');
194
+ }
195
+ }
196
+ function collectImportDeclarations(programPath) {
197
+ return programPath
198
+ .get('body')
199
+ .filter((statement) => statement.isImportDeclaration());
200
+ }
201
+ function bindsFunctionConstructor(declaration) {
202
+ return declaration.specifiers.some((specifier) => specifier.local.name === 'Function');
203
+ }
204
+ function isBareDeleteArgument(path) {
205
+ const parent = path.parentPath;
206
+ return (parent != null &&
207
+ parent.isUnaryExpression({ operator: 'delete' }) &&
208
+ parent.node.argument === path.node);
209
+ }
210
+ function isWriteReference(path) {
211
+ const parent = path.parentPath;
212
+ if (!parent) {
213
+ return false;
214
+ }
215
+ const { node } = path;
216
+ if (parent.isAssignmentExpression() && parent.node.left === node) {
217
+ return true;
218
+ }
219
+ if (parent.isUpdateExpression() && parent.node.argument === node) {
220
+ return true;
221
+ }
222
+ if ((parent.isForInStatement() || parent.isForOfStatement()) && parent.node.left === node) {
223
+ return true;
224
+ }
225
+ // Destructuring assignment targets bind through patterns Babel flags here.
226
+ return path.isBindingIdentifier();
227
+ }
228
+ function collectUsedNames(program, importDeclarations) {
229
+ // The wrapper parameter and setter parameter must avoid every name the body
230
+ // uses, so no nested binding can shadow their accesses.
231
+ const names = new Set(['Function']);
232
+ for (const declaration of importDeclarations) {
233
+ for (const specifier of declaration.specifiers) {
234
+ names.add(specifier.local.name);
235
+ }
236
+ }
237
+ t.traverseFast(program, (node) => {
238
+ if (t.isIdentifier(node)) {
239
+ names.add(node.name);
240
+ }
241
+ });
242
+ return names;
243
+ }
244
+ function buildAccessorObject(spec) {
245
+ const { readProperties, setterParam, settable, strict, typeofProperties } = spec;
246
+ const properties = [];
247
+ for (const [name, property] of readProperties) {
248
+ properties.push(t.objectMethod('get', t.stringLiteral(property), [], t.blockStatement([t.returnStatement(t.identifier(name))])));
249
+ if (settable.has(name)) {
250
+ const setterBody = t.blockStatement([
251
+ t.expressionStatement(t.assignmentExpression('=', t.identifier(name), t.identifier(setterParam))),
252
+ ]);
253
+ // A strict script becomes a sloppy output script, so the setter stays
254
+ // strict to keep an undeclared-global write throwing.
255
+ if (strict) {
256
+ setterBody.directives.push(t.directive(t.directiveLiteral('use strict')));
257
+ }
258
+ properties.push(t.objectMethod('set', t.stringLiteral(property), [t.identifier(setterParam)], setterBody));
259
+ }
260
+ }
261
+ for (const [name, property] of typeofProperties) {
262
+ properties.push(t.objectMethod('get', t.stringLiteral(property), [], t.blockStatement([t.returnStatement(t.unaryExpression('typeof', t.identifier(name)))])));
263
+ }
264
+ return t.objectExpression(properties);
265
+ }
266
+ //# sourceMappingURL=pack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack.js","sourceRoot":"","sources":["../../src/transforms/pack.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/utils/ast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAGjC,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAsB7D;AAGD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,IAAI,CAQzF;AAID,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAW5E;AAID,wBAAgB,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,OAAO,CAK/C;AAGD,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAKpD;AAID,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAYnE;AAyCD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,OAAO,CAEtD"}
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/utils/ast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAGjC,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAsB7D;AAGD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,IAAI,CAQzF;AAID,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAW5E;AAID,wBAAgB,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,OAAO,CAK/C;AAGD,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAKpD;AAID,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAYnE;AAyCD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,OAAO,CAQtD"}
package/dist/utils/ast.js CHANGED
@@ -107,6 +107,10 @@ function ownScopeHasDirectEval(owner) {
107
107
  return found;
108
108
  }
109
109
  export function isDirectEvalCall(node) {
110
- return t.isCallExpression(node) && t.isIdentifier(node.callee) && node.callee.name === 'eval';
110
+ // `eval?.(...)` is an OptionalCallExpression yet still a direct eval, so both
111
+ // call node shapes count.
112
+ return ((t.isCallExpression(node) || t.isOptionalCallExpression(node)) &&
113
+ t.isIdentifier(node.callee) &&
114
+ node.callee.name === 'eval');
111
115
  }
112
116
  //# sourceMappingURL=ast.js.map