Generazione delle source map in cascata (se abilitate)
parent
8d9cf61ca7
commit
0e0e5caf85
52
index.js
52
index.js
|
|
@ -3,6 +3,7 @@
|
|||
var javascriptObfuscator = require("javascript-obfuscator");
|
||||
var fs = require("node:fs");
|
||||
var path = require("node:path");
|
||||
let { SourceMapConsumer, SourceMapGenerator } = require("source-map");
|
||||
function obfuscatorPlugin(obOptions) {
|
||||
let { excludeChunks, options } = obOptions || {};
|
||||
return {
|
||||
|
|
@ -25,18 +26,51 @@ function obfuscatorPlugin(obOptions) {
|
|||
let abs_path = path.join(output_options.dir, output_file);
|
||||
const obfuscationResult = javascriptObfuscator.obfuscate(
|
||||
chunk.code,
|
||||
options
|
||||
{
|
||||
...options,
|
||||
sourceMapFileName: "sourceMap", // questo lo fa indipendentemente da quello che gli metto (ed è importante per quello che succede dopo), quindi esplicito quello che lui fa già
|
||||
}
|
||||
);
|
||||
let code = obfuscationResult.getObfuscatedCode();
|
||||
await new Promise((resolve, reject) => {
|
||||
fs.writeFile(abs_path, code, (err) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
return;
|
||||
fs.writeFileSync(abs_path, code);
|
||||
console.log(
|
||||
` Obufuscated file written to ${abs_path}`
|
||||
);
|
||||
if (options.sourceMap) {
|
||||
let smap = obfuscationResult.getSourceMap();
|
||||
let abs_path_src = path.join(
|
||||
output_options.dir,
|
||||
output_file + ".map"
|
||||
);
|
||||
// let abs_path_dst = path.join(output_options.dir, 'obf-'+output_file+'.map');
|
||||
if (smap) {
|
||||
// leggo source map precedente
|
||||
let consumer1 = null;
|
||||
try {
|
||||
let content = fs.readFileSync(abs_path_src, {
|
||||
encoding: "utf-8",
|
||||
});
|
||||
consumer1 = await new SourceMapConsumer(JSON.parse(content));
|
||||
} catch (e) {
|
||||
console.error(
|
||||
" can't read original source map"
|
||||
);
|
||||
}
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
let write_map = "";
|
||||
if (consumer1) {
|
||||
let consumer2 = await new SourceMapConsumer(JSON.parse(smap));
|
||||
let generator = SourceMapGenerator.fromSourceMap(consumer2);
|
||||
generator.applySourceMap(consumer1, "sourceMap");
|
||||
write_map = generator.toString();
|
||||
} else {
|
||||
write_map = smap;
|
||||
}
|
||||
fs.writeFileSync(abs_path_src, write_map);
|
||||
console.log(
|
||||
` Source map written to ${abs_path_src}`
|
||||
);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
console.log(
|
||||
`[briq-vite-obfuscator-plugin] Ignoring chunk ${chunk.name} (explicitly excluded)`
|
||||
|
|
|
|||
|
|
@ -9,7 +9,8 @@
|
|||
"version": "0.1.0",
|
||||
"license": "BSD-2-Clause",
|
||||
"dependencies": {
|
||||
"javascript-obfuscator": "^4.1.1"
|
||||
"javascript-obfuscator": "^4.1.1",
|
||||
"source-map": "^0.7.6"
|
||||
}
|
||||
},
|
||||
"node_modules/@javascript-obfuscator/escodegen": {
|
||||
|
|
@ -30,6 +31,16 @@
|
|||
"source-map": "~0.6.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@javascript-obfuscator/escodegen/node_modules/source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"license": "BSD-3-Clause",
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@javascript-obfuscator/estraverse": {
|
||||
"version": "5.4.0",
|
||||
"resolved": "https://registry.npmjs.org/@javascript-obfuscator/estraverse/-/estraverse-5.4.0.tgz",
|
||||
|
|
@ -961,12 +972,12 @@
|
|||
}
|
||||
},
|
||||
"node_modules/source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"version": "0.7.6",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz",
|
||||
"integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==",
|
||||
"license": "BSD-3-Clause",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
"node": ">= 12"
|
||||
}
|
||||
},
|
||||
"node_modules/source-map-support": {
|
||||
|
|
@ -979,6 +990,15 @@
|
|||
"source-map": "^0.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/source-map-support/node_modules/source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"license": "BSD-3-Clause",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/string-template": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz",
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
"license": "BSD-2-Clause",
|
||||
"description": "",
|
||||
"dependencies": {
|
||||
"javascript-obfuscator": "^4.1.1"
|
||||
"javascript-obfuscator": "^4.1.1",
|
||||
"source-map": "^0.7.6"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue