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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions