Skip to content

Commit 10fe3ec

Browse files
committed
dependency lift + appropriate code changes and adjusted README since stringArrayEncoding is expected to be a string array
1 parent 70395d5 commit 10fe3ec

6 files changed

+4110
-1182
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ interface ObfuscatorOptions {
113113
sourceMapFileName?: string
114114
sourceMapMode?: "separate" | "inline"
115115
stringArray?: boolean
116-
stringArrayEncoding?: boolean
116+
stringArrayEncoding?: string[]
117117
stringArrayThreshold?: 0.75
118118
target?: "browser" | "extension" | "node"
119119
unicodeEscapeSequence?: boolean

package.json

+13-15
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,15 @@
88
"license": "MIT",
99
"dependencies": {
1010
"@types/app-root-path": "^1.2.4",
11-
"@types/babel-core": "^6.25.3",
12-
"@types/babel-generator": "^6.25.1",
13-
"babel-traverse": "^6.26.0",
14-
"babylon": "^6.18.0",
15-
"@types/node": "^9.3.0",
16-
"@types/semver": "^5.4.0",
11+
"@types/babel__core": "^7.1.14",
12+
"@types/babel__generator": "^7.6.2",
13+
"@types/node": "^14.14.37",
14+
"@types/semver": "^7.3.4",
1715
"app-root-path": "^2.0.1",
18-
"babel-generator": "^6.26.1",
19-
"babel-traverse": "^6.26.0",
20-
"babylon": "^6.18.0",
21-
"javascript-obfuscator": "^2.6.0",
16+
"@babel/generator": "^7.13.9",
17+
"@babel/traverse": "^7.13.13",
18+
"@babel/parser": "^7.13.13",
19+
"javascript-obfuscator": "^2.11.0",
2220
"jju": "^1.3.0",
2321
"semver": "^5.4.1",
2422
"source-map": "^0.6.1"
@@ -39,18 +37,18 @@
3937
},
4038
"devDependencies": {
4139
"@types/jest": "^22.0.1",
42-
"babel-preset-react-native": "^1.9.1",
40+
"babel-preset-react-native": "^4.0.1",
4341
"husky": "^0.13.3",
44-
"jest": "^22.0.6",
42+
"jest": "^26.0.22",
4543
"lint-staged": "^3.4.1",
46-
"metro": "^0.45.6",
44+
"metro": "^0.65.2",
4745
"metro-bundler": "^0.22.1",
4846
"np": "^4.0.2",
4947
"prettier": "^1.10.2",
50-
"react-native": "^0.57.1",
48+
"react-native": "^0.64.0",
5149
"ts-jest": "^22.0.1",
5250
"ts-node": "^4.1.0",
53-
"typescript": "^2.6.2"
51+
"typescript": "^4.0.7"
5452
},
5553
"jest": {
5654
"transform": {

src/getMetroTransformer.ts

+28-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
import { Node } from "babel-core"
1+
import { Node } from "@babel/core"
22
import { RawSourceMap, SourceMapConsumer } from "source-map"
33
import * as semver from "semver"
44
import {
55
MetroRawSourceMap,
66
convertStandardSourceMapToMetroRawSourceMap,
77
} from "./composeSourceMaps"
8-
import * as babylon from "babylon"
9-
import traverse from "babel-traverse"
8+
import * as babylon from "@babel/parser"
9+
import traverse from "@babel/traverse"
10+
import generate from "@babel/generator";
1011

1112
export interface MetroTransformerResult {
1213
ast?: Node
@@ -100,3 +101,27 @@ export function maybeTransformMetroResult(
100101
return { code, map }
101102
}
102103
}
104+
105+
export function generateAndConvert(ast: Node, filename: string): MetroTransformerResult {
106+
let generatorResult = generate(ast, {
107+
filename: filename,
108+
retainLines: true,
109+
sourceMaps: true,
110+
sourceFileName: filename,
111+
});
112+
113+
if (!generatorResult.map) {
114+
return {code: generatorResult.code};
115+
}
116+
117+
const map = {
118+
version: generatorResult.map.version + "",
119+
mappings: generatorResult.map.mappings,
120+
names: generatorResult.map.names,
121+
sources: generatorResult.map.sources,
122+
sourcesContent: generatorResult.map.sourcesContent,
123+
file: generatorResult.map.file
124+
}
125+
126+
return {code: generatorResult.code, map: map};
127+
}

src/obfuscatingTransformer.ts

+2-8
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@ import * as path from "path"
44
import * as JavaScriptObfuscator from "javascript-obfuscator"
55
import { path as appRootPath } from "app-root-path"
66

7-
import generate from "babel-generator"
8-
97
import { getCallerFile } from "./getCallerFile"
108
import {
119
MetroTransformer,
10+
generateAndConvert,
1211
getMetroTransformer,
1312
MetroTransformerResult,
1413
maybeTransformMetroResult,
@@ -71,12 +70,7 @@ export function obfuscatingTransformer({
7170
const { code, map }: MetroTransformerResult = result.code
7271
? result
7372
: result.ast
74-
? (generate(result.ast, {
75-
filename: props.filename,
76-
retainLines: true,
77-
sourceMaps: true,
78-
sourceFileName: props.filename,
79-
}) as MetroTransformerResult)
73+
? generateAndConvert(result.ast, props.filename)
8074
: { code: "", map: "" }
8175

8276
if (!code) {

typings/javascript-obfuscator.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ declare module "javascript-obfuscator" {
2222
sourceMapFileName?: string
2323
sourceMapMode?: "separate" | "inline"
2424
stringArray?: boolean
25-
stringArrayEncoding?: boolean
25+
stringArrayEncoding?: string[]
2626
stringArrayThreshold?: 0.75
2727
target?: "browser" | "extension" | "node"
2828
unicodeEscapeSequence?: boolean

0 commit comments

Comments
 (0)