mirror of
https://github.com/javascript-obfuscator/javascript-obfuscator
synced 2026-08-09 12:42:29 +00:00
fix: dynamic import
This commit is contained in:
@@ -28,6 +28,7 @@ export enum NodeType {
|
||||
Identifier = 'Identifier',
|
||||
IfStatement = 'IfStatement',
|
||||
ImportDeclaration = 'ImportDeclaration',
|
||||
ImportExpression = 'ImportExpression',
|
||||
ImportDefaultSpecifier = 'ImportDefaultSpecifier',
|
||||
ImportNamespaceSpecifier = 'ImportNamespaceSpecifier',
|
||||
ImportSpecifier = 'ImportSpecifier',
|
||||
|
||||
+9
-7
@@ -32,13 +32,15 @@ export class IgnoredRequireImportObfuscatingGuard implements IObfuscatingGuard {
|
||||
* @returns {ObfuscatingGuardResult}
|
||||
*/
|
||||
public check (node: ESTree.Node): ObfuscatingGuardResult {
|
||||
if (
|
||||
this.options.ignoreRequireImports
|
||||
&& NodeGuards.isCallExpressionNode(node)
|
||||
&& NodeGuards.isIdentifierNode(node.callee)
|
||||
&& node.callee.name === 'require'
|
||||
) {
|
||||
return ObfuscatingGuardResult.Ignore;
|
||||
if (this.options.ignoreRequireImports) {
|
||||
if (
|
||||
NodeGuards.isCallExpressionNode(node)
|
||||
&& NodeGuards.isIdentifierNode(node.callee)
|
||||
&& node.callee.name === 'require'
|
||||
) { return ObfuscatingGuardResult.Ignore; }
|
||||
if (
|
||||
NodeGuards.isImportExpressionNode(node)
|
||||
) { return ObfuscatingGuardResult.Ignore; }
|
||||
}
|
||||
|
||||
return ObfuscatingGuardResult.Transform;
|
||||
|
||||
@@ -266,6 +266,14 @@ export class NodeGuards {
|
||||
return node.type === NodeType.ImportDeclaration;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Node} node
|
||||
* @returns {boolean}
|
||||
*/
|
||||
public static isImportExpressionNode (node: ESTree.Node): node is ESTree.ImportExpression {
|
||||
return node.type === NodeType.ImportExpression;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Node} node
|
||||
* @returns {boolean}
|
||||
|
||||
+2
-1
@@ -40,7 +40,8 @@ describe('IgnoredRequireImportObfuscatingGuard', () => {
|
||||
const obfuscatingGuardRegExp: RegExp = new RegExp(
|
||||
'const foo *= *require\\(_0x(?:[a-f0-9]){4,6}\\(0x0\\)\\);.*' +
|
||||
'import _0x(?:[a-f0-9]){4,6} from *\'\\./bar\';.*' +
|
||||
'const baz *= *_0x(?:[a-f0-9]){4,6}\\(0x1\\);'
|
||||
'const baz *= *_0x(?:[a-f0-9]){4,6}\\(0x1\\);' +
|
||||
'const qux *= *import\\(_0x(?:[a-f0-9]){4,6}\\(0x0\\)\\);.*'
|
||||
);
|
||||
|
||||
let obfuscatedCode: string;
|
||||
|
||||
+2
-1
@@ -1,3 +1,4 @@
|
||||
const foo = require('./foo');
|
||||
import bar from './bar';
|
||||
const baz = 'baz';
|
||||
const baz = 'baz';
|
||||
const qux = await import('quux')
|
||||
Reference in New Issue
Block a user