vite-plugin-bundle-obfuscator
Version:
JavaScript obfuscator plugin for Vite environments
2 lines (1 loc) • 2.14 kB
JavaScript
;var g=Object.create;var p=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var z=(e,t,i,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of m(t))!h.call(e,o)&&o!==i&&p(e,o,{get:()=>t[o],enumerable:!(r=b(t,o))||r.enumerable});return e};var s=(e,t,i)=>(i=e!=null?g(S(e)):{},z(t||!e||!e.__esModule?p(i,"default",{value:e,enumerable:!0}):i,e));var n=require("worker_threads"),f=s(require("javascript-obfuscator"));var O=s(require("vite")),v=require("worker_threads"),R=s(require("path")),$=s(require("os")),F=require("zlib"),x=s(require("javascript-obfuscator"));var a=class{constructor(t){this._log=t?console.log.bind(console):this.noop}noop(){}forceLog(...t){console.log(...t)}info(t){this._log(t)}};var u=class e{constructor(){this.obfuscatedFiles=new Set}static getInstance(){return e.instance||(e.instance=new e),e.instance}markAsObfuscated(t){t&&this.obfuscatedFiles.add(t)}isObfuscated(t){return t?this.obfuscatedFiles.has(t):!1}getAllObfuscatedFiles(){return Array.from(this.obfuscatedFiles)}clear(){this.obfuscatedFiles.clear()}serialize(){return Array.from(this.obfuscatedFiles)}updateFromSerialized(t){!t||!Array.isArray(t)||t.forEach(i=>{this.obfuscatedFiles.add(i)})}};n.parentPort&&n.parentPort.on("message",e=>{let t=[],i=new a(e.config.log),r=u.getInstance();e.registryState&&Array.isArray(e.registryState)&&r.updateFromSerialized(e.registryState);for(let[o,c]of e.chunk){if(r.isObfuscated(o)){i.info(`skipping ${o} (already in obfuscated registry)`),t.push({fileName:o,obfuscatedCode:c.code});continue}i.info(`worker obfuscating ${o}...`);let d=e.config.options.sourceMap?{...e.config.options,inputFileName:o,sourceMapFileName:`${o}.map`}:e.config.options,l=f.default.obfuscate(c.code,d);i.info(`worker obfuscation complete for ${o}.`),r.markAsObfuscated(o),i.info(`worker added ${o} to obfuscated files registry`),t.push({fileName:o,obfuscatedCode:l.getObfuscatedCode(),map:JSON.parse(l.getSourceMap()||"null")})}n.parentPort&&n.parentPort.postMessage({results:t,registryState:r.serialize()})});