SPACEBROWSER_INTERFACE/interface_081225/extractMap/extractmap.js

46 lines
1.3 KiB
JavaScript

// extract-map.js
const fs = require("fs-extra");
const path = require("path");
(async () => {
const mapPath = path.resolve(__dirname, "./raw_server_files/main.4a129bba.chunk.js.map");
const outputDir = path.resolve(__dirname, "sources_from_map");
const rawMap = await fs.readFile(mapPath, "utf-8");
const map = JSON.parse(rawMap);
if (!map.sources || !map.sourcesContent) {
throw new Error("❌ Invalid .map file: missing sources or sourcesContent");
}
let saved = 0;
for (let i = 0; i < map.sources.length; i++) {
const src = map.sources[i];
const content = map.sourcesContent[i];
if (!src || !content) continue;
// Clean up the filename
let filePath = src
.replace(/^webpack:\/\//, "")
.replace(/^\/+/, "")
.replace(/\?.*$/, ""); // remove query params
if (filePath.endsWith("/")) filePath += "index.js";
if (!path.extname(filePath)) filePath += ".js";
const outputPath = path.resolve(outputDir, filePath);
await fs.ensureDir(path.dirname(outputPath));
await fs.writeFile(outputPath, content, "utf-8");
console.log(`💾 Saved: ${filePath}`);
saved++;
}
if (saved === 0) {
console.warn("⚠️ No files were saved.");
} else {
console.log(`✅ Extracted and saved ${saved} files to: ${outputDir}`);
}
})();