Skip to content

Fails at import statement with "with" or "assert"  #1256

@Timtendo12

Description

@Timtendo12

Expected Behavior

The obsufcator sees this as normal js code.

Current Behavior

Currently it fails at import statements using "with" like:

import config from "../../config.json" with { type: "json" };

or

import config from "../../config.json" assert{ type: "json" };

Steps to Reproduce

  1. create a index.js
  2. import file using "with" operator
  3. run obfuscator
  4. see it fail

Your Environment

  • Obfuscator version used: ^4.1.0
  • Node version used: v20.13.1

Stack trace

Error: ERROR at line 12: Unexpected token (12:39)
> ..../config.json" with { type: "j...
    at Function.processParsingError (C:\Users\Bamad\WebstormProjects\BirdieAI\src\node_modules\javascript-obfuscator\dist\webpack:\javascript-obfuscator\src\ASTParserFacade.ts:77:15)
    at Function.parse (C:\Users\Bamad\WebstormProjects\BirdieAI\src\node_modules\javascript-obfuscator\dist\webpack:\javascript-obfuscator\src\ASTParserFacade.ts:43:49)
    at o.parseCode (C:\Users\Bamad\WebstormProjects\BirdieAI\src\node_modules\javascript-obfuscator\dist\webpack:\javascript-obfuscator\src\JavaScriptObfuscator.ts:87:50)
    at obfuscate (C:\Users\Bamad\WebstormProjects\BirdieAI\src\node_modules\javascript-obfuscator\dist\webpack:\javascript-obfuscator\src\JavaScriptObfuscator.ts:78:30)
    at Function.obfuscate (C:\Users\Bamad\WebstormProjects\BirdieAI\src\node_modules\javascript-obfuscator\dist\webpack:\javascript-obfuscator\src\JavaScriptObfuscatorFacade.ts:16:56)
    at copyAndObfuscate (file:///C:/Users/Bamad/WebstormProjects/BirdieAI/src/builder/builder.js:57:54)
    at build (file:///C:/Users/Bamad/WebstormProjects/BirdieAI/src/builder/builder.js:34:5)
    at file:///C:/Users/Bamad/WebstormProjects/BirdieAI/src/builder/builder.js:98:1
    at ModuleJob.run (node:internal/modules/esm/module_job:222:25)
    at ModuleLoader.import (node:internal/modules/esm/loader:316:24)

Minimal working example that will help to reproduce issue

Just put import config from "../../config.json" with { type: "json" }; in any file.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions