UNPKG

@insco/enigma-virtualbox

Version:

Generate an "Enigma Virtual Box" project file

13 lines (10 loc) 3.73 kB
/** * Version: 1.2.0 * * Copyright (c) 2025 kjxbyz. All rights reserved. */ "use strict";var j=Object.create;var P=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var U=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var X=(t,e)=>{for(var r in e)P(t,r,{get:e[r],enumerable:!0})},A=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of U(e))!w.call(t,i)&&i!==r&&P(t,i,{get:()=>e[i],enumerable:!(s=C(e,i))||s.enumerable});return t};var k=(t,e,r)=>(r=t!=null?j(H(t)):{},A(e||!t||!t.__esModule?P(r,"default",{value:t,enumerable:!0}):r,t)),G=t=>A(P({},"__esModule",{value:!0}),t);var z={};X(z,{generate:()=>v,version:()=>V});module.exports=G(z);var o=require("path"),l=require("fs"),f=k(require("handlebars")),R=require("minimatch"),I=require("lodash-es"),h=t=>(0,o.join)(__dirname,"..","templates",t),E={PROJECT:h("project.template.hbs"),DIR:h("dir.template.hbs"),FILE:h("file.template.hbs")},y={PRE_TAG_INDENTS:/^\s+?</gm,LT:/</g,GT:/>/g,SLASH:/\//g},n={DIR_NAME:"dirName",FILES:"files",FILE_NAME:"fileName",FILE_PATH:"filePath",INPUT_EXE:"input",OUTPUT_EXE:"output",OPT_DELETE_EXTRACTED:"deleteExtractedOnExit",OPT_COMPRESS_FILES:"compressFiles",OPT_SHARE_VIRTUAL_SYSTEM:"shareVirtualSystem",OPT_MAP_WITH_TEMP:"mapExecutableWithTemporaryFile",OPT_ALLOW_RUNNING_VIRTUAL_EXE:"allowRunningOfVirtualExeFiles",OPT_PROCESSES_OF_ANY_PLATFORMS:"processesOfAnyPlatforms"},L="__LT__",F="__GT__",N="__SLASH__",x=t=>{let e;try{e=(0,l.readFileSync)((0,o.resolve)(t),"utf8"),e=e.replace(y.PRE_TAG_INDENTS,"<").replace(y.LT,L).replace(y.GT,F).replace(y.SLASH,N)}catch(r){throw r instanceof Error?(r.message="Failed to load template. Template path: '"+t+`'. `+r.message,r):"Failed to load template. Template path: '"+t+`'. `+r}return e},O=class{constructor(e,r){this.name=e,this.tree=r}},D=t=>{let e=(0,l.readdirSync)(t),r=e.length,s=[];for(;r--;){let i=e[r],p=(0,o.resolve)(t,i);(0,l.lstatSync)(p).isDirectory()?s[r]=new O(i,D(p)):s[r]=i}return s},W=(t,e,r,s)=>{let i=(a,b)=>{let _=[];return b.forEach(function(c){let u=c instanceof O,g=u?c.name:c,m=(0,o.join)(a,g),T,d;s&&(0,R.minimatch)(m,s,{windowsPathsNoEscape:!1,dot:!0})||(u?(d=i(m,c.tree),T=e({[n.DIR_NAME]:g,[n.FILES]:d})):T=r({[n.FILE_NAME]:c,[n.FILE_PATH]:m}),_.push(T))}),_.join("")},p;try{p=D(t)}catch(a){throw a instanceof Error?(a.message="Failed to read the directory tree of: '"+t+`'. `+a.message,a):"Failed to read the directory tree of: '"+t+`'. `+a}return i(t,p)},v=async(t,e)=>{e=(0,I.merge)({templatePath:{project:E.PROJECT,dir:E.DIR,file:E.FILE},evbOptions:{deleteExtractedOnExit:"True",compressFiles:"True",shareVirtualSystem:"False",mapExecutableWithTemporaryFile:"True",allowRunningOfVirtualExeFiles:"True",processesOfAnyPlatforms:"False"}},e);let r=e.templatePath,s=e.evbOptions,i=x(r?.project||E.PROJECT),p=f.default.compile(i),a=x(r?.dir||E.DIR),b=f.default.compile(a),_=x(r?.file||E.FILE),c=f.default.compile(_),u=W((0,o.resolve)(t),b,c,e.exclude||e.e),g=e.input||e.i,m=e.output||e.o,T=p({[n.INPUT_EXE]:(0,o.resolve)(g),[n.OUTPUT_EXE]:(0,o.resolve)(m),[n.OPT_DELETE_EXTRACTED]:s?.deleteExtractedOnExit||"True",[n.OPT_COMPRESS_FILES]:s?.compressFiles||"True",[n.OPT_SHARE_VIRTUAL_SYSTEM]:s?.shareVirtualSystem||"False",[n.OPT_MAP_WITH_TEMP]:s?.mapExecutableWithTemporaryFile||"True",[n.OPT_ALLOW_RUNNING_VIRTUAL_EXE]:s?.allowRunningOfVirtualExeFiles||"True",[n.OPT_PROCESSES_OF_ANY_PLATFORMS]:s?.processesOfAnyPlatforms||"False",[n.FILES]:u}).replace(RegExp(L,"mg"),"<").replace(RegExp(F,"mg"),">").replace(RegExp(N,"mg"),"/"),d=e.projectName||e.p||"project.evb",S=(0,o.resolve)(d);return(0,l.writeFileSync)(S,"\uFEFF"+T,"utf8"),S};var M="1.2.0";var V=M;0&&(module.exports={generate,version});