@empjs/cli 3.1.0 → 3.1.1-3.hotfix-1014

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var is=Object.create;var U=Object.defineProperty;var rs=Object.getOwnPropertyDescriptor;var os=Object.getOwnPropertyNames;var ns=Object.getPrototypeOf,as=Object.prototype.hasOwnProperty;var f=(i,e)=>()=>(i&&(e=i(i=0)),e);var j=(i,e)=>{for(var t in e)U(i,t,{get:e[t],enumerable:!0})},Ie=(i,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of os(e))!as.call(i,r)&&r!==t&&U(i,r,{get:()=>e[r],enumerable:!(s=rs(e,r))||s.enumerable});return i};var l=(i,e,t)=>(t=i!=null?is(ns(i)):{},Ie(e||!i||!i.__esModule?U(t,"default",{value:i,enumerable:!0}):t,i)),ps=i=>Ie(U({},"__esModule",{value:!0}),i);var n=f(()=>{"use strict"});var d,ls,x,cs,ms,fs,te,B,hs,us,D,se,gs,ie,T,h,R=f(()=>{"use strict";n();d=l(require("chalk"),1),ls=d.default.hex("#1abc9c"),x=d.default.hex("#16a085"),cs=d.default.hex("#2ecc71"),ms=d.default.hex("#27ae60"),fs=d.default.hex("#e74c3c"),te=d.default.hex("#c0392b"),B=d.default.hex("#f1c40f"),hs=d.default.hex("#f39c12"),us=d.default.hex("#3498db"),D=d.default.hex("#2980b9"),se=d.default.hex("#ecf0f1"),gs=d.default.hex("#fd79a8"),ie=d.default.hex("#e84393"),T=d.default.hex("#7f8c8d"),h={lightGreen:ls,green:x,lightCyan:cs,cyan:ms,lightRed:fs,red:te,yellow:B,orange:hs,lightBlue:us,blue:D,white:se,lightMagenta:gs,magenta:ie,gray:T}});var re,p,S=f(()=>{"use strict";n();R();re=class{brandName="";fullName="";logLevel="debug";isLogTime=!1;setup({brandName:e,logLevel:t,fullName:s}){this.brandName=` [${e}] `,this.fullName=` ${s} `,this.fullName=h.green.bold(this.fullName),t&&(this.logLevel=t)}time=(...e)=>this.isLogTime&&console.time(...e);timeEnd=(...e)=>this.isLogTime&&console.timeEnd(...e);debug=(...e)=>["debug"].includes(this.logLevel)&&console.log(...e);info=(...e)=>["debug","info"].includes(this.logLevel)&&console.log(...e);warn=(...e)=>["debug","info","warn"].includes(this.logLevel)&&console.warn(...e);error=(...e)=>["debug","info","warn","error"].includes(this.logLevel)&&console.error(...e);blue=e=>{console.log(`${h.lightBlue(this.brandName)}${h.blue(` ${e} `)}
1
+ "use strict";var ss=Object.create;var U=Object.defineProperty;var is=Object.getOwnPropertyDescriptor;var os=Object.getOwnPropertyNames;var rs=Object.getPrototypeOf,ns=Object.prototype.hasOwnProperty;var m=(i,e)=>()=>(i&&(e=i(i=0)),e);var j=(i,e)=>{for(var t in e)U(i,t,{get:e[t],enumerable:!0})},Ue=(i,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of os(e))!ns.call(i,o)&&o!==t&&U(i,o,{get:()=>e[o],enumerable:!(s=is(e,o))||s.enumerable});return i};var l=(i,e,t)=>(t=i!=null?ss(rs(i)):{},Ue(e||!i||!i.__esModule?U(t,"default",{value:i,enumerable:!0}):t,i)),as=i=>Ue(U({},"__esModule",{value:!0}),i);var n=m(()=>{"use strict"});var d,ps,x,ls,cs,ms,ie,B,fs,hs,D,oe,us,re,T,h,R=m(()=>{"use strict";n();d=l(require("chalk"),1),ps=d.default.hex("#1abc9c"),x=d.default.hex("#16a085"),ls=d.default.hex("#2ecc71"),cs=d.default.hex("#27ae60"),ms=d.default.hex("#e74c3c"),ie=d.default.hex("#c0392b"),B=d.default.hex("#f1c40f"),fs=d.default.hex("#f39c12"),hs=d.default.hex("#3498db"),D=d.default.hex("#2980b9"),oe=d.default.hex("#ecf0f1"),us=d.default.hex("#fd79a8"),re=d.default.hex("#e84393"),T=d.default.hex("#7f8c8d"),h={lightGreen:ps,green:x,lightCyan:ls,cyan:cs,lightRed:ms,red:ie,yellow:B,orange:fs,lightBlue:hs,blue:D,white:oe,lightMagenta:us,magenta:re,gray:T}});var ne,p,S=m(()=>{"use strict";n();R();ne=class{brandName="";fullName="";logLevel="debug";isLogTime=!1;setup({brandName:e,logLevel:t,fullName:s}){this.brandName=` [${e}] `,this.fullName=` ${s} `,this.fullName=h.green.bold(this.fullName),t&&(this.logLevel=t)}time=(...e)=>this.isLogTime&&console.time(...e);timeEnd=(...e)=>this.isLogTime&&console.timeEnd(...e);debug=(...e)=>["debug"].includes(this.logLevel)&&console.log(...e);info=(...e)=>["debug","info"].includes(this.logLevel)&&console.log(...e);warn=(...e)=>["debug","info","warn"].includes(this.logLevel)&&console.warn(...e);error=(...e)=>["debug","info","warn","error"].includes(this.logLevel)&&console.error(...e);blue=e=>{console.log(`${h.lightBlue(this.brandName)}${h.blue(` ${e} `)}
2
2
  `)};cyan=e=>{console.log(`${h.lightCyan(this.brandName)}${h.cyan(` ${e} `)}
3
3
  `)};magenta=e=>{console.log(`${h.lightMagenta(this.brandName)}${h.magenta(` ${e} `)}
4
4
  `)};green=e=>{console.log(`${h.lightGreen(this.brandName)}${h.green(` ${e} `)}
@@ -6,13 +6,15 @@
6
6
  `)};red=e=>{console.log(`${h.lightRed(this.brandName)}${h.red(` ${e} `)}
7
7
  `)};sysError=e=>{console.log(`${h.lightRed(" System Error Tips ")}${h.red(` ${e} `)}
8
8
  `)};link=e=>h.blue(e);title=e=>{console.log(`${this.fullName}${h.yellow.underline(`${e}`)}
9
- `)}},p=new re});var le={};j(le,{clearConsole:()=>ne,deepAssign:()=>y,ensureArray:()=>ds,getLanIp:()=>M,getPkgVersion:()=>oe,importJsVm:()=>pe,jsonFilter:()=>ys,timeFormat:()=>H,vCompare:()=>ae});function ne(){process.stdout.write(process.platform==="win32"?"\x1B[2J\x1B[0f":"\x1B[2J\x1B[3J\x1B[H")}function y(i,...e){for(let t of e)for(let s in t){let r=t[s],a=i[s];if(Object(r)==r&&Object(a)===a){i[s]=y(a,r);continue}i[s]=t[s]}return i}var Ue,Be,He,Je,M,oe,ds,ys,ae,H,pe,C=f(()=>{"use strict";n();Ue=require("address"),Be=l(require("chalk"),1),He=require("default-gateway"),Je=l(require("fs-extra"),1),M=()=>{let{int:i}=(0,He.gateway4sync)();return(0,Ue.ip)(i||"")||"127.0.0.1"},oe=i=>{try{let{version:e}=Je.default.readJSONSync(i);return e}catch{return}};ds=i=>Array.isArray(i)?i:[i],ys=(i={},e=[])=>Object.keys(i).filter(t=>!e.includes(t)).reduce((t,s)=>(t[s]=i[s],t),{}),ae=(i="",e="")=>{let t=i.replace("^","").split("."),s=e.replace("^","").split("."),r=Math.max(t.length,s.length),a=0;for(let c=0;c<r;c++){let g=t.length>c?t[c]:0,O=isNaN(Number(g))?g.charCodeAt():Number(g),A=s.length>c?s[c]:0,u=isNaN(Number(A))?A.charCodeAt():Number(A);if(O<u){a=-1;break}else if(O>u){a=1;break}}return a},H=i=>{i=i/1e3;let e=s=>Be.default.bold(s);if(i<1)return`${i*1e3} ms`;if(i<10){let s=i>=.01?2:3;return`${e(i.toFixed(s))} s`}if(i<60)return`${e(i.toFixed(1))} s`;let t=i/60;return`${e(t.toFixed(2))} m`},pe=i=>`data:text/javascript,${i}`});var ce={};j(ce,{chalk:()=>_e.default,color:()=>h,glob:()=>$.glob,logger:()=>p,utils:()=>le});var _e,$,z=f(()=>{"use strict";n();_e=l(require("chalk"),1),$=require("glob");R();C();S()});var We,qe,Ve,vs,Xe,Qe,bs,Ke=f(()=>{"use strict";n();We=l(require("fs"),1),qe=l(require("path"),1),Ve=l(require("jiti"),1);v();S();vs=["emp-config.ts","emp-config.js","emp.config.ts","emp.config.js","emp-config.mjs","emp-config.cjs","emp-config.mts","emp-config.cts","emp.config.mjs","emp.config.cjs","emp.config.mts","emp.config.cts"],Xe=(0,Ve.default)(__filename,{esmResolve:!0,requireCache:!1,interopDefault:!0}),Qe=async()=>bs(),bs=()=>{p.time("[store]GetEmpConfigPath");let i;for(let e of vs){let t=qe.default.resolve(o.root,e);if(We.default.existsSync(t)){i=t;break}}return p.timeEnd("[store]GetEmpConfigPath"),i}});async function J(i,e="localhost"){if(i!==ws&&(i<Ye||i>me))throw new Error(`Port number must lie between ${Ye} and ${me}`);let t=i,s=Cs(),r;e&&!s.has(e)?r=new Set([e]):r=s;let a=new Set(["EADDRINUSE","EACCES"]);for(;t<=me;)try{return await Ss(t,r)}catch(c){if(!a.has(c.code))throw c;t+=1}throw new Error("No available ports found")}var Ze,et,Ye,me,ws,Cs,xs,Ss,fe=f(()=>{"use strict";n();Ze=l(require("net"),1),et=l(require("os"),1),Ye=1024,me=65535,ws=443,Cs=()=>{let i=et.default.networkInterfaces(),e=new Set([void 0,"0.0.0.0"]);for(let t of Object.values(i))if(t)for(let s of t)e.add(s.address);return e},xs=(i,e)=>new Promise((t,s)=>{let r=Ze.default.createServer();r.unref(),r.on("error",s),r.listen(i,e,()=>{let{port:a}=r.address();r.close(()=>{t(a)})})}),Ss=async(i,e)=>{let t=new Set(["EADDRNOTAVAIL","EINVAL"]);for(let s of e)try{await xs(i,s)}catch(r){if(!t.has(r.code))throw r}return i}});var he,tt,ue,L,ge=f(()=>{"use strict";n();he=l(require("url"),1),tt=l(require("chalk"),1);R();C();ue=class{imf={protocol:"",port:8e3,pathname:"/"};host="0.0.0.0";urls={lanUrlForConfig:"",lanUrlForTerminal:T("unavailable"),localUrlForTerminal:"",localUrlForBrowser:""};setup(e){e.host&&(this.host=e.host),e.protocol&&(this.imf.protocol=e.protocol),e.pathname&&(this.imf.pathname=e.pathname),e.port&&(this.imf.port=e.port),this.setupUrls()}setupUrls(){let{host:e}=this,t=e==="0.0.0.0"||e==="::",s;if(t){s="localhost";try{this.urls.lanUrlForConfig=this.getLanIp(),this.urls.lanUrlForConfig&&(/^10[.]|^172[.](1[6-9]|2[0-9]|3[0-1])[.]|^192[.]168[.]/.test(this.urls.lanUrlForConfig)?this.urls.lanUrlForTerminal=this.prettyPrintUrl(this.urls.lanUrlForConfig):this.urls.lanUrlForConfig="")}catch{}}else s=e,this.urls.lanUrlForConfig=e,this.urls.lanUrlForTerminal=this.prettyPrintUrl(this.urls.lanUrlForConfig);this.urls.localUrlForTerminal=this.prettyPrintUrl(s),this.urls.localUrlForBrowser=this.formatUrl(s)}getLanIp=M;formatUrl(e){let{protocol:t,port:s,pathname:r}=this.imf;return he.default.format({protocol:t,hostname:e,port:s,pathname:r})}prettyPrintUrl(e){let{protocol:t,port:s,pathname:r}=this.imf;return he.default.format({protocol:t,hostname:e,port:tt.default.bold(s),pathname:r})}},L=new ue});var it,rt,ot,st,Es,Os,nt,at=f(()=>{"use strict";n();it=require("child_process"),rt=require("util");v();S();ot=(0,rt.promisify)(it.exec),st=["Google Chrome Canary","Google Chrome Dev","Google Chrome Beta","Google Chrome","Microsoft Edge","Brave Browser","Vivaldi","Chromium"],Es=async()=>{let i=process.env.BROWSER;if(!i||!st.includes(i)){let{stdout:e}=await ot("ps cax");i=st.find(t=>e.includes(t))}return i},Os=async i=>{if(process.platform==="darwin")try{let t=await Es();if(t){let s=`osascript openChrome.applescript "${encodeURI(i)}" "${t}"`;return await ot(s,{cwd:o.resource.dir}),!0}}catch(t){p.debug(t)}try{let{default:t}=await import("open");return await t(i),!0}catch(t){return p.error("Failed to open start URL."),p.error(t),!1}},nt=Os});var de,_,ye=f(()=>{"use strict";n();fe();ge();C();v();de=class{isADB=!1;isHttps=!1;get isHttpBase(){let e=o.empOptions.base||"";return e.indexOf("http://")>-1||e.indexOf("https://")>-1}async setup(){if(this.isADB=!!o.empOptions.autoDevBase&&o.mode==="development"&&!this.isHttpBase,!this.isADB)return;let{server:e,https:t}=o.empOptions.server||{};this.isHttps=e==="https"||typeof e=="object"&&e.type==="https"||t===!0;let s=L.getLanIp(),r=this.isHttps?"https":"http",a=o.empOptions.server?.port||8e3;a=await J(a,s),o.empOptions.base=`${r}://${s}:${a}/`,o.empOptions.server=y({port:a,client:{webSocketURL:`${this.isHttps?"wss":"ws"}://${s}:${a}/ws`}},o.empOptions.server)}},_=new de});var ve,E,G=f(()=>{"use strict";n();ve=l(require("fs/promises"),1);R();fe();ge();S();at();C();v();ye();E=class{sf={protocol:"http",host:"0.0.0.0",port:8e3,publicPath:"",publicHasHttp:!1,isOpenBrower:!1,url:"",urls:{localUrlForBrowser:"",localUrlForTerminal:"",lanUrlForTerminal:"",lanUrlForConfig:""}};static httpsType="default";async adaptServer(){this.sf.publicPath=o.rsConfig.output?.publicPath==="auto"?"/":o.rsConfig.output?.publicPath||"/",this.sf.isOpenBrower=!!o.empConfig.server.open,this.sf.protocol=this.isHttps?"https":"http",this.sf.host=o.empConfig.server.host?o.empConfig.server.host:this.sf.host,this.sf.port=o.empConfig.server.port,await this.serverPort(),L.setup(this.sf),this.sf.publicPath&&(this.sf.publicPath.indexOf("http://")>-1||this.sf.publicPath.indexOf("https://")>-1)?(this.sf.url=this.sf.publicPath,this.sf.publicHasHttp=!0,this.sf.urls.localUrlForTerminal=L.prettyPrintUrl("localhost")):(this.sf.urls=L.urls,this.sf.url=this.sf.urls.localUrlForBrowser)}startOpen(){let{urls:e}=this.sf;this.sf.publicHasHttp?(p.info(`${x("\u279C")} Local: ${p.link(e.localUrlForTerminal)}`),p.info(`${x("\u279C")} Network: ${p.link(this.sf.publicPath)}`)):(p.info(`${x("\u279C")} Local: ${p.link(e.localUrlForTerminal)}`),p.info(`${x("\u279C")} Network: ${p.link(e.lanUrlForTerminal)}
10
- `)),this.sf.isOpenBrower&&nt(this.sf.url)}async setup(e,t){p.time(`[${e}]Setup`),await o.setup(e,t),o.debug.clearLog&&ne(),p.title(`${e}`),await this.adaptServer(),p.time(`[${e}]Run`),await this.run(),p.timeEnd(`[${e}]Run`),this.afterRun(),p.timeEnd(`[${e}]Setup`)}async run(){}afterRun(){process.on("SIGINT",function(){process.exit()})}get isHttps(){let{server:e,https:t,http2:s}=o.empConfig.server||{};return e==="https"||typeof e=="object"&&e.type==="https"||t===!0||s===!0}getcert(){return Promise.all([ve.default.readFile(o.resource.key),ve.default.readFile(o.resource.cert)])}async serverPort(){if(_.isADB)return;let{port:e,host:t}=this.sf,s=await J(e,t);s!==e&&(this.sf.port=s,o.rsConfig.devServer?.port&&(o.rsConfig.devServer.port=s))}}});var pt,W,I,be=f(()=>{"use strict";n();pt=l(require("html-webpack-plugin"),1);C();v();W=class{constructor(){}getPolyfillEntry(){let e=[`import 'core-js/${o.empConfig.build.coreJsFeatures}'`].join(`
11
- `);return pe(e)}apply(e){let{webpack:t}=e;new t.EntryPlugin(e.context,this.getPolyfillEntry(),{name:void 0}).apply(e)}},I=class{PluginName="HtmlEmpInjectPlugin";chunk="";files=[];constructor(e,t="",s=""){this.PluginName=`${this.PluginName}-${t}`,this.files=e,this.chunk=s}apply(e){e.hooks.compilation.tap(this.PluginName,t=>{let s=this.files;pt.default.getHooks(t).alterAssetTagGroups.tapAsync(this.PluginName,(r,a)=>{if(this.chunk&&!r.plugin.userOptions.chunks?.includes(this.chunk))return a(null,r);s.map(c=>{switch(c.type){case"js":r.headTags.push({tagName:"script",attributes:{src:c.value},voidTag:!1,meta:{plugin:void 0}});break;case"css":r.headTags.push({tagName:"link",attributes:{rel:"stylesheet",href:c.value},voidTag:!1,meta:{plugin:void 0}});break;case"script":r.headTags.push({tagName:"script",attributes:{},innerHTML:c.value,voidTag:!1,meta:{plugin:void 0}});break}}),a(null,r)})})}}});var q,lt=f(()=>{"use strict";n();v();ye();be();q=class{op={};constructor(e={}){this.op=e}async afterGetEmpOptions(){await _.setup(),this.op.afterGetEmpOptions&&await this.op.afterGetEmpOptions()}async beforePlugin(){o.empConfig.build.polyfill==="entry"&&o.chain.plugin("empPolyfill").use(W),this.op.beforePlugin&&await this.op.beforePlugin()}async afterPlugin(){this.op.afterPlugin&&await this.op.afterPlugin()}async beforeModule(){this.op.beforeModule&&await this.op.beforeModule()}async afterModule(){this.op.afterModule&&await this.op.afterModule()}async beforeEmpPlugin(){this.op.beforeEmpPlugin&&await this.op.beforeEmpPlugin()}async afterEmpPlugin(){this.op.afterEmpPlugin&&await this.op.afterEmpPlugin()}async beforeBuild(){this.op.beforeBuild&&await this.op.beforeBuild()}async afterBulid(){this.op.afterBulid&&await this.op.afterBulid()}async beforeDevServe(){this.op.beforeDevServe&&await this.op.beforeDevServe()}async afterDevServe(){this.op.afterDevServe&&await this.op.afterDevServe()}async beforeServe(){this.op.beforeServe&&await this.op.beforeServe()}async afterServe(){this.op.afterServe&&await this.op.afterServe()}}});var ct,we,mt,ft=f(()=>{"use strict";n();ct=l(require("fs"),1);z();Ke();C();G();lt();we=class{store;appSrc="src";appEntry="";base="";target=[];assign(e,t){return t=t||{},y(e,t)}isESM=!1;async autoDevSet(){this.store.mode==="development"&&this.store.empOptions.autoDevBase}checkIsESM(e){return["es3","es5"].indexOf(e)===-1}lifeCycle;async setup(e){this.store=e,await this.syncEmpOptions(),this.lifeCycle=new q(this.store.empOptions.lifeCycle),await this.lifeCycle.afterGetEmpOptions(),this.isESM=this.checkIsESM(this.build.target),this.store.empOptions.target?(this.target=this.store.empOptions.target,Array.isArray(this.target)&&!this.target.includes(this.build.target)&&this.target.push(this.build.target)):this.target=["web",this.build.target];let{appSrc:t,base:s,appEntry:r}=this.store.empOptions;t&&(this.appSrc=t),s&&(this.base=s),r&&(this.appEntry=r)}async chain(){this.store.empOptions.chain&&await this.store.empOptions.chain(this.store.chain)}async plugins(){let e=[];this.store.empOptions.plugins&&Array.isArray(this.store.empOptions.plugins)&&this.store.empOptions.plugins.length>0&&(this.store.empOptions.plugins.map(t=>{e.push(t.rsConfig(this.store))}),await Promise.all(e))}get debug(){let e=!1;return this.store.cliOptions.doctor&&(e={supports:{generateTileGraph:!0}}),this.assign({loggerLevel:"info",clearLog:!0,progress:!0,showRsconfig:!1,showPerformance:!1,rspackCache:!0,rsdoctor:e,infrastructureLogging:{appendOnly:!0,level:"warn"},newTreeshaking:this.store.empConfig.isESM,devShowAllLog:!1},this.store.empOptions.debug)}get build(){let e=this.store.empOptions.build?.staticDir?`${this.store.empOptions.build?.staticDir}/`:"";return this.assign({outDir:"dist",staticDir:e,assetsDir:"assets",publicDir:"public",chunkIds:this.store.isDev?"named":"deterministic",moduleIds:this.store.isDev?"named":"deterministic",sourcemap:this.store.isDev,minify:!this.store.isDev,minOptions:{},cssminOptions:{},target:"es5",polyfill:!1,polyfillInclude:[],coreJsFeatures:"stable",externalHelpers:!1,browserslist:this.store.browserslistOptions.default,swcConfig:{},devtool:"source-map"},{...this.store.empOptions.build,staticDir:e})}get html(){let e=this.store.empOptions.html?.template?{}:{charset:{charset:"utf-8"},"http-equiv":{"http-equiv":"X-UA-Compatible",content:"IE=edge"},viewport:{name:"viewport",content:"width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0"},keywords:{keywords:""},description:{description:""}};return this.assign({lang:"zh-CN",title:"EMP",inject:"body",minify:!this.store.isDev,scriptLoading:this.isESM?"module":"defer",meta:e,files:{css:[],js:[]},tags:{headTags:[],bodyTags:[]}},this.store.empOptions.html)}get entries(){return this.store.empOptions.entries?this.store.empOptions.entries:{}}get server(){let e={host:"0.0.0.0",port:8e3,open:process.platform==="darwin",hot:!0,watchFiles:["src/**/*.html"],static:[{directory:this.store.publicDir,watch:this.store.isDev}],allowedHosts:["all"],historyApiFallback:!0,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, PATCH, OPTIONS","Access-Control-Allow-Headers":"X-Requested-With, content-type, Authorization"}};return this.store.empOptions.server?.http2&&(E.httpsType="h2",delete this.store.empOptions.server.http2),this.assign(e,this.store.empOptions.server)}get css(){return this.assign({sass:{mode:"modern",warnRuleAsWarning:!1}},this.store.empOptions.css)}get output(){let e=(this.store.isDev,".[contenthash:8]"),t=this.store.isDev?"":".[contenthash:8]",{assetsDir:s,staticDir:r}=this.store.empConfig.build,a={publicPath:this.store.empConfig.base?this.store.empConfig.base:"auto",crossOriginLoading:"anonymous",filename:`${r}js/[name]${e}.js`,cssFilename:`${r}css/[name]${t}.css`,cssChunkFilename:`${r}css/[name]${t}.css`,assetModuleFilename:`${r}${s}/[name]${e}[ext][query]`,path:this.store.outDir,clean:!0,uniqueName:this.store.uniqueName};return this.assign(a,this.store.empOptions.output)}get define(){let e={mode:this.store.mode,env:this.store.cliOptions.env};return this.store.empOptions.define&&(e={...e,...this.store.empOptions.define}),this.setDefine(e)}setDefine(e){let t=this.store.empOptions.defineFix?this.store.empOptions.defineFix:this.isESM?"esm":"cjs",s={};return Object.keys(e).map(r=>{t==="all"?(s[`import.meta.env.${r}`]=JSON.stringify(e[r]),s[`process.env.${r}`]=JSON.stringify(e[r])):t==="esm"?s[`import.meta.env.${r}`]=JSON.stringify(e[r]):t==="cjs"?s[`process.env.${r}`]=JSON.stringify(e[r]):t==="none"&&(s[`${r}`]=JSON.stringify(e[r]))}),s}get externals(){return this.assign({},this.store.empOptions.externals)}get resolve(){return y({alias:{src:this.store.resolve("src"),"@":this.store.resolve("src")},extensions:["...",".js",".jsx",".mjs",".ts",".tsx",".css",".less",".scss",".sass",".json",".wasm",".vue",".svg",".svga"]},this.store.empOptions.resolve)}async syncEmpOptions(){p.time("[store][empConfig]SyncEmpOptions");let e=await Qe();if(!e||!ct.default.existsSync(e))return;let t=await Xe(e);typeof t=="function"?this.store.empOptions=await t(this.store):this.store.empOptions=t||{},p.timeEnd("[store][empConfig]SyncEmpOptions")}get moduleTransformRule(){let{moduleTransform:e}=this.store.empOptions,t=this.assign({defaultExclude:!1},e),s={and:[],not:[]};return t.defaultExclude===!0&&s.and.push(/(node_modules|bower_components)/),t?.exclude&&(s.and=s.and.concat(t.exclude)),e?.include&&(s.not=t.include),s}get cacheDir(){return this.store.empOptions.cacheDir?this.store.empOptions.cacheDir:"node_modules/.emp-cache"}get ignoreWarnings(){return this.store.empOptions.ignoreWarnings?this.store.empOptions.ignoreWarnings:[/Conflicting order/,/Failed to parse source map/]}get autoPages(){let e;return this.store.empOptions.autoPages&&(e=typeof this.store.empOptions.autoPages=="boolean"?{}:this.store.empOptions.autoPages,e=this.assign({path:"pages"},e)),e}},mt=new we});var ht,Ce,ut,gt=f(()=>{"use strict";n();ht=l(require("fs-extra"),1),Ce=class{store;async setup(e){this.store=e;let t=[this.common(),this.stats(),this.devServer(),this.optimization(),this.checkTsconfig()];await Promise.all(t)}async common(){this.store.merge({node:{global:!0},experiments:{outputModule:this.store.empConfig.isESM,topLevelAwait:!0,css:!0},target:this.store.empConfig.target,infrastructureLogging:this.store.empConfig.debug.infrastructureLogging,context:this.store.root,mode:this.store.mode,cache:this.store.empConfig.debug.rspackCache,devtool:this.store.empConfig.build.sourcemap?this.store.empConfig.build.devtool:!1,output:this.store.empConfig.output,resolve:this.store.empConfig.resolve,externals:this.store.empConfig.externals,ignoreWarnings:this.store.empConfig.ignoreWarnings,watchOptions:{ignored:["**/node_modules/**","**/@mf-types/**"]}})}async checkTsconfig(){let e=this.store.resolve("tsconfig.json");if(await ht.default.exists(e)){let s={tsConfig:e};this.store.merge({resolve:s})}}async stats(){this.store.merge({stats:{colors:!0,all:!1,assets:!1,chunks:!1,timings:!0,version:!0}})}async devServer(){this.store.merge({devServer:this.store.empConfig.server})}async optimization(){let e={moduleIds:this.store.empConfig.build.moduleIds,chunkIds:this.store.empConfig.build.chunkIds,minimize:this.store.empConfig.build.minify,splitChunks:{chunks:"async",cacheGroups:{}}};this.store.empConfig.build.polyfill&&(e.splitChunks.cacheGroups={}),this.store.chain.merge({optimization:e})}},ut=new Ce});var xe,dt,yt=f(()=>{"use strict";n();xe=class{store;async setup(e){this.store=e;let t=[this.sass(),this.less(),this.css()];await Promise.all(t)}async sass(){let{rule:e,use:t}=this.store.chainName,s={},{sass:r}=this.store.empConfig.css||{sass:{}};r.mode==="modern"&&(s.implementation=r.implementation?r.implementation:require.resolve("sass-embedded"),s.api=r.api?r.api:"legacy",s.sourceMap=this.store.empConfig.build.sourcemap,r.sassOptions&&(s.sassOptions=r.sassOptions)),typeof r.warnRuleAsWarning<"u"&&(s.warnRuleAsWarning=r.warnRuleAsWarning),typeof r.webpackImporter<"u"&&(s.webpackImporter=r.webpackImporter),this.store.chain.merge({module:{rule:{[e.sass]:{test:/\.(sass|scss)$/,use:{[t.sass]:{loader:require.resolve("sass-loader"),options:s}},type:"css/auto"}}}})}async less(){let{rule:e,use:t}=this.store.chainName,s={loader:require.resolve("less-loader"),options:{lessOptions:{javascriptEnabled:!0}}};this.store.chain.merge({module:{rule:{[e.less]:{test:/\.less$/,use:{[t.less]:s},type:"css/auto"}}}})}async css(){let{rule:e}=this.store.chainName;this.store.chain.merge({module:{rule:{[e.css]:{test:/\.css$/,use:{},type:"css/auto"}}}})}},dt=new xe});var b,vt,Se,bt,wt=f(()=>{"use strict";n();b=l(require("path"),1),vt=l(require("html-webpack-plugin"),1);z();Se=class{store;entriesConfig={};async setup(e){this.store=e,await this.init(),this.toConfig()}setHtmlConfig(e,t){return e.template=this.setTemplate(e.template),e.favicon=this.setFavicion(e.favicon),e.chunks=t,e.filename=`${t[0]}.html`,this.store.empConfig.base&&(e.publicPath=this.store.empConfig.base),e.tags=e.tags||{},e}setChunk(e){return e.replace(b.default.extname(e),"").replace(`${this.store.empConfig.appSrc}${b.default.sep}`,"")}setTemplate(e){return e?this.store.resolve(e):this.store.empResolve(b.default.join("template","index.html"))}setFavicion(e){return e?this.store.resolve(e):this.store.empResolve(b.default.join("template","favicon.ico"))}setEntryItem(e,t,s){s=s||this.store.resolve(b.default.join(this.store.empConfig.appSrc,e));let r=this.setChunk(e),a=[s];this.entriesConfig[r]={entry:{[r]:a},html:this.setHtmlConfig(t,[r])},this.store.entries[r]=a}setRspackHtmlPlugin(e,t){this.store.chain.plugin(`${this.store.chainName.plugin.html.prefix}${t}`).use(vt.default,[e])}setRspackEntry(e){this.store.merge({entry:e})}async init(){this.store.empConfig.autoPages?await this.setAutoPage():(await this.setDefaultEntry(),this.setEntryByConfig())}async setAutoPage(){p.time("setAutoPage");let e=this.store.empConfig.autoPages?.path||"pages",t=b.default.join(this.store.appSrc,e),s=b.default.join(t,"**","*.{ts,tsx,jsx,js}"),r=await(0,$.glob)([s],{windowsPathsNoEscape:!0});r=r.map(a=>a.replace(`${t}${b.default.sep}`,"")),r.map(a=>{let c=this.store.empConfig.entries[a]||{};this.setEntryItem(a,{...this.store.empConfig.html,...c},b.default.join(t,a))}),p.timeEnd("setAutoPage")}async setDefaultEntry(){p.time("[store][empConfig]SetDefaultEntry");let e=b.default.join(this.store.appSrc,this.store.empConfig.appEntry?this.store.empConfig.appEntry:"index.{ts,tsx,jsx,js}"),t=await(0,$.glob)([e],{windowsPathsNoEscape:!0});if(t[0]){let s=b.default.join(this.store.empConfig.appSrc,Object.keys(this.store.empConfig.entries).length>0&&this.store.empConfig.appEntry?this.store.empConfig.appEntry:"index");this.setEntryItem(s,this.store.empConfig.html,t[0])}p.timeEnd("[store][empConfig]SetDefaultEntry")}setEntryByConfig(){if(Object.keys(this.store.empConfig.entries).length>0)for(let[e,t]of Object.entries(this.store.empConfig.entries))this.setEntryItem(e,{...this.store.empConfig.html,...t})}toConfig(){for(let[e,t]of Object.entries(this.entriesConfig))this.setRspackHtmlPlugin(t.html,e),this.setRspackEntry(t.entry)}},bt=new Se});var Ee,Oe,Ct,xt=f(()=>{"use strict";n();Ee=l(require("path"),1);C();Oe=class{store;swcJsOptions={};swcTsOptions={};coreJs={version:"3",alias:"",path:""};async setup(e){this.store=e,this.swcInitOptions(),await this.run()}async run(){let e=[this.jsDataUrl(),this.files(),this.scripts(),this.rspackGenerator(),this.rspackParser()];await this.store.empConfig.lifeCycle.beforeModule(),await Promise.all(e),await this.store.empConfig.lifeCycle.afterModule()}rspackGenerator(){let e=this.store.isDev?"[path][name]-[local]-[hash:5]":"[local]-[hash:5]";this.store.chain.merge({module:{generator:{css:{localIdentName:e},"css/auto":{localIdentName:e},"css/module":{localIdentName:e}}}})}rspackParser(){this.store.chain.merge({module:{parser:{css:{namedExports:!1},"css/auto":{namedExports:!1},"css/module":{namedExports:!1}}}})}get isPolyfill(){return this.store.empConfig.build.polyfill}swcParser(e){switch(e){case"js":return{syntax:"ecmascript",jsx:!0,decorators:!0,decoratorsBeforeExport:!1};case"ts":return{syntax:"typescript",decorators:!0,tsx:!0,dynamicImport:!0}}}swcJsc(e){let{target:t,externalHelpers:s}=this.store.empConfig.build;return{parser:this.swcParser(e),transform:{},target:t,externalHelpers:s,preserveAllComments:!0}}get swcCoreVersion(){let[e,t]=this.coreJs.version.split(".");return`${e}.${t}`}swcOptions(e){let t={jsc:y(this.swcJsc(e),{...this.store.empConfig.build.swcConfig}),isModule:"unknown"};return this.isPolyfill&&(delete t.jsc.target,t.env={coreJs:this.swcCoreVersion,targets:this.store.empConfig.build.browserslist},this.store.empConfig.isESM||(t.env.mode=this.store.empConfig.build.polyfill),this.store.empConfig.build.polyfill==="usage"&&(t.env.shippedProposals=!0,t.env.include=this.store.empConfig.build.polyfillInclude)),t}swcInitOptions(){let{externalHelpers:e}=this.store.empConfig.build;e&&this.store.chain.resolve.alias.set("@swc/helpers",Ee.default.dirname(require.resolve("@swc/helpers/package.json"))),this.coreJs.path=require.resolve("core-js/package.json");let t=oe(this.coreJs.path);t&&(this.coreJs.version=t),this.coreJs.alias=Ee.default.dirname(this.coreJs.path),this.store.empConfig.build.polyfill&&(this.store.chain.resolve.alias.set("core-js",this.coreJs.alias),this.store.chain.module.rule("javascript").exclude.add(/core-js/),this.store.chain.module.rule("typescript").exclude.add(/core-js/)),this.swcTsOptions=this.swcOptions("ts"),this.swcJsOptions=this.swcOptions("js")}jsDataUrl(){this.store.chain.module.rule("jsDataUrl").merge({mimetype:{or:["text/javascript","application/javascript"]}}).resolve.set("fullySpecified",!1).end().use("swcJsParser").loader("builtin:swc-loader").options(this.swcJsOptions)}async scripts(){let e=[],{rule:t,use:s}=this.store.chainName;this.store.chain.merge({module:{parser:{javascript:{exportsPresence:"error",importExportsPresence:"error"}},rule:{[t.mjs]:{test:/\.m?js/,resolve:{fullySpecified:!1}},[t.typescript]:{test:/\.(ts|tsx)$/,exclude:e,use:{[s.swc]:{loader:"builtin:swc-loader",options:this.swcTsOptions}}},[t.javascript]:{test:/\.((m|c)?js|jsx)$/,exclude:e,use:{[s.swc]:{loader:"builtin:swc-loader",options:this.swcJsOptions}}},[t.sourceMap]:{test:/\.[tj]sx?$/,enforce:"pre",use:{[s.sourceMap]:{loader:require.resolve("source-map-loader")}}}}}})}async files(){let{rule:e}=this.store.chainName;this.store.chain.merge({module:{rule:{[e.svg]:{test:/\.svg$/,type:"asset/resource"}}}}),this.store.chain.merge({module:{rule:{[e.inline]:{resourceQuery:/inline/,type:"asset/inline"}}}}),this.store.chain.merge({module:{rule:{[e.image]:{test:/\.(png|jpe?g|gif|webp|ico)$/i,type:"asset/resource"},[e.font]:{test:/\.(|otf|ttf|eot|woff|woff2)$/i,type:"asset/resource"},[e.svga]:{test:/\.(svga)$/i,type:"asset/resource"}}}})}},Ct=new Oe});var Pe,N,ke,St,Et=f(()=>{"use strict";n();Pe=l(require("fs"),1),N=l(require("@rspack/core"),1),ke=class{store;async setup(e){this.store=e;let t=[this.define(),this.anylayze(),this.progress(),this.copy(),this.minify(),this.redoctor()];await this.store.empConfig.lifeCycle.beforePlugin(),await Promise.all(t),await this.store.empConfig.lifeCycle.afterPlugin()}async anylayze(){if(!this.store.cliOptions.analyze)return;let{default:{BundleAnalyzerPlugin:e}}=await import("webpack-bundle-analyzer");this.store.chain.plugin(this.store.chainName.plugin.bundleAnalyzer).use(e,[{analyzerPort:this.store.empConfig.server.port,defaultSizes:"gzip",analyzerHost:this.store.getLanIp()||"127.0.0.1"}])}async define(){this.store.chain.plugin(this.store.chainName.plugin.define).use(N.default.DefinePlugin,[this.store.empConfig.define])}async copy(){let e=this.store.resolve("public");Pe.default.existsSync(e)&&Pe.default.readdirSync(e).length>0&&this.store.chain.plugin(this.store.chainName.plugin.copy).use(N.default.CopyRspackPlugin,[{patterns:[{from:e,to:this.store.resolve(this.store.empConfig.build.outDir),noErrorOnMissing:!0,globOptions:{ignore:["**/.DS_Store"]}}]}])}async progress(){this.store.empConfig.debug.progress&&this.store.chain.plugin(this.store.chainName.plugin.progress).use(N.default.ProgressPlugin,[{prefix:"EMP"}])}minify(){this.store.chain.optimization.minimize(this.store.mode==="production"),this.store.chain.optimization.minimizer(this.store.chainName.minimizer.minJs).use(N.default.SwcJsMinimizerRspackPlugin,[this.store.empConfig.build.minOptions]),this.store.chain.optimization.minimizer(this.store.chainName.minimizer.minCss).use(N.default.LightningCssMinimizerRspackPlugin,[this.store.empConfig.build.cssminOptions])}redoctor(){if(!this.store.empConfig.debug.rsdoctor)return;let{RsdoctorRspackPlugin:e}=require("@rsdoctor/rspack-plugin"),t={};typeof this.store.empConfig.debug.rsdoctor=="object"&&(t=this.store.empConfig.debug.rsdoctor),this.store.chain.plugin(this.store.chainName.plugin.rsdoctor).use(e,[t])}},St=new ke});var $e,Ot,Pt=f(()=>{"use strict";n();gt();yt();wt();xt();Et();$e=class{store;async setup(e){this.store=e;let t=[ut.setup(this.store),Ct.setup(this.store),St.setup(this.store),bt.setup(this.store),dt.setup(this.store)];await Promise.all(t),await this.store.empConfig.lifeCycle.beforeEmpPlugin(),await this.store.empConfig.plugins(),await this.store.empConfig.lifeCycle.afterEmpPlugin(),await this.store.empConfig.chain()}},Ot=new $e});var kt,$t=f(()=>{"use strict";n();kt={rule:{mjs:"mjs",typescript:"typescript",javascript:"javascript",sourceMap:"sourceMapLoader",inline:"inline",svg:"svg",image:"image",font:"fonts",svga:"svga",sass:"sass",less:"less",css:"css"},use:{swc:"swc",sourceMap:"sourceMapLoader",sass:"sassLoader",less:"lessLoader"},plugin:{bundleAnalyzer:"bundleAnalyzerPlugin",define:"definePlugin",copy:"copyRspackPlugin",progress:"progressPlugin",html:{prefix:"html-plugin-"},rsdoctor:"rsdoctor"},minimizer:{minJs:"minJs",minCss:"minCss"}}});var jt,w,Dt,Tt,je,o,v=f(()=>{"use strict";n();jt=l(require("fs/promises"),1),w=l(require("path"),1),Dt=l(require("util"),1);S();C();ft();Pt();Tt=l(require("webpack-chain"),1);$t();be();je=class{empPkg={dependencies:{},devDependencies:{},version:"2.0.0",name:""};pkg={dependencies:{},devDependencies:{},version:"0.0.0",name:""};root=process.cwd();empRoot=w.default.resolve(__dirname,__filename).replace(`${w.default.sep}dist${w.default.sep}index.js`,"");empSource=w.default.resolve(this.empRoot,"dist");resolve=e=>w.default.isAbsolute(e)?e:w.default.resolve(this.root,e);empResolve=e=>w.default.resolve(this.empRoot,e);appSrc="";outDir="";publicDir="";resource={dir:"",key:"",cert:""};chainName=kt;cacheDir="";mode="development";cliMode="dev";isDev=!0;cliOptions;chain;rsConfig;empOptions={};empConfig;vCompare=ae;deepAssign=y;getLanIp=M;entries={};debug;async setup(e,t){p.time("[store]Setup"),await this.initVars(e,t),this.empConfig=mt,await this.empConfig.setup(this),this.debug={...this.empConfig.debug},this.initPaths(),this.chain=new Tt.default,await Ot.setup(this),this.setLogger(),this.toConfig(),this.logConfig(),p.timeEnd("[store]Setup")}async initVars(e,t){this.cliOptions=t||{},this.cliMode="prod",this.mode=e==="dev"?"development":"production",this.isDev=this.mode==="development",process.env.NODE_ENV=e==="dev"?"development":"production";let s=require(this.empResolve("package.json")),r=require(this.resolve("package.json"));this.empPkg={...this.empPkg,...s},this.pkg={...this.pkg,...r},this.resource.dir=w.default.join(this.empRoot,"resource"),this.resource.cert=w.default.join(this.resource.dir,"emp.cert"),this.resource.key=w.default.join(this.resource.dir,"emp.key")}initPaths(){this.appSrc=this.resolve(this.empConfig.appSrc),this.outDir=this.resolve(this.empConfig.build.outDir),this.publicDir=this.resolve(this.empConfig.build.publicDir),this.cacheDir=this.resolve(this.empConfig.cacheDir)}setLogger(){let e=this.cliMode==="dev"?"debug":"info";this.debug.loggerLevel&&(e=this.debug.loggerLevel),p.setup({fullName:`EMP\u26A1${this.empPkg.version}${this.cliMode==="dev"?".DEV":""}`,brandName:"EMP",logLevel:e})}merge(e){this.chain.merge(e)}toConfig(){this.rsConfig=this.chain.toConfig()}logConfig(){if(this.debug.showRsconfig)if(typeof this.debug.showRsconfig=="string"){let e=w.default.join(this.root,this.debug.showRsconfig);jt.default.writeFile(e,JSON.stringify(this.rsConfig,null,2))}else{this.debug.clearLog=!1;let e={colors:!0,depth:null},t=typeof this.debug.showRsconfig=="object"?y(e,this.debug.showRsconfig):e;console.log(p.link("[Compile Config]")),console.log(Dt.default.inspect(this.rsConfig,t))}}get browserslistOptions(){return{default:["chrome >= 87","edge >= 88","firefox >= 78","safari >= 14"],h5:["iOS >= 9","Android >= 4.4","last 2 versions","> 0.2%","not dead"],node:["node >= 16"]}}get uniqueName(){return this.pkg.name.replaceAll("/","_").replaceAll("@","_").replaceAll("-","_")}injectHeadTags(e,t="",s=""){this.chain.plugin(`${I}-${t}`).use(I,[e,t,s])}},o=new je});function Rs(i,e){let t=[i,e],s=["File","Size","Gzipped"].reduce((r,a,c)=>{let g=t[c],O=a;return g&&(O=a.length<g?a+" ".repeat(g-a.length):a),`${r+O} `}," ");console.log(D.bold(s))}async function Nt(i){let e=i.toJson({all:!1,assets:!0,timings:!0}),s=e.assets.filter(u=>js(u.name)).map(Ts);s.sort((u,F)=>u.size-F.size);let r=Math.max(...s.map(u=>u.sizeLabel.length)),a=Math.max(...s.map(u=>(u.folder+P.default.sep+u.name).length));Rs(a,r);let c=0,g=0;s.forEach(u=>{let{sizeLabel:F}=u,{name:es,folder:ts,gzipSizeLabel:ss}=u,Me=(ts+P.default.sep+es).length,ze=F.length;if(c+=u.size,g+=u.gzippedSize,ze<r){let ee=" ".repeat(r-ze);F+=ee}let Ge=T(u.folder+P.default.sep)+Ls(u.name);if(Me<a){let ee=" ".repeat(a-Me);Ge+=ee}p.info(` ${Ge} ${T(F)} ${ss}`)});let O=`${D.bold("Total size:")} ${V(c)}`,A=`${D.bold("Gzipped size:")} ${V(g)}`;p.info(`
9
+ `)}},p=new ne});var me={};j(me,{clearConsole:()=>pe,deepAssign:()=>y,ensureArray:()=>gs,getLanIp:()=>M,getPkgVersion:()=>ae,importJsVm:()=>ce,jsonFilter:()=>ds,timeFormat:()=>H,vCompare:()=>le});function pe(){process.stdout.write(process.platform==="win32"?"\x1B[2J\x1B[0f":"\x1B[2J\x1B[3J\x1B[H")}function y(i,...e){for(let t of e)for(let s in t){let o=t[s],a=i[s];if(Object(o)==o&&Object(a)===a){i[s]=y(a,o);continue}i[s]=t[s]}return i}var Be,He,Je,_e,M,ae,gs,ds,le,H,ce,C=m(()=>{"use strict";n();Be=require("address"),He=l(require("chalk"),1),Je=require("default-gateway"),_e=l(require("fs-extra"),1),M=()=>{let{int:i}=(0,Je.gateway4sync)();return(0,Be.ip)(i||"")||"127.0.0.1"},ae=i=>{try{let{version:e}=_e.default.readJSONSync(i);return e}catch{return}};gs=i=>Array.isArray(i)?i:[i],ds=(i={},e=[])=>Object.keys(i).filter(t=>!e.includes(t)).reduce((t,s)=>(t[s]=i[s],t),{}),le=(i="",e="")=>{let t=i.replace("^","").split("."),s=e.replace("^","").split("."),o=Math.max(t.length,s.length),a=0;for(let f=0;f<o;f++){let g=t.length>f?t[f]:0,O=isNaN(Number(g))?g.charCodeAt():Number(g),N=s.length>f?s[f]:0,u=isNaN(Number(N))?N.charCodeAt():Number(N);if(O<u){a=-1;break}else if(O>u){a=1;break}}return a},H=i=>{i=i/1e3;let e=s=>He.default.bold(s);if(i<1)return`${i*1e3} ms`;if(i<10){let s=i>=.01?2:3;return`${e(i.toFixed(s))} s`}if(i<60)return`${e(i.toFixed(1))} s`;let t=i/60;return`${e(t.toFixed(2))} m`},ce=i=>`data:text/javascript,${i}`});var fe={};j(fe,{chalk:()=>We.default,color:()=>h,glob:()=>$.glob,logger:()=>p,utils:()=>me});var We,$,z=m(()=>{"use strict";n();We=l(require("chalk"),1),$=require("glob");R();C();S()});var qe,Ve,Xe,ys,Qe,Ke,vs,Ye=m(()=>{"use strict";n();qe=l(require("fs"),1),Ve=l(require("path"),1),Xe=require("jiti");v();S();ys=["emp-config.ts","emp-config.js","emp.config.ts","emp.config.js","emp-config.mjs","emp-config.cjs","emp-config.mts","emp-config.cts","emp.config.mjs","emp.config.cjs","emp.config.mts","emp.config.cts"],Qe=(0,Xe.createJiti)(__filename,{interopDefault:!0}),Ke=async()=>vs(),vs=()=>{p.time("[store]GetEmpConfigPath");let i;for(let e of ys){let t=Ve.default.resolve(r.root,e);if(qe.default.existsSync(t)){i=t;break}}return p.timeEnd("[store]GetEmpConfigPath"),i}});async function J(i,e="localhost"){if(i!==bs&&(i<Ze||i>he))throw new Error(`Port number must lie between ${Ze} and ${he}`);let t=i,s=ws(),o;e&&!s.has(e)?o=new Set([e]):o=s;let a=new Set(["EADDRINUSE","EACCES"]);for(;t<=he;)try{return await xs(t,o)}catch(f){if(!a.has(f.code))throw f;t+=1}throw new Error("No available ports found")}var et,tt,Ze,he,bs,ws,Cs,xs,ue=m(()=>{"use strict";n();et=l(require("net"),1),tt=l(require("os"),1),Ze=1024,he=65535,bs=443,ws=()=>{let i=tt.default.networkInterfaces(),e=new Set([void 0,"0.0.0.0"]);for(let t of Object.values(i))if(t)for(let s of t)e.add(s.address);return e},Cs=(i,e)=>new Promise((t,s)=>{let o=et.default.createServer();o.unref(),o.on("error",s),o.listen(i,e,()=>{let{port:a}=o.address();o.close(()=>{t(a)})})}),xs=async(i,e)=>{let t=new Set(["EADDRNOTAVAIL","EINVAL"]);for(let s of e)try{await Cs(i,s)}catch(o){if(!t.has(o.code))throw o}return i}});var ge,st,de,L,ye=m(()=>{"use strict";n();ge=l(require("url"),1),st=l(require("chalk"),1);R();C();de=class{imf={protocol:"",port:8e3,pathname:"/"};host="0.0.0.0";urls={lanUrlForConfig:"",lanUrlForTerminal:T("unavailable"),localUrlForTerminal:"",localUrlForBrowser:""};setup(e){e.host&&(this.host=e.host),e.protocol&&(this.imf.protocol=e.protocol),e.pathname&&(this.imf.pathname=e.pathname),e.port&&(this.imf.port=e.port),this.setupUrls()}setupUrls(){let{host:e}=this,t=e==="0.0.0.0"||e==="::",s;if(t){s="localhost";try{this.urls.lanUrlForConfig=this.getLanIp(),this.urls.lanUrlForConfig&&(/^10[.]|^172[.](1[6-9]|2[0-9]|3[0-1])[.]|^192[.]168[.]/.test(this.urls.lanUrlForConfig)?this.urls.lanUrlForTerminal=this.prettyPrintUrl(this.urls.lanUrlForConfig):this.urls.lanUrlForConfig="")}catch{}}else s=e,this.urls.lanUrlForConfig=e,this.urls.lanUrlForTerminal=this.prettyPrintUrl(this.urls.lanUrlForConfig);this.urls.localUrlForTerminal=this.prettyPrintUrl(s),this.urls.localUrlForBrowser=this.formatUrl(s)}getLanIp=M;formatUrl(e){let{protocol:t,port:s,pathname:o}=this.imf;return ge.default.format({protocol:t,hostname:e,port:s,pathname:o})}prettyPrintUrl(e){let{protocol:t,port:s,pathname:o}=this.imf;return ge.default.format({protocol:t,hostname:e,port:st.default.bold(s),pathname:o})}},L=new de});var ot,rt,nt,it,Ss,Es,at,pt=m(()=>{"use strict";n();ot=require("child_process"),rt=require("util");v();S();nt=(0,rt.promisify)(ot.exec),it=["Google Chrome Canary","Google Chrome Dev","Google Chrome Beta","Google Chrome","Microsoft Edge","Brave Browser","Vivaldi","Chromium"],Ss=async()=>{let i=process.env.BROWSER;if(!i||!it.includes(i)){let{stdout:e}=await nt("ps cax");i=it.find(t=>e.includes(t))}return i},Es=async i=>{if(process.platform==="darwin")try{let t=await Ss();if(t){let s=`osascript openChrome.applescript "${encodeURI(i)}" "${t}"`;return await nt(s,{cwd:r.resource.dir}),!0}}catch(t){p.debug(t)}try{let{default:t}=await import("open");return await t(i),!0}catch(t){return p.error("Failed to open start URL."),p.error(t),!1}},at=Es});var ve,_,be=m(()=>{"use strict";n();ue();ye();C();v();ve=class{isADB=!1;isHttps=!1;get isHttpBase(){let e=r.empOptions.base||"";return e.indexOf("http://")>-1||e.indexOf("https://")>-1}async setup(){if(this.isADB=!!r.empOptions.autoDevBase&&r.mode==="development"&&!this.isHttpBase,!this.isADB)return;let{server:e,https:t}=r.empOptions.server||{};this.isHttps=e==="https"||typeof e=="object"&&e.type==="https"||t===!0;let s=L.getLanIp(),o=this.isHttps?"https":"http",a=r.empOptions.server?.port||8e3;a=await J(a,s),r.empOptions.base=`${o}://${s}:${a}/`,r.empOptions.server=y({port:a,client:{webSocketURL:`${this.isHttps?"wss":"ws"}://${s}:${a}/ws`}},r.empOptions.server)}},_=new ve});var we,E,G=m(()=>{"use strict";n();we=l(require("fs/promises"),1);R();ue();ye();S();pt();C();v();be();E=class{sf={protocol:"http",host:"0.0.0.0",port:8e3,publicPath:"",publicHasHttp:!1,isOpenBrower:!1,url:"",urls:{localUrlForBrowser:"",localUrlForTerminal:"",lanUrlForTerminal:"",lanUrlForConfig:""}};static httpsType="default";async adaptServer(){this.sf.publicPath=r.rsConfig.output?.publicPath==="auto"?"/":r.rsConfig.output?.publicPath||"/",this.sf.isOpenBrower=!!r.empConfig.server.open,this.sf.protocol=this.isHttps?"https":"http",this.sf.host=r.empConfig.server.host?r.empConfig.server.host:this.sf.host,this.sf.port=r.empConfig.server.port,await this.serverPort(),L.setup(this.sf),this.sf.publicPath&&(this.sf.publicPath.indexOf("http://")>-1||this.sf.publicPath.indexOf("https://")>-1)?(this.sf.url=this.sf.publicPath,this.sf.publicHasHttp=!0,this.sf.urls.localUrlForTerminal=L.prettyPrintUrl("localhost")):(this.sf.urls=L.urls,this.sf.url=this.sf.urls.localUrlForBrowser)}startOpen(){let{urls:e}=this.sf;this.sf.publicHasHttp?(p.info(`${x("\u279C")} Local: ${p.link(e.localUrlForTerminal)}`),p.info(`${x("\u279C")} Network: ${p.link(this.sf.publicPath)}`)):(p.info(`${x("\u279C")} Local: ${p.link(e.localUrlForTerminal)}`),p.info(`${x("\u279C")} Network: ${p.link(e.lanUrlForTerminal)}
10
+ `)),this.sf.isOpenBrower&&at(this.sf.url)}async setup(e,t){p.time(`[${e}]Setup`),await r.setup(e,t),r.debug.clearLog&&pe(),p.title(`${e}`),await this.adaptServer(),p.time(`[${e}]Run`),await this.run(),p.timeEnd(`[${e}]Run`),this.afterRun(),p.timeEnd(`[${e}]Setup`)}async run(){}afterRun(){process.on("SIGINT",function(){process.exit()})}get isHttps(){let{server:e,https:t,http2:s}=r.empConfig.server||{};return e==="https"||typeof e=="object"&&e.type==="https"||t===!0||s===!0}getcert(){return Promise.all([we.default.readFile(r.resource.key),we.default.readFile(r.resource.cert)])}async serverPort(){if(_.isADB)return;let{port:e,host:t}=this.sf,s=await J(e,t);s!==e&&(this.sf.port=s,r.rsConfig.devServer?.port&&(r.rsConfig.devServer.port=s))}}});function Os(){let i=[`import 'core-js/${r.empConfig.build.polyfill.coreJsFeatures}'`].join(`
11
+ `);return ce(i)}var q,W,I,V=m(()=>{"use strict";n();q=l(require("html-webpack-plugin"),1);C();v();W=class{constructor(){}apply(e){let{webpack:t}=e;r.empConfig.build.polyfill.entryCdn||new t.EntryPlugin(e.context,Os(),{name:void 0}).apply(e)}},I=class{PluginName="HtmlEmpInjectPlugin";chunk="";files=[];constructor(e,t="",s=""){this.PluginName=`${this.PluginName}-${t}`,this.files=e,this.chunk=s}apply(e){e.hooks.compilation.tap(this.PluginName,t=>{q.default.getHooks(t).alterAssetTagGroups.tapPromise(this.PluginName,async s=>(this.chunk&&!s.plugin.userOptions.chunks?.includes(this.chunk)||this.files.map(o=>{let{pos:a,...f}=o;(a==="body"?s.bodyTags:s.headTags).push({attributes:{},voidTag:!1,meta:{plugin:void 0},tagName:"script",...f})}),s))})}}});var X,lt=m(()=>{"use strict";n();v();be();V();X=class{op={};constructor(e={}){this.op=e}async afterGetEmpOptions(){await _.setup(),this.op.afterGetEmpOptions&&await this.op.afterGetEmpOptions()}async beforePlugin(){r.empConfig.build.polyfill.mode==="entry"&&r.chain.plugin("empPolyfill").use(W),this.op.beforePlugin&&await this.op.beforePlugin()}async afterPlugin(){this.op.afterPlugin&&await this.op.afterPlugin()}async beforeModule(){this.op.beforeModule&&await this.op.beforeModule()}async afterModule(){this.op.afterModule&&await this.op.afterModule()}async beforeEmpPlugin(){this.op.beforeEmpPlugin&&await this.op.beforeEmpPlugin()}async afterEmpPlugin(){this.op.afterEmpPlugin&&await this.op.afterEmpPlugin()}async beforeBuild(){this.op.beforeBuild&&await this.op.beforeBuild()}async afterBulid(){this.op.afterBulid&&await this.op.afterBulid()}async beforeDevServe(){this.op.beforeDevServe&&await this.op.beforeDevServe()}async afterDevServe(){this.op.afterDevServe&&await this.op.afterDevServe()}async beforeServe(){this.op.beforeServe&&await this.op.beforeServe()}async afterServe(){this.op.afterServe&&await this.op.afterServe()}}});var ct,Ce,mt,ft=m(()=>{"use strict";n();ct=l(require("fs"),1);z();Ye();C();G();lt();Ce=class{store;appSrc="src";appEntry="";base="";target=[];assign(e,t){return t=t||{},y(e,t)}isESM=!1;async autoDevSet(){this.store.mode==="development"&&this.store.empOptions.autoDevBase}checkIsESM(e){return["es3","es5"].indexOf(e)===-1}lifeCycle;async setup(e){this.store=e,await this.syncEmpOptions(),this.lifeCycle=new X(this.store.empOptions.lifeCycle),await this.lifeCycle.afterGetEmpOptions(),this.isESM=this.checkIsESM(this.build.target),this.store.empOptions.target?(this.target=this.store.empOptions.target,Array.isArray(this.target)&&!this.target.includes(this.build.target)&&this.target.push(this.build.target)):this.target=["web",this.build.target];let{appSrc:t,base:s,appEntry:o}=this.store.empOptions;t&&(this.appSrc=t),s&&(this.base=s),o&&(this.appEntry=o)}async chain(){this.store.empOptions.chain&&await this.store.empOptions.chain(this.store.chain)}async plugins(){let e=[];this.store.empOptions.plugins&&Array.isArray(this.store.empOptions.plugins)&&this.store.empOptions.plugins.length>0&&(this.store.empOptions.plugins.map(t=>{e.push(t.rsConfig(this.store))}),await Promise.all(e))}get debug(){let e=!1;return this.store.cliOptions.doctor&&(e={supports:{generateTileGraph:!0}}),this.assign({loggerLevel:"info",clearLog:!0,progress:!0,showRsconfig:!1,showPerformance:!1,rspackCache:!0,rsdoctor:e,infrastructureLogging:{appendOnly:!0,level:"warn"},newTreeshaking:this.store.empConfig.isESM,devShowAllLog:!1,showScriptDebug:!1},this.store.empOptions.debug)}get build(){let e=this.store.empOptions.build?.staticDir?`${this.store.empOptions.build?.staticDir}/`:"";return this.assign({outDir:"dist",staticDir:e,assetsDir:"assets",publicDir:"public",chunkIds:this.store.isDev?"named":"deterministic",moduleIds:this.store.isDev?"named":"deterministic",sourcemap:this.store.isDev,minify:!this.store.isDev,minOptions:{},cssminOptions:{},target:"es5",polyfill:{mode:void 0,entryCdn:void 0,splitChunks:!1,include:[],coreJsFeatures:"stable",externalHelpers:!1,browserslist:this.store.browserslistOptions.default},swcConfig:{},devtool:this.store.isDev?"cheap-module-source-map":"source-map"},{...this.store.empOptions.build,staticDir:e})}get html(){let e=this.store.empOptions.html?.template?{}:{charset:{charset:"utf-8"},"http-equiv":{"http-equiv":"X-UA-Compatible",content:"IE=edge"},viewport:{name:"viewport",content:"width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0"},keywords:{keywords:""},description:{description:""}};return this.assign({lang:"zh-CN",title:"EMP",inject:"body",minify:!this.store.isDev,scriptLoading:this.isESM?"module":"defer",meta:e,tags:[]},this.store.empOptions.html)}get entries(){return this.store.empOptions.entries?this.store.empOptions.entries:{}}get server(){let e={host:"0.0.0.0",port:8e3,open:process.platform==="darwin",hot:!0,watchFiles:["src/**/*.html"],static:[{directory:this.store.publicDir,watch:this.store.isDev}],allowedHosts:["all"],historyApiFallback:!0,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, PATCH, OPTIONS","Access-Control-Allow-Headers":"X-Requested-With, content-type, Authorization"}};return this.store.empOptions.server?.http2&&(E.httpsType="h2",delete this.store.empOptions.server.http2),this.assign(e,this.store.empOptions.server)}get css(){return this.assign({sass:{mode:"modern",warnRuleAsWarning:!1}},this.store.empOptions.css)}get output(){let e=(this.store.isDev,".[contenthash:8]"),t=this.store.isDev?"":".[contenthash:8]",{assetsDir:s,staticDir:o}=this.store.empConfig.build,a={publicPath:this.store.empConfig.base?this.store.empConfig.base:"auto",crossOriginLoading:"anonymous",filename:`${o}js/[name]${e}.js`,cssFilename:`${o}css/[name]${t}.css`,cssChunkFilename:`${o}css/[name]${t}.css`,assetModuleFilename:`${o}${s}/[name]${e}[ext][query]`,path:this.store.outDir,clean:!0,uniqueName:this.store.uniqueName};return this.assign(a,this.store.empOptions.output)}get define(){let e={mode:this.store.mode,env:this.store.cliOptions.env};return this.store.empOptions.define&&(e={...e,...this.store.empOptions.define}),this.setDefine(e)}setDefine(e){let t=this.store.empOptions.defineFix?this.store.empOptions.defineFix:this.isESM?"esm":"cjs",s={};return Object.keys(e).map(o=>{t==="all"?(s[`import.meta.env.${o}`]=JSON.stringify(e[o]),s[`process.env.${o}`]=JSON.stringify(e[o])):t==="esm"?s[`import.meta.env.${o}`]=JSON.stringify(e[o]):t==="cjs"?s[`process.env.${o}`]=JSON.stringify(e[o]):t==="none"&&(s[`${o}`]=JSON.stringify(e[o]))}),s}get externals(){return this.assign({},this.store.empOptions.externals)}get resolve(){return y({alias:{src:this.store.resolve("src"),"@":this.store.resolve("src")},extensions:["...",".js",".jsx",".mjs",".ts",".tsx",".css",".less",".scss",".sass",".json",".wasm",".vue",".svg",".svga"]},this.store.empOptions.resolve)}async syncEmpOptions(){p.time("[store][empConfig]SyncEmpOptions");let e=await Ke();if(!e||!ct.default.existsSync(e))return;let t=await Qe(e);typeof t=="function"?this.store.empOptions=await t(this.store):this.store.empOptions=t||{},p.timeEnd("[store][empConfig]SyncEmpOptions")}get moduleTransformRule(){let{moduleTransform:e}=this.store.empOptions,t=this.assign({defaultExclude:!1},e),s={and:[],not:[]};return t.defaultExclude===!0&&s.and.push(/(node_modules|bower_components)/),t?.exclude&&(s.and=s.and.concat(t.exclude)),e?.include&&(s.not=t.include),s}get cacheDir(){return this.store.empOptions.cacheDir?this.store.empOptions.cacheDir:"node_modules/.emp-cache"}get ignoreWarnings(){return this.store.empOptions.ignoreWarnings?this.store.empOptions.ignoreWarnings:[/Conflicting order/]}get autoPages(){let e;return this.store.empOptions.autoPages&&(e=typeof this.store.empOptions.autoPages=="boolean"?{}:this.store.empOptions.autoPages,e=this.assign({path:"pages"},e)),e}},mt=new Ce});var ht,xe,ut,gt=m(()=>{"use strict";n();ht=l(require("fs-extra"),1),xe=class{store;async setup(e){this.store=e;let t=[this.common(),this.stats(),this.devServer(),this.optimization(),this.checkTsconfig()];await Promise.all(t)}async common(){this.store.merge({node:{global:!0},experiments:{outputModule:this.store.empConfig.isESM,topLevelAwait:!0,css:!0},target:this.store.empConfig.target,infrastructureLogging:this.store.empConfig.debug.infrastructureLogging,context:this.store.root,mode:this.store.mode,cache:this.store.empConfig.debug.rspackCache,devtool:this.store.empConfig.build.sourcemap?this.store.empConfig.build.devtool:!1,output:this.store.empConfig.output,resolve:this.store.empConfig.resolve,externals:this.store.empConfig.externals,ignoreWarnings:this.store.empConfig.ignoreWarnings,watchOptions:{ignored:["**/node_modules/**","**/@mf-types/**"]}})}async checkTsconfig(){let e=this.store.resolve("tsconfig.json");if(await ht.default.exists(e)){let s={tsConfig:e};this.store.merge({resolve:s})}}async stats(){this.store.merge({stats:{colors:!0,all:!1,assets:!1,chunks:!1,timings:!0,version:!0}})}async devServer(){this.store.merge({devServer:this.store.empConfig.server})}async optimization(){let e={moduleIds:this.store.empConfig.build.moduleIds,chunkIds:this.store.empConfig.build.chunkIds,minimize:this.store.empConfig.build.minify,splitChunks:{chunks:"async",cacheGroups:{}}};this.store.empConfig.build.polyfill.mode==="entry"&&this.store.empConfig.build.polyfill.splitChunks&&!this.store.empConfig.build.polyfill.entryCdn&&(e.splitChunks.cacheGroups={coreJs:{test:/[\\/]node_modules[\\/](core-js)[\\/]/,name:"coreJs",chunks:"all",enforce:!0}}),this.store.chain.merge({optimization:e})}},ut=new xe});var Se,dt,yt=m(()=>{"use strict";n();Se=class{store;async setup(e){this.store=e;let t=[this.sass(),this.less(),this.css()];await Promise.all(t)}async sass(){let{rule:e,use:t}=this.store.chainName,s={},{sass:o}=this.store.empConfig.css||{sass:{}};o.mode==="modern"&&(s.implementation=o.implementation?o.implementation:require.resolve("sass-embedded"),s.sourceMap=this.store.empConfig.build.sourcemap,o.sassOptions&&(s.sassOptions=o.sassOptions)),typeof o.warnRuleAsWarning<"u"&&(s.warnRuleAsWarning=o.warnRuleAsWarning),typeof o.webpackImporter<"u"&&(s.webpackImporter=o.webpackImporter),this.store.chain.merge({module:{rule:{[e.sass]:{test:/\.(sass|scss)$/,use:{[t.sass]:{loader:require.resolve("sass-loader"),options:s}},type:"css/auto"}}}})}async less(){let{rule:e,use:t}=this.store.chainName,s={loader:require.resolve("less-loader"),options:{lessOptions:{javascriptEnabled:!0}}};this.store.chain.merge({module:{rule:{[e.less]:{test:/\.less$/,use:{[t.less]:s},type:"css/auto"}}}})}async css(){let{rule:e}=this.store.chainName;this.store.chain.merge({module:{rule:{[e.css]:{test:/\.css$/,use:{},type:"css/auto"}}}})}},dt=new Se});var b,Ee,vt,bt=m(()=>{"use strict";n();b=l(require("path"),1);z();V();Ee=class{store;entriesConfig={};async setup(e){this.store=e,await this.init(),this.toConfig()}setHtmlConfig(e,t){return e.template=this.setTemplate(e.template),e.favicon=this.setFavicion(e.favicon),e.chunks=t,e.filename=`${t[0]}.html`,this.store.empConfig.base&&(e.publicPath=this.store.empConfig.base),this.prepareAndSetAsset(e),e}prepareAndSetAsset(e){let t=e.chunks?e.chunks[0]:void 0;this.store.injectTags(e.tags,"injectTags",t),delete e.tags}injectPolyfill(){if(!this.store.empConfig.build.polyfill.entryCdn)return;let e=[{attributes:{src:this.store.empConfig.build.polyfill.entryCdn},tagName:"script",pos:"head"}];this.store.injectTags(e,"injectEMPPolyfill")}setChunk(e){return e.replace(b.default.extname(e),"").replace(`${this.store.empConfig.appSrc}${b.default.sep}`,"")}setTemplate(e){return e?this.store.resolve(e):this.store.empResolve(b.default.join("template","index.html"))}setFavicion(e){return e?this.store.resolve(e):this.store.empResolve(b.default.join("template","favicon.ico"))}setEntryItem(e,t,s){s=s||this.store.resolve(b.default.join(this.store.empConfig.appSrc,e));let o=this.setChunk(e),a=[s];this.entriesConfig[o]={entry:{[o]:a},html:this.setHtmlConfig(t,[o])},this.store.entries[o]=a}setRspackHtmlPlugin(e,t){this.store.chain.plugin(`${this.store.chainName.plugin.html.prefix}${t}`).use(q.default,[e])}setRspackEntry(e){this.store.merge({entry:e})}async init(){this.injectPolyfill(),this.store.empConfig.autoPages?await this.setAutoPage():(await this.setDefaultEntry(),this.setEntryByConfig())}async setAutoPage(){p.time("setAutoPage");let e=this.store.empConfig.autoPages?.path||"pages",t=b.default.join(this.store.appSrc,e),s=b.default.join(t,"**","*.{ts,tsx,jsx,js}"),o=await(0,$.glob)([s],{windowsPathsNoEscape:!0});o=o.map(a=>a.replace(`${t}${b.default.sep}`,"")),o.map(a=>{let f=this.store.empConfig.entries[a]||{};this.setEntryItem(a,{...this.store.empConfig.html,...f},b.default.join(t,a))}),p.timeEnd("setAutoPage")}async setDefaultEntry(){p.time("[store][empConfig]SetDefaultEntry");let e=b.default.join(this.store.appSrc,this.store.empConfig.appEntry?this.store.empConfig.appEntry:"index.{ts,tsx,jsx,js}"),t=await(0,$.glob)([e],{windowsPathsNoEscape:!0});if(t[0]){let s=b.default.join(this.store.empConfig.appSrc,Object.keys(this.store.empConfig.entries).length>0&&this.store.empConfig.appEntry?this.store.empConfig.appEntry:"index");this.setEntryItem(s,this.store.empConfig.html,t[0])}p.timeEnd("[store][empConfig]SetDefaultEntry")}setEntryByConfig(){if(Object.keys(this.store.empConfig.entries).length>0)for(let[e,t]of Object.entries(this.store.empConfig.entries))this.setEntryItem(e,{...this.store.empConfig.html,...t})}toConfig(){for(let[e,t]of Object.entries(this.entriesConfig))this.setRspackHtmlPlugin(t.html,e),this.setRspackEntry(t.entry)}},vt=new Ee});var Oe,Pe,wt,Ct=m(()=>{"use strict";n();Oe=l(require("path"),1);C();Pe=class{store;swcJsOptions={};swcTsOptions={};coreJs={version:"3",alias:"",path:""};async setup(e){this.store=e,this.swcInitOptions(),await this.run()}async run(){let e=[this.jsDataUrl(),this.files(),this.scripts(),this.rspackGenerator(),this.rspackParser()];await this.store.empConfig.lifeCycle.beforeModule(),await Promise.all(e),await this.store.empConfig.lifeCycle.afterModule()}rspackGenerator(){let e=this.store.isDev?"[path][name]-[local]-[hash:5]":"[local]-[hash:5]";this.store.chain.merge({module:{generator:{css:{localIdentName:e},"css/auto":{localIdentName:e},"css/module":{localIdentName:e}}}})}rspackParser(){this.store.chain.merge({module:{parser:{css:{namedExports:!1},"css/auto":{namedExports:!1},"css/module":{namedExports:!1}}}})}get isPolyfill(){return!!this.store.empConfig.build.polyfill.mode}swcParser(e){switch(e){case"js":return{syntax:"ecmascript",jsx:!0,decorators:!0,decoratorsBeforeExport:!1};case"ts":return{syntax:"typescript",decorators:!0,tsx:!0,dynamicImport:!0}}}swcJsc(e){let{target:t,polyfill:s}=this.store.empConfig.build,{externalHelpers:o}=s;return{parser:this.swcParser(e),transform:{},target:t,externalHelpers:o,preserveAllComments:!0}}get swcCoreVersion(){let[e,t]=this.coreJs.version.split(".");return`${e}.${t}`}swcOptions(e){let t={jsc:y(this.swcJsc(e),{...this.store.empConfig.build.swcConfig}),isModule:"unknown"};return this.isPolyfill&&(delete t.jsc.target,t.env={coreJs:this.swcCoreVersion,targets:this.store.empConfig.build.polyfill.browserslist},this.store.empConfig.isESM||(t.env.mode=this.store.empConfig.build.polyfill.mode),this.store.empConfig.build.polyfill.mode==="usage"&&(t.env.shippedProposals=!0,t.env.include=this.store.empConfig.build.polyfill.include)),t}swcInitOptions(){let{externalHelpers:e}=this.store.empConfig.build.polyfill;e&&this.store.chain.resolve.alias.set("@swc/helpers",Oe.default.dirname(require.resolve("@swc/helpers/package.json"))),this.coreJs.path=require.resolve("core-js/package.json");let t=ae(this.coreJs.path);t&&(this.coreJs.version=t),this.coreJs.alias=Oe.default.dirname(this.coreJs.path),this.store.empConfig.build.polyfill.mode&&(this.store.chain.resolve.alias.set("core-js",this.coreJs.alias),this.store.chain.module.rule("javascript").exclude.add(/core-js/),this.store.chain.module.rule("typescript").exclude.add(/core-js/)),this.swcTsOptions=this.swcOptions("ts"),this.swcJsOptions=this.swcOptions("js")}jsDataUrl(){this.store.chain.module.rule("jsDataUrl").merge({mimetype:{or:["text/javascript","application/javascript"]}}).resolve.set("fullySpecified",!1).end().use("swcJsParser").loader("builtin:swc-loader").options(this.swcJsOptions)}async scripts(){let e=[],{rule:t,use:s}=this.store.chainName;this.store.chain.merge({module:{parser:{javascript:{exportsPresence:"error",importExportsPresence:"error"}},rule:{[t.mjs]:{test:/\.m?js/,resolve:{fullySpecified:!1}},[t.typescript]:{test:/\.(ts|tsx)$/,exclude:e,use:{[s.swc]:{loader:"builtin:swc-loader",options:this.swcTsOptions}}},[t.javascript]:{test:/\.((m|c)?js|jsx)$/,exclude:e,use:{[s.swc]:{loader:"builtin:swc-loader",options:this.swcJsOptions}}}}}})}async files(){let{rule:e}=this.store.chainName;this.store.chain.merge({module:{rule:{[e.svg]:{test:/\.svg$/,type:"asset/resource"}}}}),this.store.chain.merge({module:{rule:{[e.inline]:{resourceQuery:/inline/,type:"asset/inline"}}}}),this.store.chain.merge({module:{rule:{[e.image]:{test:/\.(png|jpe?g|gif|webp|ico)$/i,type:"asset/resource"},[e.font]:{test:/\.(|otf|ttf|eot|woff|woff2)$/i,type:"asset/resource"},[e.svga]:{test:/\.(svga)$/i,type:"asset/resource"}}}})}},wt=new Pe});var ke,A,$e,xt,St=m(()=>{"use strict";n();ke=l(require("fs"),1),A=l(require("@rspack/core"),1),$e=class{store;async setup(e){this.store=e;let t=[this.define(),this.anylayze(),this.progress(),this.copy(),this.minify(),this.redoctor()];await this.store.empConfig.lifeCycle.beforePlugin(),await Promise.all(t),await this.store.empConfig.lifeCycle.afterPlugin()}async anylayze(){if(!this.store.cliOptions.analyze)return;let{default:{BundleAnalyzerPlugin:e}}=await import("webpack-bundle-analyzer");this.store.chain.plugin(this.store.chainName.plugin.bundleAnalyzer).use(e,[{analyzerPort:this.store.empConfig.server.port,defaultSizes:"gzip",analyzerHost:this.store.getLanIp()||"127.0.0.1"}])}async define(){this.store.chain.plugin(this.store.chainName.plugin.define).use(A.default.DefinePlugin,[this.store.empConfig.define])}async copy(){let e=this.store.resolve("public");ke.default.existsSync(e)&&ke.default.readdirSync(e).length>0&&this.store.chain.plugin(this.store.chainName.plugin.copy).use(A.default.CopyRspackPlugin,[{patterns:[{from:e,to:this.store.resolve(this.store.empConfig.build.outDir),noErrorOnMissing:!0,globOptions:{ignore:["**/.DS_Store"]}}]}])}async progress(){this.store.empConfig.debug.progress&&this.store.chain.plugin(this.store.chainName.plugin.progress).use(A.default.ProgressPlugin,[{template:"{bar:25.green/white}{spinner:.green}{percent}% {wide_msg:.dim}",tick:void 0,progressChars:"\u2592\u2592"}])}minify(){this.store.chain.optimization.minimizer(this.store.chainName.minimizer.minJs).use(A.default.SwcJsMinimizerRspackPlugin,[this.store.empConfig.build.minOptions]),this.store.chain.optimization.minimizer(this.store.chainName.minimizer.minCss).use(A.default.LightningCssMinimizerRspackPlugin,[this.store.empConfig.build.cssminOptions])}redoctor(){if(!this.store.empConfig.debug.rsdoctor)return;let{RsdoctorRspackPlugin:e}=require("@rsdoctor/rspack-plugin"),t={};typeof this.store.empConfig.debug.rsdoctor=="object"&&(t=this.store.empConfig.debug.rsdoctor),this.store.chain.plugin(this.store.chainName.plugin.rsdoctor).use(e,[t])}},xt=new $e});var je,Et,Ot=m(()=>{"use strict";n();gt();yt();bt();Ct();St();je=class{store;async setup(e){this.store=e;let t=[ut.setup(this.store),wt.setup(this.store),xt.setup(this.store),vt.setup(this.store),dt.setup(this.store)];await Promise.all(t),await this.store.empConfig.lifeCycle.beforeEmpPlugin(),await this.store.empConfig.plugins(),await this.store.empConfig.lifeCycle.afterEmpPlugin(),await this.store.empConfig.chain()}},Et=new je});var Pt,kt=m(()=>{"use strict";n();Pt={rule:{mjs:"mjs",typescript:"typescript",javascript:"javascript",sourceMap:"sourceMapLoader",inline:"inline",svg:"svg",image:"image",font:"fonts",svga:"svga",sass:"sass",less:"less",css:"css"},use:{swc:"swc",sourceMap:"sourceMapLoader",sass:"sassLoader",less:"lessLoader"},plugin:{bundleAnalyzer:"bundleAnalyzerPlugin",define:"definePlugin",copy:"copyRspackPlugin",progress:"progressPlugin",html:{prefix:"html-plugin-"},rsdoctor:"rsdoctor"},minimizer:{minJs:"minJs",minCss:"minCss"}}});var $t,w,jt,Dt,De,r,v=m(()=>{"use strict";n();$t=l(require("fs/promises"),1),w=l(require("path"),1),jt=l(require("util"),1);S();C();ft();Ot();Dt=l(require("webpack-chain"),1);kt();V();De=class{empPkg={dependencies:{},devDependencies:{},version:"2.0.0",name:""};pkg={dependencies:{},devDependencies:{},version:"0.0.0",name:""};root=process.cwd();empRoot=w.default.resolve(__dirname,__filename).replace(`${w.default.sep}dist${w.default.sep}index.js`,"");empSource=w.default.resolve(this.empRoot,"dist");resolve=e=>w.default.isAbsolute(e)?e:w.default.resolve(this.root,e);empResolve=e=>w.default.resolve(this.empRoot,e);appSrc="";outDir="";publicDir="";resource={dir:"",key:"",cert:""};chainName=Pt;cacheDir="";mode="development";cliMode="dev";isDev=!0;cliOptions;chain;rsConfig;empOptions={};empConfig;vCompare=le;deepAssign=y;getLanIp=M;entries={};debug;async setup(e,t){p.time("[store]Setup"),await this.initVars(e,t),this.empConfig=mt,await this.empConfig.setup(this),this.debug={...this.empConfig.debug},this.initPaths(),this.chain=new Dt.default,await Et.setup(this),this.setLogger(),this.toConfig(),this.logConfig(),p.timeEnd("[store]Setup")}async initVars(e,t){this.cliOptions=t||{},this.cliMode="prod",this.mode=e==="dev"?"development":"production",this.isDev=this.mode==="development",process.env.NODE_ENV=e==="dev"?"development":"production";let s=require(this.empResolve("package.json")),o=require(this.resolve("package.json"));this.empPkg={...this.empPkg,...s},this.pkg={...this.pkg,...o},this.resource.dir=w.default.join(this.empRoot,"resource"),this.resource.cert=w.default.join(this.resource.dir,"emp.cert"),this.resource.key=w.default.join(this.resource.dir,"emp.key")}initPaths(){this.appSrc=this.resolve(this.empConfig.appSrc),this.outDir=this.resolve(this.empConfig.build.outDir),this.publicDir=this.resolve(this.empConfig.build.publicDir),this.cacheDir=this.resolve(this.empConfig.cacheDir)}setLogger(){let e=this.cliMode==="dev"?"debug":"info";this.debug.loggerLevel&&(e=this.debug.loggerLevel),p.setup({fullName:`EMP\u26A1${this.empPkg.version}${this.cliMode==="dev"?".DEV":""}`,brandName:"EMP",logLevel:e})}merge(e){this.chain.merge(e)}toConfig(){this.rsConfig=this.chain.toConfig()}logConfig(){if(this.debug.showRsconfig)if(typeof this.debug.showRsconfig=="string"){let e=w.default.join(this.root,this.debug.showRsconfig);$t.default.writeFile(e,JSON.stringify(this.rsConfig,null,2))}else{this.debug.clearLog=!1;let e={colors:!0,depth:null},t=typeof this.debug.showRsconfig=="object"?y(e,this.debug.showRsconfig):e;console.log(p.link("[Compile Config]")),console.log(jt.default.inspect(this.rsConfig,t))}}get browserslistOptions(){return{default:["chrome >= 87","edge >= 88","firefox >= 78","safari >= 14"],h5:["iOS >= 9","Android >= 4.4","last 2 versions","> 0.2%","not dead"],node:["node >= 16"]}}get uniqueName(){return this.pkg.name.replaceAll("/","_").replaceAll("@","_").replaceAll("-","_")}injectTags(e=[],t="",s=""){this.chain.plugin(`${I}-${t}`).use(I,[e,t,s])}},r=new De});function Rs(i,e){let t=[i,e],s=["File","Size","Gzipped"].reduce((o,a,f)=>{let g=t[f],O=a;return g&&(O=a.length<g?a+" ".repeat(g-a.length):a),`${o+O} `}," ");console.log(D.bold(s))}async function Lt(i){let e=i.toJson({all:!1,assets:!0,timings:!0}),s=e.assets.filter(u=>js(u.name)).map(Ts);s.sort((u,F)=>u.size-F.size);let o=Math.max(...s.map(u=>u.sizeLabel.length)),a=Math.max(...s.map(u=>(u.folder+P.default.sep+u.name).length));Rs(a,o);let f=0,g=0;s.forEach(u=>{let{sizeLabel:F}=u,{name:Zt,folder:es,gzipSizeLabel:ts}=u,ze=(es+P.default.sep+Zt).length,Ge=F.length;if(f+=u.size,g+=u.gzippedSize,Ge<o){let se=" ".repeat(o-Ge);F+=se}let Ie=T(u.folder+P.default.sep)+Ls(u.name);if(ze<a){let se=" ".repeat(a-ze);Ie+=se}p.info(` ${Ie} ${T(F)} ${ts}`)});let O=`${D.bold("Total size:")} ${Q(f)}`,N=`${D.bold("Gzipped size:")} ${Q(g)}`;p.info(`
12
12
  ${O}
13
- ${A}
13
+ ${N}
14
14
  `),p.info(`${x("\u2713")} Ready in ${H(Number(e.time))}
15
- `)}function X(i=0){p.info(`${x("\u2713")} Ready in ${H(Number(i))}`)}var Rt,P,Lt,Ps,ks,$s,js,Ds,Ts,V,Ls,Q=f(()=>{"use strict";n();Rt=l(require("fs"),1),P=l(require("path"),1),Lt=require("gzip-size");R();v();S();C();Ps=/\.html$/,ks=/\.(?:js|mjs|cjs|jsx)$/,$s=/\.css$/,js=i=>!/\.map$/.test(i)&&!/\.LICENSE\.txt$/.test(i),Ds=i=>i>300*1e3?te:i>100*1e3?B:se,Ts=i=>{let e=i.name.split("?")[0],t=V(i.size),s=P.default.basename(e),r=P.default.join(P.default.basename(o.empConfig.build.outDir),P.default.dirname(e)),a=Rt.default.readFileSync(P.default.join(o.empConfig.build.outDir,e)),c=a.length,g=(0,Lt.gzipSizeSync)(a),O=Ds(g)(V(g));return{size:c,folder:r,name:s,gzippedSize:g,sizeLabel:t,gzipSizeLabel:O}};V=i=>{let e=i/1e3;return`${e.toFixed(e<1?2:1)} kB`},Ls=i=>ks.test(i)?B(i):$s.test(i)?x(i):Ps.test(i)?D(i):ie(i)});var Mt={};j(Mt,{default:()=>Ns});var At,Ft,De,Ns,zt=f(()=>{"use strict";n();At=require("@rspack/core"),Ft=require("@rspack/dev-server");Q();S();C();G();v();De=class extends E{get rspackDevConfig(){return y(o.rsConfig,{stats:{all:o.empConfig.debug.devShowAllLog,colors:!0,assets:!1,chunks:!1,entrypoints:!1,timings:!1,version:!1,errors:!0,warnings:!0},devServer:{open:!1,setupExitSignals:!0}})}async devServerConfig(){let e=Object.assign({},o.rsConfig.devServer);if(this.isHttps&&(e.https===!0&&delete e.https,!e.server)){let[t,s]=await this.getcert();e.server={type:"https",options:{key:t,cert:s}}}return e}async run(){let e=(0,At.rspack)(this.rspackDevConfig);if(!o.rsConfig.devServer){p.error("devServer is not defined in config");return}let t=await this.devServerConfig(),s=new Ft.RspackDevServer(t,e);this.startOpen(),o.empConfig.lifeCycle.beforeDevServe&&await o.empConfig.lifeCycle.beforeDevServe(),await s.start();let r=a=>{let c=a?.toJson({all:!1,colors:!1,assets:!1,chunks:!1,timings:!0});X(c.time)};o.debug.showPerformance&&e.hooks.afterDone.tap("done",r),s.middleware?.waitUntilValid(a=>{o.debug.showPerformance||r(a),o.empConfig.lifeCycle.afterDevServe&&o.empConfig.lifeCycle.afterDevServe()})}},Ns=new De});var Gt,It,Ut,Bt,K,Ht=f(()=>{"use strict";n();Gt=l(require("https"),1),It=l(require("compression"),1),Ut=l(require("cors"),1),Bt=l(require("express"),1);G();K=class extends E{app;async init(){let e=(0,Bt.default)();e.use((0,It.default)()),e.use((0,Ut.default)()),this.app=e}async server(){if(this.isHttps){let[e,t]=await this.getcert();Gt.default.createServer(typeof this.isHttps!="boolean"?this.isHttps:{key:e,cert:t},this.app).listen(this.sf.port,async()=>{this.startOpen(),await this.onReady()})}else this.app.listen(this.sf.port,async()=>{this.startOpen(),await this.onReady()})}async onReady(){}async middleware(){}async start(){await this.init(),await this.middleware(),await this.server()}}});var Te={};j(Te,{ServeScript:()=>Y,default:()=>As});var Jt,_t,Wt,qt,Y,As,Re=f(()=>{"use strict";n();Jt=l(require("fs"),1),_t=l(require("fs/promises"),1),Wt=l(require("path"),1),qt=l(require("express"),1);Q();S();v();Ht();Y=class extends K{timing=0;async run(){if(this.timing=Date.now(),!Jt.default.existsSync(o.outDir))return p.sysError(`emp serve must be executed after emp build,${o.outDir} not exist!`);o.empConfig.lifeCycle.beforeServe&&await o.empConfig.lifeCycle.beforeServe(),this.start()}async middleware(){let e=o.resolve(o.rsConfig.output?.path);this.app.use(qt.default.static(e));let t=await _t.default.readFile(Wt.default.join(e,"index.html"),"utf8");this.app.get("*",(s,r)=>r.send(t))}async onReady(){X(Date.now()-this.timing),o.empConfig.lifeCycle.afterServe&&await o.empConfig.lifeCycle.afterServe()}},As=new Y});var Xt={};j(Xt,{default:()=>Fs});var Vt,Le,Fs,Qt=f(()=>{"use strict";n();Vt=require("@rspack/core");Q();S();G();v();Le=class extends E{isWatchMode=!1;rspackConfig;isuseServe=!1;isStartServe=!1;watchMode(){this.isWatchMode&&this.rspackConfig.optimization&&(this.rspackConfig.optimization.moduleIds="named",this.rspackConfig.optimization.chunkIds="named",this.rspackConfig.watch=!0)}async startServe(){if(!this.isuseServe||this.isStartServe)return;this.isStartServe=!0;let{default:e}=await Promise.resolve().then(()=>(Re(),Te));await e.setup("serve",o.cliOptions)}async run(){await o.empConfig.lifeCycle.beforeBuild(),this.isWatchMode=!!o.cliOptions.watch,this.isuseServe=!!o.cliOptions.serve,this.rspackConfig=o.rsConfig,this.isWatchMode&&this.watchMode(),(0,Vt.rspack)(this.rspackConfig,async(e,t)=>{if(e!==null){p.error(e.stack||e),e.message&&p.error(e.message);return}if(!t){p.red("Stats is Undefined.");return}t.hasErrors()&&(p.error(t.toString({all:!1,colors:!0,errors:!0})),p.red("Failed to compile."),process.exit(1)),t.hasWarnings()&&(p.yellow("Compiled with warnings."),p.warn(t.toString({all:!1,chunks:!1,assets:!1,colors:!0,errors:!0,warnings:!0}))),await Nt(t),this.startServe(),await o.empConfig.lifeCycle.afterBulid()})}},Fs=new Le});var Us={};j(Us,{defineConfig:()=>Is,dts:()=>Yt,empHelper:()=>ce,rspack:()=>Zt.rspack,runScript:()=>Ne,store:()=>o});module.exports=ps(Us);n();var Zt=require("@rspack/core");n();var Kt=l(require("process"),1),k=require("commander");v();function Ne(){k.program.version(o.empPkg.version,"-v, --version").usage("<command> [options]"),k.program.command("dev").description("Dev \u6A21\u5F0F").option("-e, --env <env>","\u90E8\u7F72\u73AF\u5883 dev\u3001test\u3001prod").option("-rd, --doctor","\u5F00\u542Frsdoctor,\u53EF\u901A\u8FC7debug.rsdoctor\u64CD\u4F5C").option("-h, --hot","\u662F\u5426\u4F7F\u7528\u70ED\u66F4\u65B0 \u9ED8\u8BA4\u542F\u52A8").option("-o, --open","\u662F\u5426\u6253\u5F00\u8C03\u8BD5\u9875\u9762 \u9ED8\u8BA4\u4E0D\u6253\u5F00").option("-t, --ts","\u751F\u6210\u7C7B\u578B\u6587\u4EF6 \u9ED8\u8BA4\u4E3A false").option("-pr, --profile","\u7EDF\u8BA1\u6A21\u5757\u6D88\u8017").option("-cl, --clearLog <clearLog>","\u6E05\u7A7A\u65E5\u5FD7 \u9ED8\u8BA4\u4E3A true").option("-ev, --env-vars <key=value>","\u5B9A\u4E49\u4E00\u4E2A\u73AF\u5883\u53D8\u91CF -ev key=value \u591A\u4E2A\u73AF\u5883\u53D8\u91CF\u91CD\u590D\u8C03\u7528 -ev key=value -ev key=value",(i,e)=>{let[t,s]=i.split("=");return e[t]=s,e},{}).action(async i=>{let{default:e}=await Promise.resolve().then(()=>(zt(),Mt));await e.setup("dev",i)}),k.program.command("build").description("Build \u6A21\u5F0F").option("-e, --env <env>","\u90E8\u7F72\u73AF\u5883 dev\u3001test\u3001prod").option("-rd, --doctor","\u5F00\u542Frsdoctor,\u53EF\u901A\u8FC7debug.rsdoctor\u64CD\u4F5C").option("-a, --analyze","\u751F\u6210\u5206\u6790\u62A5\u544A \u9ED8\u8BA4\u4E3A false").option("-t, --ts","\u751F\u6210\u7C7B\u578B\u6587\u4EF6 \u9ED8\u8BA4\u4E3A false").option("-pr, --profile","\u7EDF\u8BA1\u6A21\u5757\u6D88\u8017").option("-cl, --clearLog <clearLog>","\u6E05\u7A7A\u65E5\u5FD7 \u9ED8\u8BA4\u4E3A true").option("-w, --watch","watch \u6A21\u5F0F").option("-sv, --serve","watch \u6A21\u5F0F\u4E0B\u542F\u52A8serve").option("-ev, --env-vars <key=value>","\u5B9A\u4E49\u4E00\u4E2A\u73AF\u5883\u53D8\u91CF -ev key=value \u591A\u4E2A\u73AF\u5883\u53D8\u91CF\u91CD\u590D\u8C03\u7528 -ev key=value -ev key=value",(i,e)=>{let[t,s]=i.split("=");return e[t]=s,e},{}).action(async i=>{let{default:e}=await Promise.resolve().then(()=>(Qt(),Xt));await e.setup("build",i)}),k.program.command("serve").description("Server \u6A21\u5F0F").option("-cl, --clearLog <clearLog>","\u6E05\u7A7A\u65E5\u5FD7 \u9ED8\u8BA4\u4E3A true").action(async i=>{let{default:e}=await Promise.resolve().then(()=>(Re(),Te));await e.setup("serve",i)}),k.program.command("dts").description("\u62C9\u53D6 remote \u9879\u76EE\u7684 d.ts").option("-p, --typingsPath <typingsPath>","\u4E0B\u8F7D\u76EE\u5F55").option("-e, --env <env>","\u90E8\u7F72\u73AF\u5883 dev\u3001test\u3001prod").action(i=>{}),k.program.command("init").description("\u521D\u59CB\u5316 emp \u9879\u76EE").option("-d, --data [data]","JSON\u6570\u636E http\u5730\u5740 \u6216\u8005 \u6587\u4EF6\u8DEF\u5F84\u76F8\u5BF9\u3001\u7EDD\u5BF9\u8DEF\u5F84").action(i=>{}),k.program.parse(Kt.default.argv)}n();var Ae=l(require("fs/promises"),1),Z=l(require("path"),1);z();v();var Ms=/(?:(?:import|export)\s?(?:type)?\s?(?:(?:\{[^;\n]+\})|(?:[^;\n]+))\s?from\s?['"][^;\n]+['"])|(?:import\(['"][^;\n]+?['"]\))/g,zs=/(?:import|export)\s?(?:type)?\s?\{?.+\}?\s?from\s?['"](.+)['"]/,Gs=/import\(['"]([^;\n]+?)['"]\)/,Fe=class{list=[];outDir=o.resolve("dist");aliasName="@empjs/cli";async setup(e,t){e&&(this.outDir=e),t&&(this.aliasName=t);let s=await this.readDts();await this.writeCode(s)}async readDts(){this.list=await(0,$.glob)([`${o.empConfig.build.outDir}/**/*.d.ts`],{windowsPathsNoEscape:!0});let e=[];this.list.map(s=>{s=o.resolve(s),e.push(this.readFile(s))});let t=await Promise.all(e);return t=t.map(s=>this.replaceAliasPath(s)),t}async readFile(e){let t=await Ae.default.readFile(e,{encoding:"utf-8"});return{src:e,code:t}}replaceAliasPath({src:e,code:t}){t=t.replace(Ms,r=>{let a=r.match(zs);if(a||(a=r.match(Gs)),a&&a[1]){let c=a[1];if(!c.startsWith("."))return r;let g=Z.default.resolve(Z.default.dirname(e),c).replace(this.outDir,this.aliasName);return r.replace(a[1],g)}return r});let s=e.replace(this.outDir,this.aliasName).replace(".d.ts","");return s.endsWith("/index")&&(s=s.replace("/index","")),t=this.warpDeclareModule(s,t),{code:t,src:e,mod:s}}warpDeclareModule(e,t){return`declare module '${e}' {\r
15
+ `)}function K(i=0){p.info(`${x("\u2713")} Ready in ${H(Number(i))}`)}var Tt,P,Rt,Ps,ks,$s,js,Ds,Ts,Q,Ls,Y=m(()=>{"use strict";n();Tt=l(require("fs"),1),P=l(require("path"),1),Rt=require("gzip-size");R();v();S();C();Ps=/\.html$/,ks=/\.(?:js|mjs|cjs|jsx)$/,$s=/\.css$/,js=i=>!/\.map$/.test(i)&&!/\.LICENSE\.txt$/.test(i),Ds=i=>i>300*1e3?ie:i>100*1e3?B:oe,Ts=i=>{let e=i.name.split("?")[0],t=Q(i.size),s=P.default.basename(e),o=P.default.join(P.default.basename(r.empConfig.build.outDir),P.default.dirname(e)),a=Tt.default.readFileSync(P.default.join(r.empConfig.build.outDir,e)),f=a.length,g=(0,Rt.gzipSizeSync)(a),O=Ds(g)(Q(g));return{size:f,folder:o,name:s,gzippedSize:g,sizeLabel:t,gzipSizeLabel:O}};Q=i=>{let e=i/1e3;return`${e.toFixed(e<1?2:1)} kB`},Ls=i=>ks.test(i)?B(i):$s.test(i)?x(i):Ps.test(i)?D(i):re(i)});var Ft={};j(Ft,{default:()=>As});var At,Nt,Te,As,Mt=m(()=>{"use strict";n();At=require("@rspack/core");Y();S();C();G();v();Nt=l(require("webpack-dev-server"),1),Te=class extends E{get rspackDevConfig(){return y(r.rsConfig,{stats:{all:r.empConfig.debug.devShowAllLog,colors:!0,assets:!1,chunks:!1,entrypoints:!1,timings:!1,version:!1,errors:!0,warnings:!0},devServer:{open:!1,setupExitSignals:!0}})}async devServerConfig(){let e=Object.assign({},r.rsConfig.devServer);if(this.isHttps&&(e.https===!0&&delete e.https,!e.server)){let[t,s]=await this.getcert();e.server={type:"https",options:{key:t,cert:s}}}return e}async run(){let e=(0,At.rspack)(this.rspackDevConfig);if(!r.rsConfig.devServer){p.error("devServer is not defined in config");return}let t=await this.devServerConfig(),s=new Nt.default(t,e);this.startOpen(),r.empConfig.lifeCycle.beforeDevServe&&await r.empConfig.lifeCycle.beforeDevServe(),await s.start();let o=a=>{let f=a?.toJson({all:!1,colors:!1,assets:!1,chunks:!1,timings:!0});console.log(`
16
+ `),K(f.time)};r.debug.showPerformance&&e.hooks.afterDone.tap("done",o),s.middleware?.waitUntilValid(a=>{r.debug.showPerformance||o(a),r.empConfig.lifeCycle.afterDevServe&&r.empConfig.lifeCycle.afterDevServe()})}},As=new Te});var zt,Gt,It,Ut,Z,Bt=m(()=>{"use strict";n();zt=l(require("https"),1),Gt=l(require("compression"),1),It=l(require("cors"),1),Ut=l(require("express"),1);G();Z=class extends E{app;async init(){let e=(0,Ut.default)();e.use((0,Gt.default)()),e.use((0,It.default)()),this.app=e}async server(){if(this.isHttps){let[e,t]=await this.getcert();zt.default.createServer(typeof this.isHttps!="boolean"?this.isHttps:{key:e,cert:t},this.app).listen(this.sf.port,async()=>{this.startOpen(),await this.onReady()})}else this.app.listen(this.sf.port,async()=>{this.startOpen(),await this.onReady()})}async onReady(){}async middleware(){}async start(){await this.init(),await this.middleware(),await this.server()}}});var Re={};j(Re,{ServeScript:()=>ee,default:()=>Ns});var Ht,Jt,_t,Wt,ee,Ns,Le=m(()=>{"use strict";n();Ht=l(require("fs"),1),Jt=l(require("fs/promises"),1),_t=l(require("path"),1),Wt=l(require("express"),1);Y();S();v();Bt();ee=class extends Z{timing=0;async run(){if(this.timing=Date.now(),!Ht.default.existsSync(r.outDir))return p.sysError(`emp serve must be executed after emp build,${r.outDir} not exist!`);r.empConfig.lifeCycle.beforeServe&&await r.empConfig.lifeCycle.beforeServe(),this.start()}async middleware(){let e=r.resolve(r.rsConfig.output?.path);this.app.use(Wt.default.static(e));let t=await Jt.default.readFile(_t.default.join(e,"index.html"),"utf8");this.app.get("*",(s,o)=>o.send(t))}async onReady(){K(Date.now()-this.timing),r.empConfig.lifeCycle.afterServe&&await r.empConfig.lifeCycle.afterServe()}},Ns=new ee});var Vt={};j(Vt,{default:()=>Fs});var qt,Ae,Fs,Xt=m(()=>{"use strict";n();qt=require("@rspack/core");Y();S();G();v();Ae=class extends E{isWatchMode=!1;rspackConfig;isuseServe=!1;isStartServe=!1;watchMode(){this.isWatchMode&&this.rspackConfig.optimization&&(this.rspackConfig.optimization.moduleIds="named",this.rspackConfig.optimization.chunkIds="named",this.rspackConfig.watch=!0)}async startServe(){if(!this.isuseServe||this.isStartServe)return;this.isStartServe=!0;let{default:e}=await Promise.resolve().then(()=>(Le(),Re));await e.setup("serve",r.cliOptions)}async run(){await r.empConfig.lifeCycle.beforeBuild(),this.isWatchMode=!!r.cliOptions.watch,this.isuseServe=!!r.cliOptions.serve,this.rspackConfig=r.rsConfig,this.isWatchMode&&this.watchMode(),(0,qt.rspack)(this.rspackConfig,async(e,t)=>{if(console.log(`
17
+ `),r.debug.showScriptDebug&&console.log(t?.toString()),e!==null){p.error(e.stack||e),e.message&&p.error(e.message);return}if(!t){p.red("Stats is Undefined.");return}t.hasErrors()&&(p.error(t.toString({all:!1,colors:!0,errors:!0})),p.red("Failed to compile."),process.exit(1)),t.hasWarnings()&&(p.yellow("Compiled with warnings."),p.warn(t.toString({all:!1,chunks:!1,assets:!1,colors:!0,errors:!0,warnings:!0}))),await Lt(t),this.startServe(),await r.empConfig.lifeCycle.afterBulid()})}},Fs=new Ae});var Us={};j(Us,{defineConfig:()=>Is,dts:()=>Kt,empHelper:()=>fe,rspack:()=>Yt.rspack,runScript:()=>Ne,store:()=>r});module.exports=as(Us);n();var Yt=require("@rspack/core");n();var Qt=l(require("process"),1),k=require("commander");v();function Ne(){k.program.version(r.empPkg.version,"-v, --version").usage("<command> [options]"),k.program.command("dev").description("Dev \u6A21\u5F0F").option("-e, --env <env>","\u90E8\u7F72\u73AF\u5883 dev\u3001test\u3001prod").option("-rd, --doctor","\u5F00\u542Frsdoctor,\u53EF\u901A\u8FC7debug.rsdoctor\u64CD\u4F5C").option("-h, --hot","\u662F\u5426\u4F7F\u7528\u70ED\u66F4\u65B0 \u9ED8\u8BA4\u542F\u52A8").option("-o, --open","\u662F\u5426\u6253\u5F00\u8C03\u8BD5\u9875\u9762 \u9ED8\u8BA4\u4E0D\u6253\u5F00").option("-t, --ts","\u751F\u6210\u7C7B\u578B\u6587\u4EF6 \u9ED8\u8BA4\u4E3A false").option("-pr, --profile","\u7EDF\u8BA1\u6A21\u5757\u6D88\u8017").option("-cl, --clearLog <clearLog>","\u6E05\u7A7A\u65E5\u5FD7 \u9ED8\u8BA4\u4E3A true").option("-ev, --env-vars <key=value>","\u5B9A\u4E49\u4E00\u4E2A\u73AF\u5883\u53D8\u91CF -ev key=value \u591A\u4E2A\u73AF\u5883\u53D8\u91CF\u91CD\u590D\u8C03\u7528 -ev key=value -ev key=value",(i,e)=>{let[t,s]=i.split("=");return e[t]=s,e},{}).action(async i=>{let{default:e}=await Promise.resolve().then(()=>(Mt(),Ft));await e.setup("dev",i)}),k.program.command("build").description("Build \u6A21\u5F0F").option("-e, --env <env>","\u90E8\u7F72\u73AF\u5883 dev\u3001test\u3001prod").option("-rd, --doctor","\u5F00\u542Frsdoctor,\u53EF\u901A\u8FC7debug.rsdoctor\u64CD\u4F5C").option("-a, --analyze","\u751F\u6210\u5206\u6790\u62A5\u544A \u9ED8\u8BA4\u4E3A false").option("-t, --ts","\u751F\u6210\u7C7B\u578B\u6587\u4EF6 \u9ED8\u8BA4\u4E3A false").option("-pr, --profile","\u7EDF\u8BA1\u6A21\u5757\u6D88\u8017").option("-cl, --clearLog <clearLog>","\u6E05\u7A7A\u65E5\u5FD7 \u9ED8\u8BA4\u4E3A true").option("-w, --watch","watch \u6A21\u5F0F").option("-sv, --serve","watch \u6A21\u5F0F\u4E0B\u542F\u52A8serve").option("-ev, --env-vars <key=value>","\u5B9A\u4E49\u4E00\u4E2A\u73AF\u5883\u53D8\u91CF -ev key=value \u591A\u4E2A\u73AF\u5883\u53D8\u91CF\u91CD\u590D\u8C03\u7528 -ev key=value -ev key=value",(i,e)=>{let[t,s]=i.split("=");return e[t]=s,e},{}).action(async i=>{let{default:e}=await Promise.resolve().then(()=>(Xt(),Vt));await e.setup("build",i)}),k.program.command("serve").description("Server \u6A21\u5F0F").option("-cl, --clearLog <clearLog>","\u6E05\u7A7A\u65E5\u5FD7 \u9ED8\u8BA4\u4E3A true").action(async i=>{let{default:e}=await Promise.resolve().then(()=>(Le(),Re));await e.setup("serve",i)}),k.program.command("dts").description("\u62C9\u53D6 remote \u9879\u76EE\u7684 d.ts").option("-p, --typingsPath <typingsPath>","\u4E0B\u8F7D\u76EE\u5F55").option("-e, --env <env>","\u90E8\u7F72\u73AF\u5883 dev\u3001test\u3001prod").action(i=>{}),k.program.command("init").description("\u521D\u59CB\u5316 emp \u9879\u76EE").option("-d, --data [data]","JSON\u6570\u636E http\u5730\u5740 \u6216\u8005 \u6587\u4EF6\u8DEF\u5F84\u76F8\u5BF9\u3001\u7EDD\u5BF9\u8DEF\u5F84").action(i=>{}),k.program.parse(Qt.default.argv)}n();var Fe=l(require("fs/promises"),1),te=l(require("path"),1);z();v();var Ms=/(?:(?:import|export)\s?(?:type)?\s?(?:(?:\{[^;\n]+\})|(?:[^;\n]+))\s?from\s?['"][^;\n]+['"])|(?:import\(['"][^;\n]+?['"]\))/g,zs=/(?:import|export)\s?(?:type)?\s?\{?.+\}?\s?from\s?['"](.+)['"]/,Gs=/import\(['"]([^;\n]+?)['"]\)/,Me=class{list=[];outDir=r.resolve("dist");aliasName="@empjs/cli";async setup(e,t){e&&(this.outDir=e),t&&(this.aliasName=t);let s=await this.readDts();await this.writeCode(s)}async readDts(){this.list=await(0,$.glob)([`${r.empConfig.build.outDir}/**/*.d.ts`],{windowsPathsNoEscape:!0});let e=[];this.list.map(s=>{s=r.resolve(s),e.push(this.readFile(s))});let t=await Promise.all(e);return t=t.map(s=>this.replaceAliasPath(s)),t}async readFile(e){let t=await Fe.default.readFile(e,{encoding:"utf-8"});return{src:e,code:t}}replaceAliasPath({src:e,code:t}){t=t.replace(Ms,o=>{let a=o.match(zs);if(a||(a=o.match(Gs)),a&&a[1]){let f=a[1];if(!f.startsWith("."))return o;let g=te.default.resolve(te.default.dirname(e),f).replace(this.outDir,this.aliasName);return o.replace(a[1],g)}return o});let s=e.replace(this.outDir,this.aliasName).replace(".d.ts","");return s.endsWith("/index")&&(s=s.replace("/index","")),t=this.warpDeclareModule(s,t),{code:t,src:e,mod:s}}warpDeclareModule(e,t){return`declare module '${e}' {\r
16
18
  ${t}}\r
17
- `}async writeCode(e){let t="";e.map(s=>{t+=s.code}),await Ae.default.writeFile(Z.default.join(this.outDir.replace("dist","types"),"type.d.ts"),t)}},Yt=new Fe;v();z();function Is(i){return i}0&&(module.exports={defineConfig,dts,empHelper,rspack,runScript,store});
19
+ `}async writeCode(e){let t="";e.map(s=>{t+=s.code}),await Fe.default.writeFile(te.default.join(this.outDir.replace("dist","types"),"type.d.ts"),t)}},Kt=new Me;v();z();function Is(i){return i}0&&(module.exports={defineConfig,dts,empHelper,rspack,runScript,store});
18
20
  if (module.exports.default) module.exports = module.exports.default;
package/dist/index.d.cts CHANGED
@@ -1,10 +1,12 @@
1
1
  import { InspectOptions } from 'node:util';
2
2
  import { RsdoctorRspackPlugin } from '@rsdoctor/rspack-plugin';
3
3
  import * as _rspack_core from '@rspack/core';
4
- import { Output, Configuration, RspackOptions, Externals, Resolve, DevServer, SwcJsMinimizerRspackPluginOptions, LightningCssMinimizerRspackPluginOptions, HtmlRspackPluginOptions, RuleSetRule } from '@rspack/core';
4
+ import { Output, Configuration, RspackOptions, Externals, Resolve, SwcJsMinimizerRspackPluginOptions, LightningCssMinimizerRspackPluginOptions, HtmlRspackPluginOptions, RuleSetRule } from '@rspack/core';
5
5
  export { rspack } from '@rspack/core';
6
+ import { HtmlTagObject } from 'html-webpack-plugin';
6
7
  import { Options } from 'sass-embedded';
7
8
  import WPChain from 'webpack-chain';
9
+ import { Configuration as Configuration$1 } from 'webpack-dev-server';
8
10
  import * as chalk from 'chalk';
9
11
  import chalk__default from 'chalk';
10
12
  import { glob } from 'glob';
@@ -129,7 +131,7 @@ declare class EmpConfig {
129
131
  setup(store: GlobalStore): Promise<void>;
130
132
  chain(): Promise<void>;
131
133
  plugins(): Promise<void>;
132
- get debug(): DebugType;
134
+ get debug(): Required<DebugType>;
133
135
  get build(): Required<BuildType>;
134
136
  get html(): HtmlType;
135
137
  get entries(): EntriesType;
@@ -298,7 +300,7 @@ declare class GlobalStore {
298
300
  node: string[];
299
301
  };
300
302
  get uniqueName(): string;
301
- injectHeadTags(o: InjectHeadTagsType, name?: string, chunk?: string): void;
303
+ injectTags(o?: InjectTagsType, name?: string, chunk?: string): void;
302
304
  }
303
305
  declare const _default$3: GlobalStore;
304
306
 
@@ -316,6 +318,7 @@ type DebugType = {
316
318
  progress?: boolean;
317
319
  showRsconfig?: boolean | string | InspectOptions;
318
320
  showPerformance?: boolean;
321
+ showScriptDebug?: boolean;
319
322
  rspackCache?: boolean;
320
323
  rsdoctor?: boolean | RsdoctorRspackPluginOptions;
321
324
  newTreeshaking?: boolean;
@@ -326,7 +329,7 @@ type DebugType = {
326
329
  */
327
330
  infrastructureLogging?: Configuration['infrastructureLogging'];
328
331
  };
329
- type ServerType = DevServer & {
332
+ type ServerType = Configuration$1 & {
330
333
  /**
331
334
  * 访问 host
332
335
  * @default '0.0.0.0'
@@ -341,12 +344,45 @@ type ServerType = DevServer & {
341
344
  * 自动打开
342
345
  * @default false
343
346
  */
344
- open?: DevServer['open'];
347
+ open?: Configuration$1['open'];
345
348
  /**
346
349
  * 热重载
347
350
  * @default true
348
351
  */
349
- hot?: DevServer['hot'];
352
+ hot?: Configuration$1['hot'];
353
+ http2?: boolean;
354
+ };
355
+ type PolyfillType = {
356
+ /**
357
+ * 注入兼容代码
358
+ * module federation 入口 建议使用 entry
359
+ * @default false
360
+ */
361
+ mode?: 'entry' | 'usage';
362
+ /**
363
+ * 当 mode=entry时,注入cdn替代 entry chunk
364
+ */
365
+ entryCdn?: string;
366
+ splitChunks?: boolean;
367
+ /**
368
+ * 手动注入兼容代码,避免usage出现分析纰漏问题
369
+ * @default ['es.object.values', 'es.object.entries', 'es.array.flat']
370
+ */
371
+ include?: string[];
372
+ /**
373
+ * 选择core-js的兼容版本有助于切换适当的代码体积
374
+ * @default stable
375
+ */
376
+ coreJsFeatures?: 'full' | 'actual' | 'stable' | 'es';
377
+ /**
378
+ * @swc/helpers 外置
379
+ * @default false
380
+ */
381
+ externalHelpers?: boolean;
382
+ /**
383
+ * 浏览器 兼容版本
384
+ */
385
+ browserslist?: string[];
350
386
  };
351
387
  type BuildType = {
352
388
  /**
@@ -409,26 +445,7 @@ type BuildType = {
409
445
  * module federation 入口 建议使用 entry
410
446
  * @default false
411
447
  */
412
- polyfill?: 'entry' | 'usage' | false;
413
- /**
414
- * 手动注入兼容代码,避免usage出现分析纰漏问题
415
- * @default ['es.object.values', 'es.object.entries', 'es.array.flat']
416
- */
417
- polyfillInclude?: string[];
418
- /**
419
- * 选择core-js的兼容版本有助于切换适当的代码体积
420
- * @default stable
421
- */
422
- coreJsFeatures?: 'full' | 'actual' | 'stable' | 'es';
423
- /**
424
- * @swc/helpers 外置
425
- * @default false
426
- */
427
- externalHelpers?: boolean;
428
- /**
429
- * 浏览器 兼容版本
430
- */
431
- browserslist?: string[];
448
+ polyfill?: PolyfillType;
432
449
  /**
433
450
  * swc 配置
434
451
  */
@@ -458,27 +475,7 @@ interface HtmlType extends HtmlRspackPluginOptions {
458
475
  /**
459
476
  * externals 文件插入到html
460
477
  */
461
- files?: {
462
- /**
463
- * 插入 css
464
- */
465
- css?: string[];
466
- /**
467
- * 插入 js
468
- */
469
- js?: string[];
470
- /**
471
- * 插入 script 脚本
472
- */
473
- script?: string[];
474
- };
475
- /**
476
- * 自定义 头部脚步内容 headTags[] bodyTags[]
477
- */
478
- tags?: {
479
- headTags?: any[];
480
- bodyTags?: any[];
481
- };
478
+ tags?: InjectTagsTypeItem[];
482
479
  templateParameters?: any;
483
480
  }
484
481
  type EntriesType = {
@@ -601,15 +598,10 @@ type EmpOptions = {
601
598
  */
602
599
  ignoreWarnings?: Configuration['ignoreWarnings'];
603
600
  };
604
- /** ---------
605
- * Deprecated
606
- * ----------
607
- */
608
- type InjectHeadTagsType = InjectHeadTagsTypeItem[];
609
- type InjectHeadTagsTypeItem = {
610
- type: 'js' | 'css' | 'script';
611
- value: string;
612
- };
601
+ type InjectTagsType = InjectTagsTypeItem[];
602
+ type InjectTagsTypeItem = {
603
+ pos?: 'head' | 'body';
604
+ } & Partial<HtmlTagObject>;
613
605
 
614
606
  declare function runScript(): void;
615
607
 
package/dist/index.d.ts CHANGED
@@ -1,10 +1,12 @@
1
1
  import { InspectOptions } from 'node:util';
2
2
  import { RsdoctorRspackPlugin } from '@rsdoctor/rspack-plugin';
3
3
  import * as _rspack_core from '@rspack/core';
4
- import { Output, Configuration, RspackOptions, Externals, Resolve, DevServer, SwcJsMinimizerRspackPluginOptions, LightningCssMinimizerRspackPluginOptions, HtmlRspackPluginOptions, RuleSetRule } from '@rspack/core';
4
+ import { Output, Configuration, RspackOptions, Externals, Resolve, SwcJsMinimizerRspackPluginOptions, LightningCssMinimizerRspackPluginOptions, HtmlRspackPluginOptions, RuleSetRule } from '@rspack/core';
5
5
  export { rspack } from '@rspack/core';
6
+ import { HtmlTagObject } from 'html-webpack-plugin';
6
7
  import { Options } from 'sass-embedded';
7
8
  import WPChain from 'webpack-chain';
9
+ import { Configuration as Configuration$1 } from 'webpack-dev-server';
8
10
  import * as chalk from 'chalk';
9
11
  import chalk__default from 'chalk';
10
12
  import { glob } from 'glob';
@@ -129,7 +131,7 @@ declare class EmpConfig {
129
131
  setup(store: GlobalStore): Promise<void>;
130
132
  chain(): Promise<void>;
131
133
  plugins(): Promise<void>;
132
- get debug(): DebugType;
134
+ get debug(): Required<DebugType>;
133
135
  get build(): Required<BuildType>;
134
136
  get html(): HtmlType;
135
137
  get entries(): EntriesType;
@@ -298,7 +300,7 @@ declare class GlobalStore {
298
300
  node: string[];
299
301
  };
300
302
  get uniqueName(): string;
301
- injectHeadTags(o: InjectHeadTagsType, name?: string, chunk?: string): void;
303
+ injectTags(o?: InjectTagsType, name?: string, chunk?: string): void;
302
304
  }
303
305
  declare const _default$3: GlobalStore;
304
306
 
@@ -316,6 +318,7 @@ type DebugType = {
316
318
  progress?: boolean;
317
319
  showRsconfig?: boolean | string | InspectOptions;
318
320
  showPerformance?: boolean;
321
+ showScriptDebug?: boolean;
319
322
  rspackCache?: boolean;
320
323
  rsdoctor?: boolean | RsdoctorRspackPluginOptions;
321
324
  newTreeshaking?: boolean;
@@ -326,7 +329,7 @@ type DebugType = {
326
329
  */
327
330
  infrastructureLogging?: Configuration['infrastructureLogging'];
328
331
  };
329
- type ServerType = DevServer & {
332
+ type ServerType = Configuration$1 & {
330
333
  /**
331
334
  * 访问 host
332
335
  * @default '0.0.0.0'
@@ -341,12 +344,45 @@ type ServerType = DevServer & {
341
344
  * 自动打开
342
345
  * @default false
343
346
  */
344
- open?: DevServer['open'];
347
+ open?: Configuration$1['open'];
345
348
  /**
346
349
  * 热重载
347
350
  * @default true
348
351
  */
349
- hot?: DevServer['hot'];
352
+ hot?: Configuration$1['hot'];
353
+ http2?: boolean;
354
+ };
355
+ type PolyfillType = {
356
+ /**
357
+ * 注入兼容代码
358
+ * module federation 入口 建议使用 entry
359
+ * @default false
360
+ */
361
+ mode?: 'entry' | 'usage';
362
+ /**
363
+ * 当 mode=entry时,注入cdn替代 entry chunk
364
+ */
365
+ entryCdn?: string;
366
+ splitChunks?: boolean;
367
+ /**
368
+ * 手动注入兼容代码,避免usage出现分析纰漏问题
369
+ * @default ['es.object.values', 'es.object.entries', 'es.array.flat']
370
+ */
371
+ include?: string[];
372
+ /**
373
+ * 选择core-js的兼容版本有助于切换适当的代码体积
374
+ * @default stable
375
+ */
376
+ coreJsFeatures?: 'full' | 'actual' | 'stable' | 'es';
377
+ /**
378
+ * @swc/helpers 外置
379
+ * @default false
380
+ */
381
+ externalHelpers?: boolean;
382
+ /**
383
+ * 浏览器 兼容版本
384
+ */
385
+ browserslist?: string[];
350
386
  };
351
387
  type BuildType = {
352
388
  /**
@@ -409,26 +445,7 @@ type BuildType = {
409
445
  * module federation 入口 建议使用 entry
410
446
  * @default false
411
447
  */
412
- polyfill?: 'entry' | 'usage' | false;
413
- /**
414
- * 手动注入兼容代码,避免usage出现分析纰漏问题
415
- * @default ['es.object.values', 'es.object.entries', 'es.array.flat']
416
- */
417
- polyfillInclude?: string[];
418
- /**
419
- * 选择core-js的兼容版本有助于切换适当的代码体积
420
- * @default stable
421
- */
422
- coreJsFeatures?: 'full' | 'actual' | 'stable' | 'es';
423
- /**
424
- * @swc/helpers 外置
425
- * @default false
426
- */
427
- externalHelpers?: boolean;
428
- /**
429
- * 浏览器 兼容版本
430
- */
431
- browserslist?: string[];
448
+ polyfill?: PolyfillType;
432
449
  /**
433
450
  * swc 配置
434
451
  */
@@ -458,27 +475,7 @@ interface HtmlType extends HtmlRspackPluginOptions {
458
475
  /**
459
476
  * externals 文件插入到html
460
477
  */
461
- files?: {
462
- /**
463
- * 插入 css
464
- */
465
- css?: string[];
466
- /**
467
- * 插入 js
468
- */
469
- js?: string[];
470
- /**
471
- * 插入 script 脚本
472
- */
473
- script?: string[];
474
- };
475
- /**
476
- * 自定义 头部脚步内容 headTags[] bodyTags[]
477
- */
478
- tags?: {
479
- headTags?: any[];
480
- bodyTags?: any[];
481
- };
478
+ tags?: InjectTagsTypeItem[];
482
479
  templateParameters?: any;
483
480
  }
484
481
  type EntriesType = {
@@ -601,15 +598,10 @@ type EmpOptions = {
601
598
  */
602
599
  ignoreWarnings?: Configuration['ignoreWarnings'];
603
600
  };
604
- /** ---------
605
- * Deprecated
606
- * ----------
607
- */
608
- type InjectHeadTagsType = InjectHeadTagsTypeItem[];
609
- type InjectHeadTagsTypeItem = {
610
- type: 'js' | 'css' | 'script';
611
- value: string;
612
- };
601
+ type InjectTagsType = InjectTagsTypeItem[];
602
+ type InjectTagsTypeItem = {
603
+ pos?: 'head' | 'body';
604
+ } & Partial<HtmlTagObject>;
613
605
 
614
606
  declare function runScript(): void;
615
607
 
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import {createRequire as __createRequire} from 'module';var require=__createRequire(import.meta.url);
2
- var Ct=Object.defineProperty;var b=(i=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(i,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):i)(function(i){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+i+'" is not supported')});var f=(i,e)=>()=>(i&&(e=i(i=0)),e);var F=(i,e)=>{for(var t in e)Ct(i,t,{get:e[t],enumerable:!0})};import{fileURLToPath as xt}from"url";import St from"path";var Le,Et,c,l,n=f(()=>{"use strict";Le=()=>xt(import.meta.url),Et=()=>St.dirname(Le()),c=Et(),l=Le()});import d from"chalk";var Ot,S,Pt,kt,$t,ee,H,jt,Dt,j,te,Tt,se,D,h,T=f(()=>{"use strict";n();Ot=d.hex("#1abc9c"),S=d.hex("#16a085"),Pt=d.hex("#2ecc71"),kt=d.hex("#27ae60"),$t=d.hex("#e74c3c"),ee=d.hex("#c0392b"),H=d.hex("#f1c40f"),jt=d.hex("#f39c12"),Dt=d.hex("#3498db"),j=d.hex("#2980b9"),te=d.hex("#ecf0f1"),Tt=d.hex("#fd79a8"),se=d.hex("#e84393"),D=d.hex("#7f8c8d"),h={lightGreen:Ot,green:S,lightCyan:Pt,cyan:kt,lightRed:$t,red:ee,yellow:H,orange:jt,lightBlue:Dt,blue:j,white:te,lightMagenta:Tt,magenta:se,gray:D}});var ie,p,E=f(()=>{"use strict";n();T();ie=class{brandName="";fullName="";logLevel="debug";isLogTime=!1;setup({brandName:e,logLevel:t,fullName:s}){this.brandName=` [${e}] `,this.fullName=` ${s} `,this.fullName=h.green.bold(this.fullName),t&&(this.logLevel=t)}time=(...e)=>this.isLogTime&&console.time(...e);timeEnd=(...e)=>this.isLogTime&&console.timeEnd(...e);debug=(...e)=>["debug"].includes(this.logLevel)&&console.log(...e);info=(...e)=>["debug","info"].includes(this.logLevel)&&console.log(...e);warn=(...e)=>["debug","info","warn"].includes(this.logLevel)&&console.warn(...e);error=(...e)=>["debug","info","warn","error"].includes(this.logLevel)&&console.error(...e);blue=e=>{console.log(`${h.lightBlue(this.brandName)}${h.blue(` ${e} `)}
2
+ var xt=Object.defineProperty;var b=(i=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(i,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):i)(function(i){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+i+'" is not supported')});var m=(i,e)=>()=>(i&&(e=i(i=0)),e);var F=(i,e)=>{for(var t in e)xt(i,t,{get:e[t],enumerable:!0})};import{fileURLToPath as St}from"url";import Et from"path";var Ae,Ot,c,l,n=m(()=>{"use strict";Ae=()=>St(import.meta.url),Ot=()=>Et.dirname(Ae()),c=Ot(),l=Ae()});import d from"chalk";var Pt,S,kt,$t,jt,te,U,Dt,Tt,j,se,Rt,ie,D,h,T=m(()=>{"use strict";n();Pt=d.hex("#1abc9c"),S=d.hex("#16a085"),kt=d.hex("#2ecc71"),$t=d.hex("#27ae60"),jt=d.hex("#e74c3c"),te=d.hex("#c0392b"),U=d.hex("#f1c40f"),Dt=d.hex("#f39c12"),Tt=d.hex("#3498db"),j=d.hex("#2980b9"),se=d.hex("#ecf0f1"),Rt=d.hex("#fd79a8"),ie=d.hex("#e84393"),D=d.hex("#7f8c8d"),h={lightGreen:Pt,green:S,lightCyan:kt,cyan:$t,lightRed:jt,red:te,yellow:U,orange:Dt,lightBlue:Tt,blue:j,white:se,lightMagenta:Rt,magenta:ie,gray:D}});var oe,p,E=m(()=>{"use strict";n();T();oe=class{brandName="";fullName="";logLevel="debug";isLogTime=!1;setup({brandName:e,logLevel:t,fullName:s}){this.brandName=` [${e}] `,this.fullName=` ${s} `,this.fullName=h.green.bold(this.fullName),t&&(this.logLevel=t)}time=(...e)=>this.isLogTime&&console.time(...e);timeEnd=(...e)=>this.isLogTime&&console.timeEnd(...e);debug=(...e)=>["debug"].includes(this.logLevel)&&console.log(...e);info=(...e)=>["debug","info"].includes(this.logLevel)&&console.log(...e);warn=(...e)=>["debug","info","warn"].includes(this.logLevel)&&console.warn(...e);error=(...e)=>["debug","info","warn","error"].includes(this.logLevel)&&console.error(...e);blue=e=>{console.log(`${h.lightBlue(this.brandName)}${h.blue(` ${e} `)}
3
3
  `)};cyan=e=>{console.log(`${h.lightCyan(this.brandName)}${h.cyan(` ${e} `)}
4
4
  `)};magenta=e=>{console.log(`${h.lightMagenta(this.brandName)}${h.magenta(` ${e} `)}
5
5
  `)};green=e=>{console.log(`${h.lightGreen(this.brandName)}${h.green(` ${e} `)}
@@ -7,12 +7,14 @@ var Ct=Object.defineProperty;var b=(i=>typeof require<"u"?require:typeof Proxy<"
7
7
  `)};red=e=>{console.log(`${h.lightRed(this.brandName)}${h.red(` ${e} `)}
8
8
  `)};sysError=e=>{console.log(`${h.lightRed(" System Error Tips ")}${h.red(` ${e} `)}
9
9
  `)};link=e=>h.blue(e);title=e=>{console.log(`${this.fullName}${h.yellow.underline(`${e}`)}
10
- `)}},p=new ie});var pe={};F(pe,{clearConsole:()=>oe,deepAssign:()=>y,ensureArray:()=>Ft,getLanIp:()=>M,getPkgVersion:()=>re,importJsVm:()=>ae,jsonFilter:()=>Mt,timeFormat:()=>U,vCompare:()=>ne});import{ip as Rt}from"address";import Lt from"chalk";import{gateway4sync as Nt}from"default-gateway";import At from"fs-extra";function oe(){process.stdout.write(process.platform==="win32"?"\x1B[2J\x1B[0f":"\x1B[2J\x1B[3J\x1B[H")}function y(i,...e){for(let t of e)for(let s in t){let r=t[s],a=i[s];if(Object(r)==r&&Object(a)===a){i[s]=y(a,r);continue}i[s]=t[s]}return i}var M,re,Ft,Mt,ne,U,ae,w=f(()=>{"use strict";n();M=()=>{let{int:i}=Nt();return Rt(i||"")||"127.0.0.1"},re=i=>{try{let{version:e}=At.readJSONSync(i);return e}catch{return}};Ft=i=>Array.isArray(i)?i:[i],Mt=(i={},e=[])=>Object.keys(i).filter(t=>!e.includes(t)).reduce((t,s)=>(t[s]=i[s],t),{}),ne=(i="",e="")=>{let t=i.replace("^","").split("."),s=e.replace("^","").split("."),r=Math.max(t.length,s.length),a=0;for(let m=0;m<r;m++){let g=t.length>m?t[m]:0,P=isNaN(Number(g))?g.charCodeAt():Number(g),N=s.length>m?s[m]:0,u=isNaN(Number(N))?N.charCodeAt():Number(N);if(P<u){a=-1;break}else if(P>u){a=1;break}}return a},U=i=>{i=i/1e3;let e=s=>Lt.bold(s);if(i<1)return`${i*1e3} ms`;if(i<10){let s=i>=.01?2:3;return`${e(i.toFixed(s))} s`}if(i<60)return`${e(i.toFixed(1))} s`;let t=i/60;return`${e(t.toFixed(2))} m`},ae=i=>`data:text/javascript,${i}`});var Ne={};F(Ne,{chalk:()=>zt,color:()=>h,glob:()=>R,logger:()=>p,utils:()=>pe});import zt from"chalk";import{glob as R}from"glob";var z=f(()=>{"use strict";n();T();w();E()});import Gt from"node:fs";import It from"path";import Bt from"jiti";var Ht,Ae,Fe,Ut,Me=f(()=>{"use strict";n();v();E();Ht=["emp-config.ts","emp-config.js","emp.config.ts","emp.config.js","emp-config.mjs","emp-config.cjs","emp-config.mts","emp-config.cts","emp.config.mjs","emp.config.cjs","emp.config.mts","emp.config.cts"],Ae=Bt(l,{esmResolve:!0,requireCache:!1,interopDefault:!0}),Fe=async()=>Ut(),Ut=()=>{p.time("[store]GetEmpConfigPath");let i;for(let e of Ht){let t=It.resolve(o.root,e);if(Gt.existsSync(t)){i=t;break}}return p.timeEnd("[store]GetEmpConfigPath"),i}});import Jt from"net";import _t from"os";async function J(i,e="localhost"){if(i!==Wt&&(i<ze||i>le))throw new Error(`Port number must lie between ${ze} and ${le}`);let t=i,s=qt(),r;e&&!s.has(e)?r=new Set([e]):r=s;let a=new Set(["EADDRINUSE","EACCES"]);for(;t<=le;)try{return await Xt(t,r)}catch(m){if(!a.has(m.code))throw m;t+=1}throw new Error("No available ports found")}var ze,le,Wt,qt,Vt,Xt,ce=f(()=>{"use strict";n();ze=1024,le=65535,Wt=443,qt=()=>{let i=_t.networkInterfaces(),e=new Set([void 0,"0.0.0.0"]);for(let t of Object.values(i))if(t)for(let s of t)e.add(s.address);return e},Vt=(i,e)=>new Promise((t,s)=>{let r=Jt.createServer();r.unref(),r.on("error",s),r.listen(i,e,()=>{let{port:a}=r.address();r.close(()=>{t(a)})})}),Xt=async(i,e)=>{let t=new Set(["EADDRNOTAVAIL","EINVAL"]);for(let s of e)try{await Vt(i,s)}catch(r){if(!t.has(r.code))throw r}return i}});import Ge from"url";import Qt from"chalk";var me,L,fe=f(()=>{"use strict";n();T();w();me=class{imf={protocol:"",port:8e3,pathname:"/"};host="0.0.0.0";urls={lanUrlForConfig:"",lanUrlForTerminal:D("unavailable"),localUrlForTerminal:"",localUrlForBrowser:""};setup(e){e.host&&(this.host=e.host),e.protocol&&(this.imf.protocol=e.protocol),e.pathname&&(this.imf.pathname=e.pathname),e.port&&(this.imf.port=e.port),this.setupUrls()}setupUrls(){let{host:e}=this,t=e==="0.0.0.0"||e==="::",s;if(t){s="localhost";try{this.urls.lanUrlForConfig=this.getLanIp(),this.urls.lanUrlForConfig&&(/^10[.]|^172[.](1[6-9]|2[0-9]|3[0-1])[.]|^192[.]168[.]/.test(this.urls.lanUrlForConfig)?this.urls.lanUrlForTerminal=this.prettyPrintUrl(this.urls.lanUrlForConfig):this.urls.lanUrlForConfig="")}catch{}}else s=e,this.urls.lanUrlForConfig=e,this.urls.lanUrlForTerminal=this.prettyPrintUrl(this.urls.lanUrlForConfig);this.urls.localUrlForTerminal=this.prettyPrintUrl(s),this.urls.localUrlForBrowser=this.formatUrl(s)}getLanIp=M;formatUrl(e){let{protocol:t,port:s,pathname:r}=this.imf;return Ge.format({protocol:t,hostname:e,port:s,pathname:r})}prettyPrintUrl(e){let{protocol:t,port:s,pathname:r}=this.imf;return Ge.format({protocol:t,hostname:e,port:Qt.bold(s),pathname:r})}},L=new me});import{exec as Kt}from"node:child_process";import{promisify as Yt}from"node:util";var Be,Ie,Zt,es,He,Ue=f(()=>{"use strict";n();v();E();Be=Yt(Kt),Ie=["Google Chrome Canary","Google Chrome Dev","Google Chrome Beta","Google Chrome","Microsoft Edge","Brave Browser","Vivaldi","Chromium"],Zt=async()=>{let i=process.env.BROWSER;if(!i||!Ie.includes(i)){let{stdout:e}=await Be("ps cax");i=Ie.find(t=>e.includes(t))}return i},es=async i=>{if(process.platform==="darwin")try{let t=await Zt();if(t){let s=`osascript openChrome.applescript "${encodeURI(i)}" "${t}"`;return await Be(s,{cwd:o.resource.dir}),!0}}catch(t){p.debug(t)}try{let{default:t}=await import("open");return await t(i),!0}catch(t){return p.error("Failed to open start URL."),p.error(t),!1}},He=es});var he,_,ue=f(()=>{"use strict";n();ce();fe();w();v();he=class{isADB=!1;isHttps=!1;get isHttpBase(){let e=o.empOptions.base||"";return e.indexOf("http://")>-1||e.indexOf("https://")>-1}async setup(){if(this.isADB=!!o.empOptions.autoDevBase&&o.mode==="development"&&!this.isHttpBase,!this.isADB)return;let{server:e,https:t}=o.empOptions.server||{};this.isHttps=e==="https"||typeof e=="object"&&e.type==="https"||t===!0;let s=L.getLanIp(),r=this.isHttps?"https":"http",a=o.empOptions.server?.port||8e3;a=await J(a,s),o.empOptions.base=`${r}://${s}:${a}/`,o.empOptions.server=y({port:a,client:{webSocketURL:`${this.isHttps?"wss":"ws"}://${s}:${a}/ws`}},o.empOptions.server)}},_=new he});import Je from"node:fs/promises";var O,G=f(()=>{"use strict";n();T();ce();fe();E();Ue();w();v();ue();O=class{sf={protocol:"http",host:"0.0.0.0",port:8e3,publicPath:"",publicHasHttp:!1,isOpenBrower:!1,url:"",urls:{localUrlForBrowser:"",localUrlForTerminal:"",lanUrlForTerminal:"",lanUrlForConfig:""}};static httpsType="default";async adaptServer(){this.sf.publicPath=o.rsConfig.output?.publicPath==="auto"?"/":o.rsConfig.output?.publicPath||"/",this.sf.isOpenBrower=!!o.empConfig.server.open,this.sf.protocol=this.isHttps?"https":"http",this.sf.host=o.empConfig.server.host?o.empConfig.server.host:this.sf.host,this.sf.port=o.empConfig.server.port,await this.serverPort(),L.setup(this.sf),this.sf.publicPath&&(this.sf.publicPath.indexOf("http://")>-1||this.sf.publicPath.indexOf("https://")>-1)?(this.sf.url=this.sf.publicPath,this.sf.publicHasHttp=!0,this.sf.urls.localUrlForTerminal=L.prettyPrintUrl("localhost")):(this.sf.urls=L.urls,this.sf.url=this.sf.urls.localUrlForBrowser)}startOpen(){let{urls:e}=this.sf;this.sf.publicHasHttp?(p.info(`${S("\u279C")} Local: ${p.link(e.localUrlForTerminal)}`),p.info(`${S("\u279C")} Network: ${p.link(this.sf.publicPath)}`)):(p.info(`${S("\u279C")} Local: ${p.link(e.localUrlForTerminal)}`),p.info(`${S("\u279C")} Network: ${p.link(e.lanUrlForTerminal)}
11
- `)),this.sf.isOpenBrower&&He(this.sf.url)}async setup(e,t){p.time(`[${e}]Setup`),await o.setup(e,t),o.debug.clearLog&&oe(),p.title(`${e}`),await this.adaptServer(),p.time(`[${e}]Run`),await this.run(),p.timeEnd(`[${e}]Run`),this.afterRun(),p.timeEnd(`[${e}]Setup`)}async run(){}afterRun(){process.on("SIGINT",function(){process.exit()})}get isHttps(){let{server:e,https:t,http2:s}=o.empConfig.server||{};return e==="https"||typeof e=="object"&&e.type==="https"||t===!0||s===!0}getcert(){return Promise.all([Je.readFile(o.resource.key),Je.readFile(o.resource.cert)])}async serverPort(){if(_.isADB)return;let{port:e,host:t}=this.sf,s=await J(e,t);s!==e&&(this.sf.port=s,o.rsConfig.devServer?.port&&(o.rsConfig.devServer.port=s))}}});import ts from"html-webpack-plugin";var W,I,ge=f(()=>{"use strict";n();w();v();W=class{constructor(){}getPolyfillEntry(){let e=[`import 'core-js/${o.empConfig.build.coreJsFeatures}'`].join(`
12
- `);return ae(e)}apply(e){let{webpack:t}=e;new t.EntryPlugin(e.context,this.getPolyfillEntry(),{name:void 0}).apply(e)}},I=class{PluginName="HtmlEmpInjectPlugin";chunk="";files=[];constructor(e,t="",s=""){this.PluginName=`${this.PluginName}-${t}`,this.files=e,this.chunk=s}apply(e){e.hooks.compilation.tap(this.PluginName,t=>{let s=this.files;ts.getHooks(t).alterAssetTagGroups.tapAsync(this.PluginName,(r,a)=>{if(this.chunk&&!r.plugin.userOptions.chunks?.includes(this.chunk))return a(null,r);s.map(m=>{switch(m.type){case"js":r.headTags.push({tagName:"script",attributes:{src:m.value},voidTag:!1,meta:{plugin:void 0}});break;case"css":r.headTags.push({tagName:"link",attributes:{rel:"stylesheet",href:m.value},voidTag:!1,meta:{plugin:void 0}});break;case"script":r.headTags.push({tagName:"script",attributes:{},innerHTML:m.value,voidTag:!1,meta:{plugin:void 0}});break}}),a(null,r)})})}}});var q,_e=f(()=>{"use strict";n();v();ue();ge();q=class{op={};constructor(e={}){this.op=e}async afterGetEmpOptions(){await _.setup(),this.op.afterGetEmpOptions&&await this.op.afterGetEmpOptions()}async beforePlugin(){o.empConfig.build.polyfill==="entry"&&o.chain.plugin("empPolyfill").use(W),this.op.beforePlugin&&await this.op.beforePlugin()}async afterPlugin(){this.op.afterPlugin&&await this.op.afterPlugin()}async beforeModule(){this.op.beforeModule&&await this.op.beforeModule()}async afterModule(){this.op.afterModule&&await this.op.afterModule()}async beforeEmpPlugin(){this.op.beforeEmpPlugin&&await this.op.beforeEmpPlugin()}async afterEmpPlugin(){this.op.afterEmpPlugin&&await this.op.afterEmpPlugin()}async beforeBuild(){this.op.beforeBuild&&await this.op.beforeBuild()}async afterBulid(){this.op.afterBulid&&await this.op.afterBulid()}async beforeDevServe(){this.op.beforeDevServe&&await this.op.beforeDevServe()}async afterDevServe(){this.op.afterDevServe&&await this.op.afterDevServe()}async beforeServe(){this.op.beforeServe&&await this.op.beforeServe()}async afterServe(){this.op.afterServe&&await this.op.afterServe()}}});import ss from"node:fs";var de,We,qe=f(()=>{"use strict";n();z();Me();w();G();_e();de=class{store;appSrc="src";appEntry="";base="";target=[];assign(e,t){return t=t||{},y(e,t)}isESM=!1;async autoDevSet(){this.store.mode==="development"&&this.store.empOptions.autoDevBase}checkIsESM(e){return["es3","es5"].indexOf(e)===-1}lifeCycle;async setup(e){this.store=e,await this.syncEmpOptions(),this.lifeCycle=new q(this.store.empOptions.lifeCycle),await this.lifeCycle.afterGetEmpOptions(),this.isESM=this.checkIsESM(this.build.target),this.store.empOptions.target?(this.target=this.store.empOptions.target,Array.isArray(this.target)&&!this.target.includes(this.build.target)&&this.target.push(this.build.target)):this.target=["web",this.build.target];let{appSrc:t,base:s,appEntry:r}=this.store.empOptions;t&&(this.appSrc=t),s&&(this.base=s),r&&(this.appEntry=r)}async chain(){this.store.empOptions.chain&&await this.store.empOptions.chain(this.store.chain)}async plugins(){let e=[];this.store.empOptions.plugins&&Array.isArray(this.store.empOptions.plugins)&&this.store.empOptions.plugins.length>0&&(this.store.empOptions.plugins.map(t=>{e.push(t.rsConfig(this.store))}),await Promise.all(e))}get debug(){let e=!1;return this.store.cliOptions.doctor&&(e={supports:{generateTileGraph:!0}}),this.assign({loggerLevel:"info",clearLog:!0,progress:!0,showRsconfig:!1,showPerformance:!1,rspackCache:!0,rsdoctor:e,infrastructureLogging:{appendOnly:!0,level:"warn"},newTreeshaking:this.store.empConfig.isESM,devShowAllLog:!1},this.store.empOptions.debug)}get build(){let e=this.store.empOptions.build?.staticDir?`${this.store.empOptions.build?.staticDir}/`:"";return this.assign({outDir:"dist",staticDir:e,assetsDir:"assets",publicDir:"public",chunkIds:this.store.isDev?"named":"deterministic",moduleIds:this.store.isDev?"named":"deterministic",sourcemap:this.store.isDev,minify:!this.store.isDev,minOptions:{},cssminOptions:{},target:"es5",polyfill:!1,polyfillInclude:[],coreJsFeatures:"stable",externalHelpers:!1,browserslist:this.store.browserslistOptions.default,swcConfig:{},devtool:"source-map"},{...this.store.empOptions.build,staticDir:e})}get html(){let e=this.store.empOptions.html?.template?{}:{charset:{charset:"utf-8"},"http-equiv":{"http-equiv":"X-UA-Compatible",content:"IE=edge"},viewport:{name:"viewport",content:"width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0"},keywords:{keywords:""},description:{description:""}};return this.assign({lang:"zh-CN",title:"EMP",inject:"body",minify:!this.store.isDev,scriptLoading:this.isESM?"module":"defer",meta:e,files:{css:[],js:[]},tags:{headTags:[],bodyTags:[]}},this.store.empOptions.html)}get entries(){return this.store.empOptions.entries?this.store.empOptions.entries:{}}get server(){let e={host:"0.0.0.0",port:8e3,open:process.platform==="darwin",hot:!0,watchFiles:["src/**/*.html"],static:[{directory:this.store.publicDir,watch:this.store.isDev}],allowedHosts:["all"],historyApiFallback:!0,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, PATCH, OPTIONS","Access-Control-Allow-Headers":"X-Requested-With, content-type, Authorization"}};return this.store.empOptions.server?.http2&&(O.httpsType="h2",delete this.store.empOptions.server.http2),this.assign(e,this.store.empOptions.server)}get css(){return this.assign({sass:{mode:"modern",warnRuleAsWarning:!1}},this.store.empOptions.css)}get output(){let e=(this.store.isDev,".[contenthash:8]"),t=this.store.isDev?"":".[contenthash:8]",{assetsDir:s,staticDir:r}=this.store.empConfig.build,a={publicPath:this.store.empConfig.base?this.store.empConfig.base:"auto",crossOriginLoading:"anonymous",filename:`${r}js/[name]${e}.js`,cssFilename:`${r}css/[name]${t}.css`,cssChunkFilename:`${r}css/[name]${t}.css`,assetModuleFilename:`${r}${s}/[name]${e}[ext][query]`,path:this.store.outDir,clean:!0,uniqueName:this.store.uniqueName};return this.assign(a,this.store.empOptions.output)}get define(){let e={mode:this.store.mode,env:this.store.cliOptions.env};return this.store.empOptions.define&&(e={...e,...this.store.empOptions.define}),this.setDefine(e)}setDefine(e){let t=this.store.empOptions.defineFix?this.store.empOptions.defineFix:this.isESM?"esm":"cjs",s={};return Object.keys(e).map(r=>{t==="all"?(s[`import.meta.env.${r}`]=JSON.stringify(e[r]),s[`process.env.${r}`]=JSON.stringify(e[r])):t==="esm"?s[`import.meta.env.${r}`]=JSON.stringify(e[r]):t==="cjs"?s[`process.env.${r}`]=JSON.stringify(e[r]):t==="none"&&(s[`${r}`]=JSON.stringify(e[r]))}),s}get externals(){return this.assign({},this.store.empOptions.externals)}get resolve(){return y({alias:{src:this.store.resolve("src"),"@":this.store.resolve("src")},extensions:["...",".js",".jsx",".mjs",".ts",".tsx",".css",".less",".scss",".sass",".json",".wasm",".vue",".svg",".svga"]},this.store.empOptions.resolve)}async syncEmpOptions(){p.time("[store][empConfig]SyncEmpOptions");let e=await Fe();if(!e||!ss.existsSync(e))return;let t=await Ae(e);typeof t=="function"?this.store.empOptions=await t(this.store):this.store.empOptions=t||{},p.timeEnd("[store][empConfig]SyncEmpOptions")}get moduleTransformRule(){let{moduleTransform:e}=this.store.empOptions,t=this.assign({defaultExclude:!1},e),s={and:[],not:[]};return t.defaultExclude===!0&&s.and.push(/(node_modules|bower_components)/),t?.exclude&&(s.and=s.and.concat(t.exclude)),e?.include&&(s.not=t.include),s}get cacheDir(){return this.store.empOptions.cacheDir?this.store.empOptions.cacheDir:"node_modules/.emp-cache"}get ignoreWarnings(){return this.store.empOptions.ignoreWarnings?this.store.empOptions.ignoreWarnings:[/Conflicting order/,/Failed to parse source map/]}get autoPages(){let e;return this.store.empOptions.autoPages&&(e=typeof this.store.empOptions.autoPages=="boolean"?{}:this.store.empOptions.autoPages,e=this.assign({path:"pages"},e)),e}},We=new de});import is from"fs-extra";var ye,Ve,Xe=f(()=>{"use strict";n();ye=class{store;async setup(e){this.store=e;let t=[this.common(),this.stats(),this.devServer(),this.optimization(),this.checkTsconfig()];await Promise.all(t)}async common(){this.store.merge({node:{global:!0},experiments:{outputModule:this.store.empConfig.isESM,topLevelAwait:!0,css:!0},target:this.store.empConfig.target,infrastructureLogging:this.store.empConfig.debug.infrastructureLogging,context:this.store.root,mode:this.store.mode,cache:this.store.empConfig.debug.rspackCache,devtool:this.store.empConfig.build.sourcemap?this.store.empConfig.build.devtool:!1,output:this.store.empConfig.output,resolve:this.store.empConfig.resolve,externals:this.store.empConfig.externals,ignoreWarnings:this.store.empConfig.ignoreWarnings,watchOptions:{ignored:["**/node_modules/**","**/@mf-types/**"]}})}async checkTsconfig(){let e=this.store.resolve("tsconfig.json");if(await is.exists(e)){let s={tsConfig:e};this.store.merge({resolve:s})}}async stats(){this.store.merge({stats:{colors:!0,all:!1,assets:!1,chunks:!1,timings:!0,version:!0}})}async devServer(){this.store.merge({devServer:this.store.empConfig.server})}async optimization(){let e={moduleIds:this.store.empConfig.build.moduleIds,chunkIds:this.store.empConfig.build.chunkIds,minimize:this.store.empConfig.build.minify,splitChunks:{chunks:"async",cacheGroups:{}}};this.store.empConfig.build.polyfill&&(e.splitChunks.cacheGroups={}),this.store.chain.merge({optimization:e})}},Ve=new ye});var ve,Qe,Ke=f(()=>{"use strict";n();ve=class{store;async setup(e){this.store=e;let t=[this.sass(),this.less(),this.css()];await Promise.all(t)}async sass(){let{rule:e,use:t}=this.store.chainName,s={},{sass:r}=this.store.empConfig.css||{sass:{}};r.mode==="modern"&&(s.implementation=r.implementation?r.implementation:b.resolve("sass-embedded"),s.api=r.api?r.api:"legacy",s.sourceMap=this.store.empConfig.build.sourcemap,r.sassOptions&&(s.sassOptions=r.sassOptions)),typeof r.warnRuleAsWarning<"u"&&(s.warnRuleAsWarning=r.warnRuleAsWarning),typeof r.webpackImporter<"u"&&(s.webpackImporter=r.webpackImporter),this.store.chain.merge({module:{rule:{[e.sass]:{test:/\.(sass|scss)$/,use:{[t.sass]:{loader:b.resolve("sass-loader"),options:s}},type:"css/auto"}}}})}async less(){let{rule:e,use:t}=this.store.chainName,s={loader:b.resolve("less-loader"),options:{lessOptions:{javascriptEnabled:!0}}};this.store.chain.merge({module:{rule:{[e.less]:{test:/\.less$/,use:{[t.less]:s},type:"css/auto"}}}})}async css(){let{rule:e}=this.store.chainName;this.store.chain.merge({module:{rule:{[e.css]:{test:/\.css$/,use:{},type:"css/auto"}}}})}},Qe=new ve});import C from"node:path";import rs from"html-webpack-plugin";var be,Ye,Ze=f(()=>{"use strict";n();z();be=class{store;entriesConfig={};async setup(e){this.store=e,await this.init(),this.toConfig()}setHtmlConfig(e,t){return e.template=this.setTemplate(e.template),e.favicon=this.setFavicion(e.favicon),e.chunks=t,e.filename=`${t[0]}.html`,this.store.empConfig.base&&(e.publicPath=this.store.empConfig.base),e.tags=e.tags||{},e}setChunk(e){return e.replace(C.extname(e),"").replace(`${this.store.empConfig.appSrc}${C.sep}`,"")}setTemplate(e){return e?this.store.resolve(e):this.store.empResolve(C.join("template","index.html"))}setFavicion(e){return e?this.store.resolve(e):this.store.empResolve(C.join("template","favicon.ico"))}setEntryItem(e,t,s){s=s||this.store.resolve(C.join(this.store.empConfig.appSrc,e));let r=this.setChunk(e),a=[s];this.entriesConfig[r]={entry:{[r]:a},html:this.setHtmlConfig(t,[r])},this.store.entries[r]=a}setRspackHtmlPlugin(e,t){this.store.chain.plugin(`${this.store.chainName.plugin.html.prefix}${t}`).use(rs,[e])}setRspackEntry(e){this.store.merge({entry:e})}async init(){this.store.empConfig.autoPages?await this.setAutoPage():(await this.setDefaultEntry(),this.setEntryByConfig())}async setAutoPage(){p.time("setAutoPage");let e=this.store.empConfig.autoPages?.path||"pages",t=C.join(this.store.appSrc,e),s=C.join(t,"**","*.{ts,tsx,jsx,js}"),r=await R([s],{windowsPathsNoEscape:!0});r=r.map(a=>a.replace(`${t}${C.sep}`,"")),r.map(a=>{let m=this.store.empConfig.entries[a]||{};this.setEntryItem(a,{...this.store.empConfig.html,...m},C.join(t,a))}),p.timeEnd("setAutoPage")}async setDefaultEntry(){p.time("[store][empConfig]SetDefaultEntry");let e=C.join(this.store.appSrc,this.store.empConfig.appEntry?this.store.empConfig.appEntry:"index.{ts,tsx,jsx,js}"),t=await R([e],{windowsPathsNoEscape:!0});if(t[0]){let s=C.join(this.store.empConfig.appSrc,Object.keys(this.store.empConfig.entries).length>0&&this.store.empConfig.appEntry?this.store.empConfig.appEntry:"index");this.setEntryItem(s,this.store.empConfig.html,t[0])}p.timeEnd("[store][empConfig]SetDefaultEntry")}setEntryByConfig(){if(Object.keys(this.store.empConfig.entries).length>0)for(let[e,t]of Object.entries(this.store.empConfig.entries))this.setEntryItem(e,{...this.store.empConfig.html,...t})}toConfig(){for(let[e,t]of Object.entries(this.entriesConfig))this.setRspackHtmlPlugin(t.html,e),this.setRspackEntry(t.entry)}},Ye=new be});import et from"node:path";var we,tt,st=f(()=>{"use strict";n();w();we=class{store;swcJsOptions={};swcTsOptions={};coreJs={version:"3",alias:"",path:""};async setup(e){this.store=e,this.swcInitOptions(),await this.run()}async run(){let e=[this.jsDataUrl(),this.files(),this.scripts(),this.rspackGenerator(),this.rspackParser()];await this.store.empConfig.lifeCycle.beforeModule(),await Promise.all(e),await this.store.empConfig.lifeCycle.afterModule()}rspackGenerator(){let e=this.store.isDev?"[path][name]-[local]-[hash:5]":"[local]-[hash:5]";this.store.chain.merge({module:{generator:{css:{localIdentName:e},"css/auto":{localIdentName:e},"css/module":{localIdentName:e}}}})}rspackParser(){this.store.chain.merge({module:{parser:{css:{namedExports:!1},"css/auto":{namedExports:!1},"css/module":{namedExports:!1}}}})}get isPolyfill(){return this.store.empConfig.build.polyfill}swcParser(e){switch(e){case"js":return{syntax:"ecmascript",jsx:!0,decorators:!0,decoratorsBeforeExport:!1};case"ts":return{syntax:"typescript",decorators:!0,tsx:!0,dynamicImport:!0}}}swcJsc(e){let{target:t,externalHelpers:s}=this.store.empConfig.build;return{parser:this.swcParser(e),transform:{},target:t,externalHelpers:s,preserveAllComments:!0}}get swcCoreVersion(){let[e,t]=this.coreJs.version.split(".");return`${e}.${t}`}swcOptions(e){let t={jsc:y(this.swcJsc(e),{...this.store.empConfig.build.swcConfig}),isModule:"unknown"};return this.isPolyfill&&(delete t.jsc.target,t.env={coreJs:this.swcCoreVersion,targets:this.store.empConfig.build.browserslist},this.store.empConfig.isESM||(t.env.mode=this.store.empConfig.build.polyfill),this.store.empConfig.build.polyfill==="usage"&&(t.env.shippedProposals=!0,t.env.include=this.store.empConfig.build.polyfillInclude)),t}swcInitOptions(){let{externalHelpers:e}=this.store.empConfig.build;e&&this.store.chain.resolve.alias.set("@swc/helpers",et.dirname(b.resolve("@swc/helpers/package.json"))),this.coreJs.path=b.resolve("core-js/package.json");let t=re(this.coreJs.path);t&&(this.coreJs.version=t),this.coreJs.alias=et.dirname(this.coreJs.path),this.store.empConfig.build.polyfill&&(this.store.chain.resolve.alias.set("core-js",this.coreJs.alias),this.store.chain.module.rule("javascript").exclude.add(/core-js/),this.store.chain.module.rule("typescript").exclude.add(/core-js/)),this.swcTsOptions=this.swcOptions("ts"),this.swcJsOptions=this.swcOptions("js")}jsDataUrl(){this.store.chain.module.rule("jsDataUrl").merge({mimetype:{or:["text/javascript","application/javascript"]}}).resolve.set("fullySpecified",!1).end().use("swcJsParser").loader("builtin:swc-loader").options(this.swcJsOptions)}async scripts(){let e=[],{rule:t,use:s}=this.store.chainName;this.store.chain.merge({module:{parser:{javascript:{exportsPresence:"error",importExportsPresence:"error"}},rule:{[t.mjs]:{test:/\.m?js/,resolve:{fullySpecified:!1}},[t.typescript]:{test:/\.(ts|tsx)$/,exclude:e,use:{[s.swc]:{loader:"builtin:swc-loader",options:this.swcTsOptions}}},[t.javascript]:{test:/\.((m|c)?js|jsx)$/,exclude:e,use:{[s.swc]:{loader:"builtin:swc-loader",options:this.swcJsOptions}}},[t.sourceMap]:{test:/\.[tj]sx?$/,enforce:"pre",use:{[s.sourceMap]:{loader:b.resolve("source-map-loader")}}}}}})}async files(){let{rule:e}=this.store.chainName;this.store.chain.merge({module:{rule:{[e.svg]:{test:/\.svg$/,type:"asset/resource"}}}}),this.store.chain.merge({module:{rule:{[e.inline]:{resourceQuery:/inline/,type:"asset/inline"}}}}),this.store.chain.merge({module:{rule:{[e.image]:{test:/\.(png|jpe?g|gif|webp|ico)$/i,type:"asset/resource"},[e.font]:{test:/\.(|otf|ttf|eot|woff|woff2)$/i,type:"asset/resource"},[e.svga]:{test:/\.(svga)$/i,type:"asset/resource"}}}})}},tt=new we});import it from"fs";import B from"@rspack/core";var Ce,rt,ot=f(()=>{"use strict";n();Ce=class{store;async setup(e){this.store=e;let t=[this.define(),this.anylayze(),this.progress(),this.copy(),this.minify(),this.redoctor()];await this.store.empConfig.lifeCycle.beforePlugin(),await Promise.all(t),await this.store.empConfig.lifeCycle.afterPlugin()}async anylayze(){if(!this.store.cliOptions.analyze)return;let{default:{BundleAnalyzerPlugin:e}}=await import("webpack-bundle-analyzer");this.store.chain.plugin(this.store.chainName.plugin.bundleAnalyzer).use(e,[{analyzerPort:this.store.empConfig.server.port,defaultSizes:"gzip",analyzerHost:this.store.getLanIp()||"127.0.0.1"}])}async define(){this.store.chain.plugin(this.store.chainName.plugin.define).use(B.DefinePlugin,[this.store.empConfig.define])}async copy(){let e=this.store.resolve("public");it.existsSync(e)&&it.readdirSync(e).length>0&&this.store.chain.plugin(this.store.chainName.plugin.copy).use(B.CopyRspackPlugin,[{patterns:[{from:e,to:this.store.resolve(this.store.empConfig.build.outDir),noErrorOnMissing:!0,globOptions:{ignore:["**/.DS_Store"]}}]}])}async progress(){this.store.empConfig.debug.progress&&this.store.chain.plugin(this.store.chainName.plugin.progress).use(B.ProgressPlugin,[{prefix:"EMP"}])}minify(){this.store.chain.optimization.minimize(this.store.mode==="production"),this.store.chain.optimization.minimizer(this.store.chainName.minimizer.minJs).use(B.SwcJsMinimizerRspackPlugin,[this.store.empConfig.build.minOptions]),this.store.chain.optimization.minimizer(this.store.chainName.minimizer.minCss).use(B.LightningCssMinimizerRspackPlugin,[this.store.empConfig.build.cssminOptions])}redoctor(){if(!this.store.empConfig.debug.rsdoctor)return;let{RsdoctorRspackPlugin:e}=b("@rsdoctor/rspack-plugin"),t={};typeof this.store.empConfig.debug.rsdoctor=="object"&&(t=this.store.empConfig.debug.rsdoctor),this.store.chain.plugin(this.store.chainName.plugin.rsdoctor).use(e,[t])}},rt=new Ce});var xe,nt,at=f(()=>{"use strict";n();Xe();Ke();Ze();st();ot();xe=class{store;async setup(e){this.store=e;let t=[Ve.setup(this.store),tt.setup(this.store),rt.setup(this.store),Ye.setup(this.store),Qe.setup(this.store)];await Promise.all(t),await this.store.empConfig.lifeCycle.beforeEmpPlugin(),await this.store.empConfig.plugins(),await this.store.empConfig.lifeCycle.afterEmpPlugin(),await this.store.empConfig.chain()}},nt=new xe});var pt,lt=f(()=>{"use strict";n();pt={rule:{mjs:"mjs",typescript:"typescript",javascript:"javascript",sourceMap:"sourceMapLoader",inline:"inline",svg:"svg",image:"image",font:"fonts",svga:"svga",sass:"sass",less:"less",css:"css"},use:{swc:"swc",sourceMap:"sourceMapLoader",sass:"sassLoader",less:"lessLoader"},plugin:{bundleAnalyzer:"bundleAnalyzerPlugin",define:"definePlugin",copy:"copyRspackPlugin",progress:"progressPlugin",html:{prefix:"html-plugin-"},rsdoctor:"rsdoctor"},minimizer:{minJs:"minJs",minCss:"minCss"}}});import os from"node:fs/promises";import x from"node:path";import ns from"node:util";import as from"webpack-chain";var Se,o,v=f(()=>{"use strict";n();E();w();qe();at();lt();ge();Se=class{empPkg={dependencies:{},devDependencies:{},version:"2.0.0",name:""};pkg={dependencies:{},devDependencies:{},version:"0.0.0",name:""};root=process.cwd();empRoot=x.resolve(c,l).replace(`${x.sep}dist${x.sep}index.js`,"");empSource=x.resolve(this.empRoot,"dist");resolve=e=>x.isAbsolute(e)?e:x.resolve(this.root,e);empResolve=e=>x.resolve(this.empRoot,e);appSrc="";outDir="";publicDir="";resource={dir:"",key:"",cert:""};chainName=pt;cacheDir="";mode="development";cliMode="dev";isDev=!0;cliOptions;chain;rsConfig;empOptions={};empConfig;vCompare=ne;deepAssign=y;getLanIp=M;entries={};debug;async setup(e,t){p.time("[store]Setup"),await this.initVars(e,t),this.empConfig=We,await this.empConfig.setup(this),this.debug={...this.empConfig.debug},this.initPaths(),this.chain=new as,await nt.setup(this),this.setLogger(),this.toConfig(),this.logConfig(),p.timeEnd("[store]Setup")}async initVars(e,t){this.cliOptions=t||{},this.cliMode="prod",this.mode=e==="dev"?"development":"production",this.isDev=this.mode==="development",process.env.NODE_ENV=e==="dev"?"development":"production";let s=b(this.empResolve("package.json")),r=b(this.resolve("package.json"));this.empPkg={...this.empPkg,...s},this.pkg={...this.pkg,...r},this.resource.dir=x.join(this.empRoot,"resource"),this.resource.cert=x.join(this.resource.dir,"emp.cert"),this.resource.key=x.join(this.resource.dir,"emp.key")}initPaths(){this.appSrc=this.resolve(this.empConfig.appSrc),this.outDir=this.resolve(this.empConfig.build.outDir),this.publicDir=this.resolve(this.empConfig.build.publicDir),this.cacheDir=this.resolve(this.empConfig.cacheDir)}setLogger(){let e=this.cliMode==="dev"?"debug":"info";this.debug.loggerLevel&&(e=this.debug.loggerLevel),p.setup({fullName:`EMP\u26A1${this.empPkg.version}${this.cliMode==="dev"?".DEV":""}`,brandName:"EMP",logLevel:e})}merge(e){this.chain.merge(e)}toConfig(){this.rsConfig=this.chain.toConfig()}logConfig(){if(this.debug.showRsconfig)if(typeof this.debug.showRsconfig=="string"){let e=x.join(this.root,this.debug.showRsconfig);os.writeFile(e,JSON.stringify(this.rsConfig,null,2))}else{this.debug.clearLog=!1;let e={colors:!0,depth:null},t=typeof this.debug.showRsconfig=="object"?y(e,this.debug.showRsconfig):e;console.log(p.link("[Compile Config]")),console.log(ns.inspect(this.rsConfig,t))}}get browserslistOptions(){return{default:["chrome >= 87","edge >= 88","firefox >= 78","safari >= 14"],h5:["iOS >= 9","Android >= 4.4","last 2 versions","> 0.2%","not dead"],node:["node >= 16"]}}get uniqueName(){return this.pkg.name.replaceAll("/","_").replaceAll("@","_").replaceAll("-","_")}injectHeadTags(e,t="",s=""){this.chain.plugin(`${I}-${t}`).use(I,[e,t,s])}},o=new Se});import ps from"node:fs";import k from"node:path";import{gzipSizeSync as ls}from"gzip-size";function ds(i,e){let t=[i,e],s=["File","Size","Gzipped"].reduce((r,a,m)=>{let g=t[m],P=a;return g&&(P=a.length<g?a+" ".repeat(g-a.length):a),`${r+P} `}," ");console.log(j.bold(s))}async function ct(i){let e=i.toJson({all:!1,assets:!0,timings:!0}),s=e.assets.filter(u=>hs(u.name)).map(gs);s.sort((u,A)=>u.size-A.size);let r=Math.max(...s.map(u=>u.sizeLabel.length)),a=Math.max(...s.map(u=>(u.folder+k.sep+u.name).length));ds(a,r);let m=0,g=0;s.forEach(u=>{let{sizeLabel:A}=u,{name:vt,folder:bt,gzipSizeLabel:wt}=u,De=(bt+k.sep+vt).length,Te=A.length;if(m+=u.size,g+=u.gzippedSize,Te<r){let Z=" ".repeat(r-Te);A+=Z}let Re=D(u.folder+k.sep)+ys(u.name);if(De<a){let Z=" ".repeat(a-De);Re+=Z}p.info(` ${Re} ${D(A)} ${wt}`)});let P=`${j.bold("Total size:")} ${V(m)}`,N=`${j.bold("Gzipped size:")} ${V(g)}`;p.info(`
10
+ `)}},p=new oe});var le={};F(le,{clearConsole:()=>ne,deepAssign:()=>y,ensureArray:()=>Mt,getLanIp:()=>M,getPkgVersion:()=>re,importJsVm:()=>pe,jsonFilter:()=>zt,timeFormat:()=>H,vCompare:()=>ae});import{ip as Lt}from"address";import At from"chalk";import{gateway4sync as Nt}from"default-gateway";import Ft from"fs-extra";function ne(){process.stdout.write(process.platform==="win32"?"\x1B[2J\x1B[0f":"\x1B[2J\x1B[3J\x1B[H")}function y(i,...e){for(let t of e)for(let s in t){let o=t[s],a=i[s];if(Object(o)==o&&Object(a)===a){i[s]=y(a,o);continue}i[s]=t[s]}return i}var M,re,Mt,zt,ae,H,pe,w=m(()=>{"use strict";n();M=()=>{let{int:i}=Nt();return Lt(i||"")||"127.0.0.1"},re=i=>{try{let{version:e}=Ft.readJSONSync(i);return e}catch{return}};Mt=i=>Array.isArray(i)?i:[i],zt=(i={},e=[])=>Object.keys(i).filter(t=>!e.includes(t)).reduce((t,s)=>(t[s]=i[s],t),{}),ae=(i="",e="")=>{let t=i.replace("^","").split("."),s=e.replace("^","").split("."),o=Math.max(t.length,s.length),a=0;for(let f=0;f<o;f++){let g=t.length>f?t[f]:0,P=isNaN(Number(g))?g.charCodeAt():Number(g),A=s.length>f?s[f]:0,u=isNaN(Number(A))?A.charCodeAt():Number(A);if(P<u){a=-1;break}else if(P>u){a=1;break}}return a},H=i=>{i=i/1e3;let e=s=>At.bold(s);if(i<1)return`${i*1e3} ms`;if(i<10){let s=i>=.01?2:3;return`${e(i.toFixed(s))} s`}if(i<60)return`${e(i.toFixed(1))} s`;let t=i/60;return`${e(t.toFixed(2))} m`},pe=i=>`data:text/javascript,${i}`});var Ne={};F(Ne,{chalk:()=>Gt,color:()=>h,glob:()=>R,logger:()=>p,utils:()=>le});import Gt from"chalk";import{glob as R}from"glob";var z=m(()=>{"use strict";n();T();w();E()});import It from"node:fs";import Bt from"path";import{createJiti as Ut}from"jiti";var Ht,Fe,Me,Jt,ze=m(()=>{"use strict";n();v();E();Ht=["emp-config.ts","emp-config.js","emp.config.ts","emp.config.js","emp-config.mjs","emp-config.cjs","emp-config.mts","emp-config.cts","emp.config.mjs","emp.config.cjs","emp.config.mts","emp.config.cts"],Fe=Ut(l,{interopDefault:!0}),Me=async()=>Jt(),Jt=()=>{p.time("[store]GetEmpConfigPath");let i;for(let e of Ht){let t=Bt.resolve(r.root,e);if(It.existsSync(t)){i=t;break}}return p.timeEnd("[store]GetEmpConfigPath"),i}});import _t from"net";import Wt from"os";async function J(i,e="localhost"){if(i!==qt&&(i<Ge||i>ce))throw new Error(`Port number must lie between ${Ge} and ${ce}`);let t=i,s=Vt(),o;e&&!s.has(e)?o=new Set([e]):o=s;let a=new Set(["EADDRINUSE","EACCES"]);for(;t<=ce;)try{return await Qt(t,o)}catch(f){if(!a.has(f.code))throw f;t+=1}throw new Error("No available ports found")}var Ge,ce,qt,Vt,Xt,Qt,me=m(()=>{"use strict";n();Ge=1024,ce=65535,qt=443,Vt=()=>{let i=Wt.networkInterfaces(),e=new Set([void 0,"0.0.0.0"]);for(let t of Object.values(i))if(t)for(let s of t)e.add(s.address);return e},Xt=(i,e)=>new Promise((t,s)=>{let o=_t.createServer();o.unref(),o.on("error",s),o.listen(i,e,()=>{let{port:a}=o.address();o.close(()=>{t(a)})})}),Qt=async(i,e)=>{let t=new Set(["EADDRNOTAVAIL","EINVAL"]);for(let s of e)try{await Xt(i,s)}catch(o){if(!t.has(o.code))throw o}return i}});import Ie from"url";import Kt from"chalk";var fe,L,he=m(()=>{"use strict";n();T();w();fe=class{imf={protocol:"",port:8e3,pathname:"/"};host="0.0.0.0";urls={lanUrlForConfig:"",lanUrlForTerminal:D("unavailable"),localUrlForTerminal:"",localUrlForBrowser:""};setup(e){e.host&&(this.host=e.host),e.protocol&&(this.imf.protocol=e.protocol),e.pathname&&(this.imf.pathname=e.pathname),e.port&&(this.imf.port=e.port),this.setupUrls()}setupUrls(){let{host:e}=this,t=e==="0.0.0.0"||e==="::",s;if(t){s="localhost";try{this.urls.lanUrlForConfig=this.getLanIp(),this.urls.lanUrlForConfig&&(/^10[.]|^172[.](1[6-9]|2[0-9]|3[0-1])[.]|^192[.]168[.]/.test(this.urls.lanUrlForConfig)?this.urls.lanUrlForTerminal=this.prettyPrintUrl(this.urls.lanUrlForConfig):this.urls.lanUrlForConfig="")}catch{}}else s=e,this.urls.lanUrlForConfig=e,this.urls.lanUrlForTerminal=this.prettyPrintUrl(this.urls.lanUrlForConfig);this.urls.localUrlForTerminal=this.prettyPrintUrl(s),this.urls.localUrlForBrowser=this.formatUrl(s)}getLanIp=M;formatUrl(e){let{protocol:t,port:s,pathname:o}=this.imf;return Ie.format({protocol:t,hostname:e,port:s,pathname:o})}prettyPrintUrl(e){let{protocol:t,port:s,pathname:o}=this.imf;return Ie.format({protocol:t,hostname:e,port:Kt.bold(s),pathname:o})}},L=new fe});import{exec as Yt}from"node:child_process";import{promisify as Zt}from"node:util";var Ue,Be,es,ts,He,Je=m(()=>{"use strict";n();v();E();Ue=Zt(Yt),Be=["Google Chrome Canary","Google Chrome Dev","Google Chrome Beta","Google Chrome","Microsoft Edge","Brave Browser","Vivaldi","Chromium"],es=async()=>{let i=process.env.BROWSER;if(!i||!Be.includes(i)){let{stdout:e}=await Ue("ps cax");i=Be.find(t=>e.includes(t))}return i},ts=async i=>{if(process.platform==="darwin")try{let t=await es();if(t){let s=`osascript openChrome.applescript "${encodeURI(i)}" "${t}"`;return await Ue(s,{cwd:r.resource.dir}),!0}}catch(t){p.debug(t)}try{let{default:t}=await import("open");return await t(i),!0}catch(t){return p.error("Failed to open start URL."),p.error(t),!1}},He=ts});var ue,_,ge=m(()=>{"use strict";n();me();he();w();v();ue=class{isADB=!1;isHttps=!1;get isHttpBase(){let e=r.empOptions.base||"";return e.indexOf("http://")>-1||e.indexOf("https://")>-1}async setup(){if(this.isADB=!!r.empOptions.autoDevBase&&r.mode==="development"&&!this.isHttpBase,!this.isADB)return;let{server:e,https:t}=r.empOptions.server||{};this.isHttps=e==="https"||typeof e=="object"&&e.type==="https"||t===!0;let s=L.getLanIp(),o=this.isHttps?"https":"http",a=r.empOptions.server?.port||8e3;a=await J(a,s),r.empOptions.base=`${o}://${s}:${a}/`,r.empOptions.server=y({port:a,client:{webSocketURL:`${this.isHttps?"wss":"ws"}://${s}:${a}/ws`}},r.empOptions.server)}},_=new ue});import _e from"node:fs/promises";var O,G=m(()=>{"use strict";n();T();me();he();E();Je();w();v();ge();O=class{sf={protocol:"http",host:"0.0.0.0",port:8e3,publicPath:"",publicHasHttp:!1,isOpenBrower:!1,url:"",urls:{localUrlForBrowser:"",localUrlForTerminal:"",lanUrlForTerminal:"",lanUrlForConfig:""}};static httpsType="default";async adaptServer(){this.sf.publicPath=r.rsConfig.output?.publicPath==="auto"?"/":r.rsConfig.output?.publicPath||"/",this.sf.isOpenBrower=!!r.empConfig.server.open,this.sf.protocol=this.isHttps?"https":"http",this.sf.host=r.empConfig.server.host?r.empConfig.server.host:this.sf.host,this.sf.port=r.empConfig.server.port,await this.serverPort(),L.setup(this.sf),this.sf.publicPath&&(this.sf.publicPath.indexOf("http://")>-1||this.sf.publicPath.indexOf("https://")>-1)?(this.sf.url=this.sf.publicPath,this.sf.publicHasHttp=!0,this.sf.urls.localUrlForTerminal=L.prettyPrintUrl("localhost")):(this.sf.urls=L.urls,this.sf.url=this.sf.urls.localUrlForBrowser)}startOpen(){let{urls:e}=this.sf;this.sf.publicHasHttp?(p.info(`${S("\u279C")} Local: ${p.link(e.localUrlForTerminal)}`),p.info(`${S("\u279C")} Network: ${p.link(this.sf.publicPath)}`)):(p.info(`${S("\u279C")} Local: ${p.link(e.localUrlForTerminal)}`),p.info(`${S("\u279C")} Network: ${p.link(e.lanUrlForTerminal)}
11
+ `)),this.sf.isOpenBrower&&He(this.sf.url)}async setup(e,t){p.time(`[${e}]Setup`),await r.setup(e,t),r.debug.clearLog&&ne(),p.title(`${e}`),await this.adaptServer(),p.time(`[${e}]Run`),await this.run(),p.timeEnd(`[${e}]Run`),this.afterRun(),p.timeEnd(`[${e}]Setup`)}async run(){}afterRun(){process.on("SIGINT",function(){process.exit()})}get isHttps(){let{server:e,https:t,http2:s}=r.empConfig.server||{};return e==="https"||typeof e=="object"&&e.type==="https"||t===!0||s===!0}getcert(){return Promise.all([_e.readFile(r.resource.key),_e.readFile(r.resource.cert)])}async serverPort(){if(_.isADB)return;let{port:e,host:t}=this.sf,s=await J(e,t);s!==e&&(this.sf.port=s,r.rsConfig.devServer?.port&&(r.rsConfig.devServer.port=s))}}});import de from"html-webpack-plugin";function ss(){let i=[`import 'core-js/${r.empConfig.build.polyfill.coreJsFeatures}'`].join(`
12
+ `);return pe(i)}var W,I,q=m(()=>{"use strict";n();w();v();W=class{constructor(){}apply(e){let{webpack:t}=e;r.empConfig.build.polyfill.entryCdn||new t.EntryPlugin(e.context,ss(),{name:void 0}).apply(e)}},I=class{PluginName="HtmlEmpInjectPlugin";chunk="";files=[];constructor(e,t="",s=""){this.PluginName=`${this.PluginName}-${t}`,this.files=e,this.chunk=s}apply(e){e.hooks.compilation.tap(this.PluginName,t=>{de.getHooks(t).alterAssetTagGroups.tapPromise(this.PluginName,async s=>(this.chunk&&!s.plugin.userOptions.chunks?.includes(this.chunk)||this.files.map(o=>{let{pos:a,...f}=o;(a==="body"?s.bodyTags:s.headTags).push({attributes:{},voidTag:!1,meta:{plugin:void 0},tagName:"script",...f})}),s))})}}});var V,We=m(()=>{"use strict";n();v();ge();q();V=class{op={};constructor(e={}){this.op=e}async afterGetEmpOptions(){await _.setup(),this.op.afterGetEmpOptions&&await this.op.afterGetEmpOptions()}async beforePlugin(){r.empConfig.build.polyfill.mode==="entry"&&r.chain.plugin("empPolyfill").use(W),this.op.beforePlugin&&await this.op.beforePlugin()}async afterPlugin(){this.op.afterPlugin&&await this.op.afterPlugin()}async beforeModule(){this.op.beforeModule&&await this.op.beforeModule()}async afterModule(){this.op.afterModule&&await this.op.afterModule()}async beforeEmpPlugin(){this.op.beforeEmpPlugin&&await this.op.beforeEmpPlugin()}async afterEmpPlugin(){this.op.afterEmpPlugin&&await this.op.afterEmpPlugin()}async beforeBuild(){this.op.beforeBuild&&await this.op.beforeBuild()}async afterBulid(){this.op.afterBulid&&await this.op.afterBulid()}async beforeDevServe(){this.op.beforeDevServe&&await this.op.beforeDevServe()}async afterDevServe(){this.op.afterDevServe&&await this.op.afterDevServe()}async beforeServe(){this.op.beforeServe&&await this.op.beforeServe()}async afterServe(){this.op.afterServe&&await this.op.afterServe()}}});import is from"node:fs";var ye,qe,Ve=m(()=>{"use strict";n();z();ze();w();G();We();ye=class{store;appSrc="src";appEntry="";base="";target=[];assign(e,t){return t=t||{},y(e,t)}isESM=!1;async autoDevSet(){this.store.mode==="development"&&this.store.empOptions.autoDevBase}checkIsESM(e){return["es3","es5"].indexOf(e)===-1}lifeCycle;async setup(e){this.store=e,await this.syncEmpOptions(),this.lifeCycle=new V(this.store.empOptions.lifeCycle),await this.lifeCycle.afterGetEmpOptions(),this.isESM=this.checkIsESM(this.build.target),this.store.empOptions.target?(this.target=this.store.empOptions.target,Array.isArray(this.target)&&!this.target.includes(this.build.target)&&this.target.push(this.build.target)):this.target=["web",this.build.target];let{appSrc:t,base:s,appEntry:o}=this.store.empOptions;t&&(this.appSrc=t),s&&(this.base=s),o&&(this.appEntry=o)}async chain(){this.store.empOptions.chain&&await this.store.empOptions.chain(this.store.chain)}async plugins(){let e=[];this.store.empOptions.plugins&&Array.isArray(this.store.empOptions.plugins)&&this.store.empOptions.plugins.length>0&&(this.store.empOptions.plugins.map(t=>{e.push(t.rsConfig(this.store))}),await Promise.all(e))}get debug(){let e=!1;return this.store.cliOptions.doctor&&(e={supports:{generateTileGraph:!0}}),this.assign({loggerLevel:"info",clearLog:!0,progress:!0,showRsconfig:!1,showPerformance:!1,rspackCache:!0,rsdoctor:e,infrastructureLogging:{appendOnly:!0,level:"warn"},newTreeshaking:this.store.empConfig.isESM,devShowAllLog:!1,showScriptDebug:!1},this.store.empOptions.debug)}get build(){let e=this.store.empOptions.build?.staticDir?`${this.store.empOptions.build?.staticDir}/`:"";return this.assign({outDir:"dist",staticDir:e,assetsDir:"assets",publicDir:"public",chunkIds:this.store.isDev?"named":"deterministic",moduleIds:this.store.isDev?"named":"deterministic",sourcemap:this.store.isDev,minify:!this.store.isDev,minOptions:{},cssminOptions:{},target:"es5",polyfill:{mode:void 0,entryCdn:void 0,splitChunks:!1,include:[],coreJsFeatures:"stable",externalHelpers:!1,browserslist:this.store.browserslistOptions.default},swcConfig:{},devtool:this.store.isDev?"cheap-module-source-map":"source-map"},{...this.store.empOptions.build,staticDir:e})}get html(){let e=this.store.empOptions.html?.template?{}:{charset:{charset:"utf-8"},"http-equiv":{"http-equiv":"X-UA-Compatible",content:"IE=edge"},viewport:{name:"viewport",content:"width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0"},keywords:{keywords:""},description:{description:""}};return this.assign({lang:"zh-CN",title:"EMP",inject:"body",minify:!this.store.isDev,scriptLoading:this.isESM?"module":"defer",meta:e,tags:[]},this.store.empOptions.html)}get entries(){return this.store.empOptions.entries?this.store.empOptions.entries:{}}get server(){let e={host:"0.0.0.0",port:8e3,open:process.platform==="darwin",hot:!0,watchFiles:["src/**/*.html"],static:[{directory:this.store.publicDir,watch:this.store.isDev}],allowedHosts:["all"],historyApiFallback:!0,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, PATCH, OPTIONS","Access-Control-Allow-Headers":"X-Requested-With, content-type, Authorization"}};return this.store.empOptions.server?.http2&&(O.httpsType="h2",delete this.store.empOptions.server.http2),this.assign(e,this.store.empOptions.server)}get css(){return this.assign({sass:{mode:"modern",warnRuleAsWarning:!1}},this.store.empOptions.css)}get output(){let e=(this.store.isDev,".[contenthash:8]"),t=this.store.isDev?"":".[contenthash:8]",{assetsDir:s,staticDir:o}=this.store.empConfig.build,a={publicPath:this.store.empConfig.base?this.store.empConfig.base:"auto",crossOriginLoading:"anonymous",filename:`${o}js/[name]${e}.js`,cssFilename:`${o}css/[name]${t}.css`,cssChunkFilename:`${o}css/[name]${t}.css`,assetModuleFilename:`${o}${s}/[name]${e}[ext][query]`,path:this.store.outDir,clean:!0,uniqueName:this.store.uniqueName};return this.assign(a,this.store.empOptions.output)}get define(){let e={mode:this.store.mode,env:this.store.cliOptions.env};return this.store.empOptions.define&&(e={...e,...this.store.empOptions.define}),this.setDefine(e)}setDefine(e){let t=this.store.empOptions.defineFix?this.store.empOptions.defineFix:this.isESM?"esm":"cjs",s={};return Object.keys(e).map(o=>{t==="all"?(s[`import.meta.env.${o}`]=JSON.stringify(e[o]),s[`process.env.${o}`]=JSON.stringify(e[o])):t==="esm"?s[`import.meta.env.${o}`]=JSON.stringify(e[o]):t==="cjs"?s[`process.env.${o}`]=JSON.stringify(e[o]):t==="none"&&(s[`${o}`]=JSON.stringify(e[o]))}),s}get externals(){return this.assign({},this.store.empOptions.externals)}get resolve(){return y({alias:{src:this.store.resolve("src"),"@":this.store.resolve("src")},extensions:["...",".js",".jsx",".mjs",".ts",".tsx",".css",".less",".scss",".sass",".json",".wasm",".vue",".svg",".svga"]},this.store.empOptions.resolve)}async syncEmpOptions(){p.time("[store][empConfig]SyncEmpOptions");let e=await Me();if(!e||!is.existsSync(e))return;let t=await Fe(e);typeof t=="function"?this.store.empOptions=await t(this.store):this.store.empOptions=t||{},p.timeEnd("[store][empConfig]SyncEmpOptions")}get moduleTransformRule(){let{moduleTransform:e}=this.store.empOptions,t=this.assign({defaultExclude:!1},e),s={and:[],not:[]};return t.defaultExclude===!0&&s.and.push(/(node_modules|bower_components)/),t?.exclude&&(s.and=s.and.concat(t.exclude)),e?.include&&(s.not=t.include),s}get cacheDir(){return this.store.empOptions.cacheDir?this.store.empOptions.cacheDir:"node_modules/.emp-cache"}get ignoreWarnings(){return this.store.empOptions.ignoreWarnings?this.store.empOptions.ignoreWarnings:[/Conflicting order/]}get autoPages(){let e;return this.store.empOptions.autoPages&&(e=typeof this.store.empOptions.autoPages=="boolean"?{}:this.store.empOptions.autoPages,e=this.assign({path:"pages"},e)),e}},qe=new ye});import os from"fs-extra";var ve,Xe,Qe=m(()=>{"use strict";n();ve=class{store;async setup(e){this.store=e;let t=[this.common(),this.stats(),this.devServer(),this.optimization(),this.checkTsconfig()];await Promise.all(t)}async common(){this.store.merge({node:{global:!0},experiments:{outputModule:this.store.empConfig.isESM,topLevelAwait:!0,css:!0},target:this.store.empConfig.target,infrastructureLogging:this.store.empConfig.debug.infrastructureLogging,context:this.store.root,mode:this.store.mode,cache:this.store.empConfig.debug.rspackCache,devtool:this.store.empConfig.build.sourcemap?this.store.empConfig.build.devtool:!1,output:this.store.empConfig.output,resolve:this.store.empConfig.resolve,externals:this.store.empConfig.externals,ignoreWarnings:this.store.empConfig.ignoreWarnings,watchOptions:{ignored:["**/node_modules/**","**/@mf-types/**"]}})}async checkTsconfig(){let e=this.store.resolve("tsconfig.json");if(await os.exists(e)){let s={tsConfig:e};this.store.merge({resolve:s})}}async stats(){this.store.merge({stats:{colors:!0,all:!1,assets:!1,chunks:!1,timings:!0,version:!0}})}async devServer(){this.store.merge({devServer:this.store.empConfig.server})}async optimization(){let e={moduleIds:this.store.empConfig.build.moduleIds,chunkIds:this.store.empConfig.build.chunkIds,minimize:this.store.empConfig.build.minify,splitChunks:{chunks:"async",cacheGroups:{}}};this.store.empConfig.build.polyfill.mode==="entry"&&this.store.empConfig.build.polyfill.splitChunks&&!this.store.empConfig.build.polyfill.entryCdn&&(e.splitChunks.cacheGroups={coreJs:{test:/[\\/]node_modules[\\/](core-js)[\\/]/,name:"coreJs",chunks:"all",enforce:!0}}),this.store.chain.merge({optimization:e})}},Xe=new ve});var be,Ke,Ye=m(()=>{"use strict";n();be=class{store;async setup(e){this.store=e;let t=[this.sass(),this.less(),this.css()];await Promise.all(t)}async sass(){let{rule:e,use:t}=this.store.chainName,s={},{sass:o}=this.store.empConfig.css||{sass:{}};o.mode==="modern"&&(s.implementation=o.implementation?o.implementation:b.resolve("sass-embedded"),s.sourceMap=this.store.empConfig.build.sourcemap,o.sassOptions&&(s.sassOptions=o.sassOptions)),typeof o.warnRuleAsWarning<"u"&&(s.warnRuleAsWarning=o.warnRuleAsWarning),typeof o.webpackImporter<"u"&&(s.webpackImporter=o.webpackImporter),this.store.chain.merge({module:{rule:{[e.sass]:{test:/\.(sass|scss)$/,use:{[t.sass]:{loader:b.resolve("sass-loader"),options:s}},type:"css/auto"}}}})}async less(){let{rule:e,use:t}=this.store.chainName,s={loader:b.resolve("less-loader"),options:{lessOptions:{javascriptEnabled:!0}}};this.store.chain.merge({module:{rule:{[e.less]:{test:/\.less$/,use:{[t.less]:s},type:"css/auto"}}}})}async css(){let{rule:e}=this.store.chainName;this.store.chain.merge({module:{rule:{[e.css]:{test:/\.css$/,use:{},type:"css/auto"}}}})}},Ke=new be});import C from"node:path";var we,Ze,et=m(()=>{"use strict";n();z();q();we=class{store;entriesConfig={};async setup(e){this.store=e,await this.init(),this.toConfig()}setHtmlConfig(e,t){return e.template=this.setTemplate(e.template),e.favicon=this.setFavicion(e.favicon),e.chunks=t,e.filename=`${t[0]}.html`,this.store.empConfig.base&&(e.publicPath=this.store.empConfig.base),this.prepareAndSetAsset(e),e}prepareAndSetAsset(e){let t=e.chunks?e.chunks[0]:void 0;this.store.injectTags(e.tags,"injectTags",t),delete e.tags}injectPolyfill(){if(!this.store.empConfig.build.polyfill.entryCdn)return;let e=[{attributes:{src:this.store.empConfig.build.polyfill.entryCdn},tagName:"script",pos:"head"}];this.store.injectTags(e,"injectEMPPolyfill")}setChunk(e){return e.replace(C.extname(e),"").replace(`${this.store.empConfig.appSrc}${C.sep}`,"")}setTemplate(e){return e?this.store.resolve(e):this.store.empResolve(C.join("template","index.html"))}setFavicion(e){return e?this.store.resolve(e):this.store.empResolve(C.join("template","favicon.ico"))}setEntryItem(e,t,s){s=s||this.store.resolve(C.join(this.store.empConfig.appSrc,e));let o=this.setChunk(e),a=[s];this.entriesConfig[o]={entry:{[o]:a},html:this.setHtmlConfig(t,[o])},this.store.entries[o]=a}setRspackHtmlPlugin(e,t){this.store.chain.plugin(`${this.store.chainName.plugin.html.prefix}${t}`).use(de,[e])}setRspackEntry(e){this.store.merge({entry:e})}async init(){this.injectPolyfill(),this.store.empConfig.autoPages?await this.setAutoPage():(await this.setDefaultEntry(),this.setEntryByConfig())}async setAutoPage(){p.time("setAutoPage");let e=this.store.empConfig.autoPages?.path||"pages",t=C.join(this.store.appSrc,e),s=C.join(t,"**","*.{ts,tsx,jsx,js}"),o=await R([s],{windowsPathsNoEscape:!0});o=o.map(a=>a.replace(`${t}${C.sep}`,"")),o.map(a=>{let f=this.store.empConfig.entries[a]||{};this.setEntryItem(a,{...this.store.empConfig.html,...f},C.join(t,a))}),p.timeEnd("setAutoPage")}async setDefaultEntry(){p.time("[store][empConfig]SetDefaultEntry");let e=C.join(this.store.appSrc,this.store.empConfig.appEntry?this.store.empConfig.appEntry:"index.{ts,tsx,jsx,js}"),t=await R([e],{windowsPathsNoEscape:!0});if(t[0]){let s=C.join(this.store.empConfig.appSrc,Object.keys(this.store.empConfig.entries).length>0&&this.store.empConfig.appEntry?this.store.empConfig.appEntry:"index");this.setEntryItem(s,this.store.empConfig.html,t[0])}p.timeEnd("[store][empConfig]SetDefaultEntry")}setEntryByConfig(){if(Object.keys(this.store.empConfig.entries).length>0)for(let[e,t]of Object.entries(this.store.empConfig.entries))this.setEntryItem(e,{...this.store.empConfig.html,...t})}toConfig(){for(let[e,t]of Object.entries(this.entriesConfig))this.setRspackHtmlPlugin(t.html,e),this.setRspackEntry(t.entry)}},Ze=new we});import tt from"node:path";var Ce,st,it=m(()=>{"use strict";n();w();Ce=class{store;swcJsOptions={};swcTsOptions={};coreJs={version:"3",alias:"",path:""};async setup(e){this.store=e,this.swcInitOptions(),await this.run()}async run(){let e=[this.jsDataUrl(),this.files(),this.scripts(),this.rspackGenerator(),this.rspackParser()];await this.store.empConfig.lifeCycle.beforeModule(),await Promise.all(e),await this.store.empConfig.lifeCycle.afterModule()}rspackGenerator(){let e=this.store.isDev?"[path][name]-[local]-[hash:5]":"[local]-[hash:5]";this.store.chain.merge({module:{generator:{css:{localIdentName:e},"css/auto":{localIdentName:e},"css/module":{localIdentName:e}}}})}rspackParser(){this.store.chain.merge({module:{parser:{css:{namedExports:!1},"css/auto":{namedExports:!1},"css/module":{namedExports:!1}}}})}get isPolyfill(){return!!this.store.empConfig.build.polyfill.mode}swcParser(e){switch(e){case"js":return{syntax:"ecmascript",jsx:!0,decorators:!0,decoratorsBeforeExport:!1};case"ts":return{syntax:"typescript",decorators:!0,tsx:!0,dynamicImport:!0}}}swcJsc(e){let{target:t,polyfill:s}=this.store.empConfig.build,{externalHelpers:o}=s;return{parser:this.swcParser(e),transform:{},target:t,externalHelpers:o,preserveAllComments:!0}}get swcCoreVersion(){let[e,t]=this.coreJs.version.split(".");return`${e}.${t}`}swcOptions(e){let t={jsc:y(this.swcJsc(e),{...this.store.empConfig.build.swcConfig}),isModule:"unknown"};return this.isPolyfill&&(delete t.jsc.target,t.env={coreJs:this.swcCoreVersion,targets:this.store.empConfig.build.polyfill.browserslist},this.store.empConfig.isESM||(t.env.mode=this.store.empConfig.build.polyfill.mode),this.store.empConfig.build.polyfill.mode==="usage"&&(t.env.shippedProposals=!0,t.env.include=this.store.empConfig.build.polyfill.include)),t}swcInitOptions(){let{externalHelpers:e}=this.store.empConfig.build.polyfill;e&&this.store.chain.resolve.alias.set("@swc/helpers",tt.dirname(b.resolve("@swc/helpers/package.json"))),this.coreJs.path=b.resolve("core-js/package.json");let t=re(this.coreJs.path);t&&(this.coreJs.version=t),this.coreJs.alias=tt.dirname(this.coreJs.path),this.store.empConfig.build.polyfill.mode&&(this.store.chain.resolve.alias.set("core-js",this.coreJs.alias),this.store.chain.module.rule("javascript").exclude.add(/core-js/),this.store.chain.module.rule("typescript").exclude.add(/core-js/)),this.swcTsOptions=this.swcOptions("ts"),this.swcJsOptions=this.swcOptions("js")}jsDataUrl(){this.store.chain.module.rule("jsDataUrl").merge({mimetype:{or:["text/javascript","application/javascript"]}}).resolve.set("fullySpecified",!1).end().use("swcJsParser").loader("builtin:swc-loader").options(this.swcJsOptions)}async scripts(){let e=[],{rule:t,use:s}=this.store.chainName;this.store.chain.merge({module:{parser:{javascript:{exportsPresence:"error",importExportsPresence:"error"}},rule:{[t.mjs]:{test:/\.m?js/,resolve:{fullySpecified:!1}},[t.typescript]:{test:/\.(ts|tsx)$/,exclude:e,use:{[s.swc]:{loader:"builtin:swc-loader",options:this.swcTsOptions}}},[t.javascript]:{test:/\.((m|c)?js|jsx)$/,exclude:e,use:{[s.swc]:{loader:"builtin:swc-loader",options:this.swcJsOptions}}}}}})}async files(){let{rule:e}=this.store.chainName;this.store.chain.merge({module:{rule:{[e.svg]:{test:/\.svg$/,type:"asset/resource"}}}}),this.store.chain.merge({module:{rule:{[e.inline]:{resourceQuery:/inline/,type:"asset/inline"}}}}),this.store.chain.merge({module:{rule:{[e.image]:{test:/\.(png|jpe?g|gif|webp|ico)$/i,type:"asset/resource"},[e.font]:{test:/\.(|otf|ttf|eot|woff|woff2)$/i,type:"asset/resource"},[e.svga]:{test:/\.(svga)$/i,type:"asset/resource"}}}})}},st=new Ce});import ot from"fs";import B from"@rspack/core";var xe,rt,nt=m(()=>{"use strict";n();xe=class{store;async setup(e){this.store=e;let t=[this.define(),this.anylayze(),this.progress(),this.copy(),this.minify(),this.redoctor()];await this.store.empConfig.lifeCycle.beforePlugin(),await Promise.all(t),await this.store.empConfig.lifeCycle.afterPlugin()}async anylayze(){if(!this.store.cliOptions.analyze)return;let{default:{BundleAnalyzerPlugin:e}}=await import("webpack-bundle-analyzer");this.store.chain.plugin(this.store.chainName.plugin.bundleAnalyzer).use(e,[{analyzerPort:this.store.empConfig.server.port,defaultSizes:"gzip",analyzerHost:this.store.getLanIp()||"127.0.0.1"}])}async define(){this.store.chain.plugin(this.store.chainName.plugin.define).use(B.DefinePlugin,[this.store.empConfig.define])}async copy(){let e=this.store.resolve("public");ot.existsSync(e)&&ot.readdirSync(e).length>0&&this.store.chain.plugin(this.store.chainName.plugin.copy).use(B.CopyRspackPlugin,[{patterns:[{from:e,to:this.store.resolve(this.store.empConfig.build.outDir),noErrorOnMissing:!0,globOptions:{ignore:["**/.DS_Store"]}}]}])}async progress(){this.store.empConfig.debug.progress&&this.store.chain.plugin(this.store.chainName.plugin.progress).use(B.ProgressPlugin,[{template:"{bar:25.green/white}{spinner:.green}{percent}% {wide_msg:.dim}",tick:void 0,progressChars:"\u2592\u2592"}])}minify(){this.store.chain.optimization.minimizer(this.store.chainName.minimizer.minJs).use(B.SwcJsMinimizerRspackPlugin,[this.store.empConfig.build.minOptions]),this.store.chain.optimization.minimizer(this.store.chainName.minimizer.minCss).use(B.LightningCssMinimizerRspackPlugin,[this.store.empConfig.build.cssminOptions])}redoctor(){if(!this.store.empConfig.debug.rsdoctor)return;let{RsdoctorRspackPlugin:e}=b("@rsdoctor/rspack-plugin"),t={};typeof this.store.empConfig.debug.rsdoctor=="object"&&(t=this.store.empConfig.debug.rsdoctor),this.store.chain.plugin(this.store.chainName.plugin.rsdoctor).use(e,[t])}},rt=new xe});var Se,at,pt=m(()=>{"use strict";n();Qe();Ye();et();it();nt();Se=class{store;async setup(e){this.store=e;let t=[Xe.setup(this.store),st.setup(this.store),rt.setup(this.store),Ze.setup(this.store),Ke.setup(this.store)];await Promise.all(t),await this.store.empConfig.lifeCycle.beforeEmpPlugin(),await this.store.empConfig.plugins(),await this.store.empConfig.lifeCycle.afterEmpPlugin(),await this.store.empConfig.chain()}},at=new Se});var lt,ct=m(()=>{"use strict";n();lt={rule:{mjs:"mjs",typescript:"typescript",javascript:"javascript",sourceMap:"sourceMapLoader",inline:"inline",svg:"svg",image:"image",font:"fonts",svga:"svga",sass:"sass",less:"less",css:"css"},use:{swc:"swc",sourceMap:"sourceMapLoader",sass:"sassLoader",less:"lessLoader"},plugin:{bundleAnalyzer:"bundleAnalyzerPlugin",define:"definePlugin",copy:"copyRspackPlugin",progress:"progressPlugin",html:{prefix:"html-plugin-"},rsdoctor:"rsdoctor"},minimizer:{minJs:"minJs",minCss:"minCss"}}});import rs from"node:fs/promises";import x from"node:path";import ns from"node:util";import as from"webpack-chain";var Ee,r,v=m(()=>{"use strict";n();E();w();Ve();pt();ct();q();Ee=class{empPkg={dependencies:{},devDependencies:{},version:"2.0.0",name:""};pkg={dependencies:{},devDependencies:{},version:"0.0.0",name:""};root=process.cwd();empRoot=x.resolve(c,l).replace(`${x.sep}dist${x.sep}index.js`,"");empSource=x.resolve(this.empRoot,"dist");resolve=e=>x.isAbsolute(e)?e:x.resolve(this.root,e);empResolve=e=>x.resolve(this.empRoot,e);appSrc="";outDir="";publicDir="";resource={dir:"",key:"",cert:""};chainName=lt;cacheDir="";mode="development";cliMode="dev";isDev=!0;cliOptions;chain;rsConfig;empOptions={};empConfig;vCompare=ae;deepAssign=y;getLanIp=M;entries={};debug;async setup(e,t){p.time("[store]Setup"),await this.initVars(e,t),this.empConfig=qe,await this.empConfig.setup(this),this.debug={...this.empConfig.debug},this.initPaths(),this.chain=new as,await at.setup(this),this.setLogger(),this.toConfig(),this.logConfig(),p.timeEnd("[store]Setup")}async initVars(e,t){this.cliOptions=t||{},this.cliMode="prod",this.mode=e==="dev"?"development":"production",this.isDev=this.mode==="development",process.env.NODE_ENV=e==="dev"?"development":"production";let s=b(this.empResolve("package.json")),o=b(this.resolve("package.json"));this.empPkg={...this.empPkg,...s},this.pkg={...this.pkg,...o},this.resource.dir=x.join(this.empRoot,"resource"),this.resource.cert=x.join(this.resource.dir,"emp.cert"),this.resource.key=x.join(this.resource.dir,"emp.key")}initPaths(){this.appSrc=this.resolve(this.empConfig.appSrc),this.outDir=this.resolve(this.empConfig.build.outDir),this.publicDir=this.resolve(this.empConfig.build.publicDir),this.cacheDir=this.resolve(this.empConfig.cacheDir)}setLogger(){let e=this.cliMode==="dev"?"debug":"info";this.debug.loggerLevel&&(e=this.debug.loggerLevel),p.setup({fullName:`EMP\u26A1${this.empPkg.version}${this.cliMode==="dev"?".DEV":""}`,brandName:"EMP",logLevel:e})}merge(e){this.chain.merge(e)}toConfig(){this.rsConfig=this.chain.toConfig()}logConfig(){if(this.debug.showRsconfig)if(typeof this.debug.showRsconfig=="string"){let e=x.join(this.root,this.debug.showRsconfig);rs.writeFile(e,JSON.stringify(this.rsConfig,null,2))}else{this.debug.clearLog=!1;let e={colors:!0,depth:null},t=typeof this.debug.showRsconfig=="object"?y(e,this.debug.showRsconfig):e;console.log(p.link("[Compile Config]")),console.log(ns.inspect(this.rsConfig,t))}}get browserslistOptions(){return{default:["chrome >= 87","edge >= 88","firefox >= 78","safari >= 14"],h5:["iOS >= 9","Android >= 4.4","last 2 versions","> 0.2%","not dead"],node:["node >= 16"]}}get uniqueName(){return this.pkg.name.replaceAll("/","_").replaceAll("@","_").replaceAll("-","_")}injectTags(e=[],t="",s=""){this.chain.plugin(`${I}-${t}`).use(I,[e,t,s])}},r=new Ee});import ps from"node:fs";import k from"node:path";import{gzipSizeSync as ls}from"gzip-size";function ds(i,e){let t=[i,e],s=["File","Size","Gzipped"].reduce((o,a,f)=>{let g=t[f],P=a;return g&&(P=a.length<g?a+" ".repeat(g-a.length):a),`${o+P} `}," ");console.log(j.bold(s))}async function mt(i){let e=i.toJson({all:!1,assets:!0,timings:!0}),s=e.assets.filter(u=>hs(u.name)).map(gs);s.sort((u,N)=>u.size-N.size);let o=Math.max(...s.map(u=>u.sizeLabel.length)),a=Math.max(...s.map(u=>(u.folder+k.sep+u.name).length));ds(a,o);let f=0,g=0;s.forEach(u=>{let{sizeLabel:N}=u,{name:bt,folder:wt,gzipSizeLabel:Ct}=u,Te=(wt+k.sep+bt).length,Re=N.length;if(f+=u.size,g+=u.gzippedSize,Re<o){let ee=" ".repeat(o-Re);N+=ee}let Le=D(u.folder+k.sep)+ys(u.name);if(Te<a){let ee=" ".repeat(a-Te);Le+=ee}p.info(` ${Le} ${D(N)} ${Ct}`)});let P=`${j.bold("Total size:")} ${X(f)}`,A=`${j.bold("Gzipped size:")} ${X(g)}`;p.info(`
13
13
  ${P}
14
- ${N}
15
- `),p.info(`${S("\u2713")} Ready in ${U(Number(e.time))}
16
- `)}function X(i=0){p.info(`${S("\u2713")} Ready in ${U(Number(i))}`)}var cs,ms,fs,hs,us,gs,V,ys,Q=f(()=>{"use strict";n();T();v();E();w();cs=/\.html$/,ms=/\.(?:js|mjs|cjs|jsx)$/,fs=/\.css$/,hs=i=>!/\.map$/.test(i)&&!/\.LICENSE\.txt$/.test(i),us=i=>i>300*1e3?ee:i>100*1e3?H:te,gs=i=>{let e=i.name.split("?")[0],t=V(i.size),s=k.basename(e),r=k.join(k.basename(o.empConfig.build.outDir),k.dirname(e)),a=ps.readFileSync(k.join(o.empConfig.build.outDir,e)),m=a.length,g=ls(a),P=us(g)(V(g));return{size:m,folder:r,name:s,gzippedSize:g,sizeLabel:t,gzipSizeLabel:P}};V=i=>{let e=i/1e3;return`${e.toFixed(e<1?2:1)} kB`},ys=i=>ms.test(i)?H(i):fs.test(i)?S(i):cs.test(i)?j(i):se(i)});var mt={};F(mt,{default:()=>ws});import{rspack as vs}from"@rspack/core";import{RspackDevServer as bs}from"@rspack/dev-server";var Ee,ws,ft=f(()=>{"use strict";n();Q();E();w();G();v();Ee=class extends O{get rspackDevConfig(){return y(o.rsConfig,{stats:{all:o.empConfig.debug.devShowAllLog,colors:!0,assets:!1,chunks:!1,entrypoints:!1,timings:!1,version:!1,errors:!0,warnings:!0},devServer:{open:!1,setupExitSignals:!0}})}async devServerConfig(){let e=Object.assign({},o.rsConfig.devServer);if(this.isHttps&&(e.https===!0&&delete e.https,!e.server)){let[t,s]=await this.getcert();e.server={type:"https",options:{key:t,cert:s}}}return e}async run(){let e=vs(this.rspackDevConfig);if(!o.rsConfig.devServer){p.error("devServer is not defined in config");return}let t=await this.devServerConfig(),s=new bs(t,e);this.startOpen(),o.empConfig.lifeCycle.beforeDevServe&&await o.empConfig.lifeCycle.beforeDevServe(),await s.start();let r=a=>{let m=a?.toJson({all:!1,colors:!1,assets:!1,chunks:!1,timings:!0});X(m.time)};o.debug.showPerformance&&e.hooks.afterDone.tap("done",r),s.middleware?.waitUntilValid(a=>{o.debug.showPerformance||r(a),o.empConfig.lifeCycle.afterDevServe&&o.empConfig.lifeCycle.afterDevServe()})}},ws=new Ee});import Cs from"https";import xs from"compression";import Ss from"cors";import Es from"express";var K,ht=f(()=>{"use strict";n();G();K=class extends O{app;async init(){let e=Es();e.use(xs()),e.use(Ss()),this.app=e}async server(){if(this.isHttps){let[e,t]=await this.getcert();Cs.createServer(typeof this.isHttps!="boolean"?this.isHttps:{key:e,cert:t},this.app).listen(this.sf.port,async()=>{this.startOpen(),await this.onReady()})}else this.app.listen(this.sf.port,async()=>{this.startOpen(),await this.onReady()})}async onReady(){}async middleware(){}async start(){await this.init(),await this.middleware(),await this.server()}}});var Oe={};F(Oe,{ServeScript:()=>Y,default:()=>js});import Os from"node:fs";import Ps from"node:fs/promises";import ks from"path";import $s from"express";var Y,js,Pe=f(()=>{"use strict";n();Q();E();v();ht();Y=class extends K{timing=0;async run(){if(this.timing=Date.now(),!Os.existsSync(o.outDir))return p.sysError(`emp serve must be executed after emp build,${o.outDir} not exist!`);o.empConfig.lifeCycle.beforeServe&&await o.empConfig.lifeCycle.beforeServe(),this.start()}async middleware(){let e=o.resolve(o.rsConfig.output?.path);this.app.use($s.static(e));let t=await Ps.readFile(ks.join(e,"index.html"),"utf8");this.app.get("*",(s,r)=>r.send(t))}async onReady(){X(Date.now()-this.timing),o.empConfig.lifeCycle.afterServe&&await o.empConfig.lifeCycle.afterServe()}},js=new Y});var ut={};F(ut,{default:()=>Ts});import{rspack as Ds}from"@rspack/core";var ke,Ts,gt=f(()=>{"use strict";n();Q();E();G();v();ke=class extends O{isWatchMode=!1;rspackConfig;isuseServe=!1;isStartServe=!1;watchMode(){this.isWatchMode&&this.rspackConfig.optimization&&(this.rspackConfig.optimization.moduleIds="named",this.rspackConfig.optimization.chunkIds="named",this.rspackConfig.watch=!0)}async startServe(){if(!this.isuseServe||this.isStartServe)return;this.isStartServe=!0;let{default:e}=await Promise.resolve().then(()=>(Pe(),Oe));await e.setup("serve",o.cliOptions)}async run(){await o.empConfig.lifeCycle.beforeBuild(),this.isWatchMode=!!o.cliOptions.watch,this.isuseServe=!!o.cliOptions.serve,this.rspackConfig=o.rsConfig,this.isWatchMode&&this.watchMode(),Ds(this.rspackConfig,async(e,t)=>{if(e!==null){p.error(e.stack||e),e.message&&p.error(e.message);return}if(!t){p.red("Stats is Undefined.");return}t.hasErrors()&&(p.error(t.toString({all:!1,colors:!0,errors:!0})),p.red("Failed to compile."),process.exit(1)),t.hasWarnings()&&(p.yellow("Compiled with warnings."),p.warn(t.toString({all:!1,chunks:!1,assets:!1,colors:!0,errors:!0,warnings:!0}))),await ct(t),this.startServe(),await o.empConfig.lifeCycle.afterBulid()})}},Ts=new ke});n();import{rspack as Vo}from"@rspack/core";n();v();import Rs from"node:process";import{program as $}from"commander";function dt(){$.version(o.empPkg.version,"-v, --version").usage("<command> [options]"),$.command("dev").description("Dev \u6A21\u5F0F").option("-e, --env <env>","\u90E8\u7F72\u73AF\u5883 dev\u3001test\u3001prod").option("-rd, --doctor","\u5F00\u542Frsdoctor,\u53EF\u901A\u8FC7debug.rsdoctor\u64CD\u4F5C").option("-h, --hot","\u662F\u5426\u4F7F\u7528\u70ED\u66F4\u65B0 \u9ED8\u8BA4\u542F\u52A8").option("-o, --open","\u662F\u5426\u6253\u5F00\u8C03\u8BD5\u9875\u9762 \u9ED8\u8BA4\u4E0D\u6253\u5F00").option("-t, --ts","\u751F\u6210\u7C7B\u578B\u6587\u4EF6 \u9ED8\u8BA4\u4E3A false").option("-pr, --profile","\u7EDF\u8BA1\u6A21\u5757\u6D88\u8017").option("-cl, --clearLog <clearLog>","\u6E05\u7A7A\u65E5\u5FD7 \u9ED8\u8BA4\u4E3A true").option("-ev, --env-vars <key=value>","\u5B9A\u4E49\u4E00\u4E2A\u73AF\u5883\u53D8\u91CF -ev key=value \u591A\u4E2A\u73AF\u5883\u53D8\u91CF\u91CD\u590D\u8C03\u7528 -ev key=value -ev key=value",(i,e)=>{let[t,s]=i.split("=");return e[t]=s,e},{}).action(async i=>{let{default:e}=await Promise.resolve().then(()=>(ft(),mt));await e.setup("dev",i)}),$.command("build").description("Build \u6A21\u5F0F").option("-e, --env <env>","\u90E8\u7F72\u73AF\u5883 dev\u3001test\u3001prod").option("-rd, --doctor","\u5F00\u542Frsdoctor,\u53EF\u901A\u8FC7debug.rsdoctor\u64CD\u4F5C").option("-a, --analyze","\u751F\u6210\u5206\u6790\u62A5\u544A \u9ED8\u8BA4\u4E3A false").option("-t, --ts","\u751F\u6210\u7C7B\u578B\u6587\u4EF6 \u9ED8\u8BA4\u4E3A false").option("-pr, --profile","\u7EDF\u8BA1\u6A21\u5757\u6D88\u8017").option("-cl, --clearLog <clearLog>","\u6E05\u7A7A\u65E5\u5FD7 \u9ED8\u8BA4\u4E3A true").option("-w, --watch","watch \u6A21\u5F0F").option("-sv, --serve","watch \u6A21\u5F0F\u4E0B\u542F\u52A8serve").option("-ev, --env-vars <key=value>","\u5B9A\u4E49\u4E00\u4E2A\u73AF\u5883\u53D8\u91CF -ev key=value \u591A\u4E2A\u73AF\u5883\u53D8\u91CF\u91CD\u590D\u8C03\u7528 -ev key=value -ev key=value",(i,e)=>{let[t,s]=i.split("=");return e[t]=s,e},{}).action(async i=>{let{default:e}=await Promise.resolve().then(()=>(gt(),ut));await e.setup("build",i)}),$.command("serve").description("Server \u6A21\u5F0F").option("-cl, --clearLog <clearLog>","\u6E05\u7A7A\u65E5\u5FD7 \u9ED8\u8BA4\u4E3A true").action(async i=>{let{default:e}=await Promise.resolve().then(()=>(Pe(),Oe));await e.setup("serve",i)}),$.command("dts").description("\u62C9\u53D6 remote \u9879\u76EE\u7684 d.ts").option("-p, --typingsPath <typingsPath>","\u4E0B\u8F7D\u76EE\u5F55").option("-e, --env <env>","\u90E8\u7F72\u73AF\u5883 dev\u3001test\u3001prod").action(i=>{}),$.command("init").description("\u521D\u59CB\u5316 emp \u9879\u76EE").option("-d, --data [data]","JSON\u6570\u636E http\u5730\u5740 \u6216\u8005 \u6587\u4EF6\u8DEF\u5F84\u76F8\u5BF9\u3001\u7EDD\u5BF9\u8DEF\u5F84").action(i=>{}),$.parse(Rs.argv)}n();z();v();import yt from"node:fs/promises";import $e from"node:path";var Ls=/(?:(?:import|export)\s?(?:type)?\s?(?:(?:\{[^;\n]+\})|(?:[^;\n]+))\s?from\s?['"][^;\n]+['"])|(?:import\(['"][^;\n]+?['"]\))/g,Ns=/(?:import|export)\s?(?:type)?\s?\{?.+\}?\s?from\s?['"](.+)['"]/,As=/import\(['"]([^;\n]+?)['"]\)/,je=class{list=[];outDir=o.resolve("dist");aliasName="@empjs/cli";async setup(e,t){e&&(this.outDir=e),t&&(this.aliasName=t);let s=await this.readDts();await this.writeCode(s)}async readDts(){this.list=await R([`${o.empConfig.build.outDir}/**/*.d.ts`],{windowsPathsNoEscape:!0});let e=[];this.list.map(s=>{s=o.resolve(s),e.push(this.readFile(s))});let t=await Promise.all(e);return t=t.map(s=>this.replaceAliasPath(s)),t}async readFile(e){let t=await yt.readFile(e,{encoding:"utf-8"});return{src:e,code:t}}replaceAliasPath({src:e,code:t}){t=t.replace(Ls,r=>{let a=r.match(Ns);if(a||(a=r.match(As)),a&&a[1]){let m=a[1];if(!m.startsWith("."))return r;let g=$e.resolve($e.dirname(e),m).replace(this.outDir,this.aliasName);return r.replace(a[1],g)}return r});let s=e.replace(this.outDir,this.aliasName).replace(".d.ts","");return s.endsWith("/index")&&(s=s.replace("/index","")),t=this.warpDeclareModule(s,t),{code:t,src:e,mod:s}}warpDeclareModule(e,t){return`declare module '${e}' {\r
14
+ ${A}
15
+ `),p.info(`${S("\u2713")} Ready in ${H(Number(e.time))}
16
+ `)}function Q(i=0){p.info(`${S("\u2713")} Ready in ${H(Number(i))}`)}var cs,ms,fs,hs,us,gs,X,ys,K=m(()=>{"use strict";n();T();v();E();w();cs=/\.html$/,ms=/\.(?:js|mjs|cjs|jsx)$/,fs=/\.css$/,hs=i=>!/\.map$/.test(i)&&!/\.LICENSE\.txt$/.test(i),us=i=>i>300*1e3?te:i>100*1e3?U:se,gs=i=>{let e=i.name.split("?")[0],t=X(i.size),s=k.basename(e),o=k.join(k.basename(r.empConfig.build.outDir),k.dirname(e)),a=ps.readFileSync(k.join(r.empConfig.build.outDir,e)),f=a.length,g=ls(a),P=us(g)(X(g));return{size:f,folder:o,name:s,gzippedSize:g,sizeLabel:t,gzipSizeLabel:P}};X=i=>{let e=i/1e3;return`${e.toFixed(e<1?2:1)} kB`},ys=i=>ms.test(i)?U(i):fs.test(i)?S(i):cs.test(i)?j(i):ie(i)});var ft={};F(ft,{default:()=>ws});import{rspack as vs}from"@rspack/core";import bs from"webpack-dev-server";var Oe,ws,ht=m(()=>{"use strict";n();K();E();w();G();v();Oe=class extends O{get rspackDevConfig(){return y(r.rsConfig,{stats:{all:r.empConfig.debug.devShowAllLog,colors:!0,assets:!1,chunks:!1,entrypoints:!1,timings:!1,version:!1,errors:!0,warnings:!0},devServer:{open:!1,setupExitSignals:!0}})}async devServerConfig(){let e=Object.assign({},r.rsConfig.devServer);if(this.isHttps&&(e.https===!0&&delete e.https,!e.server)){let[t,s]=await this.getcert();e.server={type:"https",options:{key:t,cert:s}}}return e}async run(){let e=vs(this.rspackDevConfig);if(!r.rsConfig.devServer){p.error("devServer is not defined in config");return}let t=await this.devServerConfig(),s=new bs(t,e);this.startOpen(),r.empConfig.lifeCycle.beforeDevServe&&await r.empConfig.lifeCycle.beforeDevServe(),await s.start();let o=a=>{let f=a?.toJson({all:!1,colors:!1,assets:!1,chunks:!1,timings:!0});console.log(`
17
+ `),Q(f.time)};r.debug.showPerformance&&e.hooks.afterDone.tap("done",o),s.middleware?.waitUntilValid(a=>{r.debug.showPerformance||o(a),r.empConfig.lifeCycle.afterDevServe&&r.empConfig.lifeCycle.afterDevServe()})}},ws=new Oe});import Cs from"https";import xs from"compression";import Ss from"cors";import Es from"express";var Y,ut=m(()=>{"use strict";n();G();Y=class extends O{app;async init(){let e=Es();e.use(xs()),e.use(Ss()),this.app=e}async server(){if(this.isHttps){let[e,t]=await this.getcert();Cs.createServer(typeof this.isHttps!="boolean"?this.isHttps:{key:e,cert:t},this.app).listen(this.sf.port,async()=>{this.startOpen(),await this.onReady()})}else this.app.listen(this.sf.port,async()=>{this.startOpen(),await this.onReady()})}async onReady(){}async middleware(){}async start(){await this.init(),await this.middleware(),await this.server()}}});var Pe={};F(Pe,{ServeScript:()=>Z,default:()=>js});import Os from"node:fs";import Ps from"node:fs/promises";import ks from"path";import $s from"express";var Z,js,ke=m(()=>{"use strict";n();K();E();v();ut();Z=class extends Y{timing=0;async run(){if(this.timing=Date.now(),!Os.existsSync(r.outDir))return p.sysError(`emp serve must be executed after emp build,${r.outDir} not exist!`);r.empConfig.lifeCycle.beforeServe&&await r.empConfig.lifeCycle.beforeServe(),this.start()}async middleware(){let e=r.resolve(r.rsConfig.output?.path);this.app.use($s.static(e));let t=await Ps.readFile(ks.join(e,"index.html"),"utf8");this.app.get("*",(s,o)=>o.send(t))}async onReady(){Q(Date.now()-this.timing),r.empConfig.lifeCycle.afterServe&&await r.empConfig.lifeCycle.afterServe()}},js=new Z});var gt={};F(gt,{default:()=>Ts});import{rspack as Ds}from"@rspack/core";var $e,Ts,dt=m(()=>{"use strict";n();K();E();G();v();$e=class extends O{isWatchMode=!1;rspackConfig;isuseServe=!1;isStartServe=!1;watchMode(){this.isWatchMode&&this.rspackConfig.optimization&&(this.rspackConfig.optimization.moduleIds="named",this.rspackConfig.optimization.chunkIds="named",this.rspackConfig.watch=!0)}async startServe(){if(!this.isuseServe||this.isStartServe)return;this.isStartServe=!0;let{default:e}=await Promise.resolve().then(()=>(ke(),Pe));await e.setup("serve",r.cliOptions)}async run(){await r.empConfig.lifeCycle.beforeBuild(),this.isWatchMode=!!r.cliOptions.watch,this.isuseServe=!!r.cliOptions.serve,this.rspackConfig=r.rsConfig,this.isWatchMode&&this.watchMode(),Ds(this.rspackConfig,async(e,t)=>{if(console.log(`
18
+ `),r.debug.showScriptDebug&&console.log(t?.toString()),e!==null){p.error(e.stack||e),e.message&&p.error(e.message);return}if(!t){p.red("Stats is Undefined.");return}t.hasErrors()&&(p.error(t.toString({all:!1,colors:!0,errors:!0})),p.red("Failed to compile."),process.exit(1)),t.hasWarnings()&&(p.yellow("Compiled with warnings."),p.warn(t.toString({all:!1,chunks:!1,assets:!1,colors:!0,errors:!0,warnings:!0}))),await mt(t),this.startServe(),await r.empConfig.lifeCycle.afterBulid()})}},Ts=new $e});n();import{rspack as qr}from"@rspack/core";n();v();import Rs from"node:process";import{program as $}from"commander";function yt(){$.version(r.empPkg.version,"-v, --version").usage("<command> [options]"),$.command("dev").description("Dev \u6A21\u5F0F").option("-e, --env <env>","\u90E8\u7F72\u73AF\u5883 dev\u3001test\u3001prod").option("-rd, --doctor","\u5F00\u542Frsdoctor,\u53EF\u901A\u8FC7debug.rsdoctor\u64CD\u4F5C").option("-h, --hot","\u662F\u5426\u4F7F\u7528\u70ED\u66F4\u65B0 \u9ED8\u8BA4\u542F\u52A8").option("-o, --open","\u662F\u5426\u6253\u5F00\u8C03\u8BD5\u9875\u9762 \u9ED8\u8BA4\u4E0D\u6253\u5F00").option("-t, --ts","\u751F\u6210\u7C7B\u578B\u6587\u4EF6 \u9ED8\u8BA4\u4E3A false").option("-pr, --profile","\u7EDF\u8BA1\u6A21\u5757\u6D88\u8017").option("-cl, --clearLog <clearLog>","\u6E05\u7A7A\u65E5\u5FD7 \u9ED8\u8BA4\u4E3A true").option("-ev, --env-vars <key=value>","\u5B9A\u4E49\u4E00\u4E2A\u73AF\u5883\u53D8\u91CF -ev key=value \u591A\u4E2A\u73AF\u5883\u53D8\u91CF\u91CD\u590D\u8C03\u7528 -ev key=value -ev key=value",(i,e)=>{let[t,s]=i.split("=");return e[t]=s,e},{}).action(async i=>{let{default:e}=await Promise.resolve().then(()=>(ht(),ft));await e.setup("dev",i)}),$.command("build").description("Build \u6A21\u5F0F").option("-e, --env <env>","\u90E8\u7F72\u73AF\u5883 dev\u3001test\u3001prod").option("-rd, --doctor","\u5F00\u542Frsdoctor,\u53EF\u901A\u8FC7debug.rsdoctor\u64CD\u4F5C").option("-a, --analyze","\u751F\u6210\u5206\u6790\u62A5\u544A \u9ED8\u8BA4\u4E3A false").option("-t, --ts","\u751F\u6210\u7C7B\u578B\u6587\u4EF6 \u9ED8\u8BA4\u4E3A false").option("-pr, --profile","\u7EDF\u8BA1\u6A21\u5757\u6D88\u8017").option("-cl, --clearLog <clearLog>","\u6E05\u7A7A\u65E5\u5FD7 \u9ED8\u8BA4\u4E3A true").option("-w, --watch","watch \u6A21\u5F0F").option("-sv, --serve","watch \u6A21\u5F0F\u4E0B\u542F\u52A8serve").option("-ev, --env-vars <key=value>","\u5B9A\u4E49\u4E00\u4E2A\u73AF\u5883\u53D8\u91CF -ev key=value \u591A\u4E2A\u73AF\u5883\u53D8\u91CF\u91CD\u590D\u8C03\u7528 -ev key=value -ev key=value",(i,e)=>{let[t,s]=i.split("=");return e[t]=s,e},{}).action(async i=>{let{default:e}=await Promise.resolve().then(()=>(dt(),gt));await e.setup("build",i)}),$.command("serve").description("Server \u6A21\u5F0F").option("-cl, --clearLog <clearLog>","\u6E05\u7A7A\u65E5\u5FD7 \u9ED8\u8BA4\u4E3A true").action(async i=>{let{default:e}=await Promise.resolve().then(()=>(ke(),Pe));await e.setup("serve",i)}),$.command("dts").description("\u62C9\u53D6 remote \u9879\u76EE\u7684 d.ts").option("-p, --typingsPath <typingsPath>","\u4E0B\u8F7D\u76EE\u5F55").option("-e, --env <env>","\u90E8\u7F72\u73AF\u5883 dev\u3001test\u3001prod").action(i=>{}),$.command("init").description("\u521D\u59CB\u5316 emp \u9879\u76EE").option("-d, --data [data]","JSON\u6570\u636E http\u5730\u5740 \u6216\u8005 \u6587\u4EF6\u8DEF\u5F84\u76F8\u5BF9\u3001\u7EDD\u5BF9\u8DEF\u5F84").action(i=>{}),$.parse(Rs.argv)}n();z();v();import vt from"node:fs/promises";import je from"node:path";var Ls=/(?:(?:import|export)\s?(?:type)?\s?(?:(?:\{[^;\n]+\})|(?:[^;\n]+))\s?from\s?['"][^;\n]+['"])|(?:import\(['"][^;\n]+?['"]\))/g,As=/(?:import|export)\s?(?:type)?\s?\{?.+\}?\s?from\s?['"](.+)['"]/,Ns=/import\(['"]([^;\n]+?)['"]\)/,De=class{list=[];outDir=r.resolve("dist");aliasName="@empjs/cli";async setup(e,t){e&&(this.outDir=e),t&&(this.aliasName=t);let s=await this.readDts();await this.writeCode(s)}async readDts(){this.list=await R([`${r.empConfig.build.outDir}/**/*.d.ts`],{windowsPathsNoEscape:!0});let e=[];this.list.map(s=>{s=r.resolve(s),e.push(this.readFile(s))});let t=await Promise.all(e);return t=t.map(s=>this.replaceAliasPath(s)),t}async readFile(e){let t=await vt.readFile(e,{encoding:"utf-8"});return{src:e,code:t}}replaceAliasPath({src:e,code:t}){t=t.replace(Ls,o=>{let a=o.match(As);if(a||(a=o.match(Ns)),a&&a[1]){let f=a[1];if(!f.startsWith("."))return o;let g=je.resolve(je.dirname(e),f).replace(this.outDir,this.aliasName);return o.replace(a[1],g)}return o});let s=e.replace(this.outDir,this.aliasName).replace(".d.ts","");return s.endsWith("/index")&&(s=s.replace("/index","")),t=this.warpDeclareModule(s,t),{code:t,src:e,mod:s}}warpDeclareModule(e,t){return`declare module '${e}' {\r
17
19
  ${t}}\r
18
- `}async writeCode(e){let t="";e.map(s=>{t+=s.code}),await yt.writeFile($e.join(this.outDir.replace("dist","types"),"type.d.ts"),t)}},Fs=new je;v();z();function Yo(i){return i}export{Yo as defineConfig,Fs as dts,Ne as empHelper,Vo as rspack,dt as runScript,o as store};
20
+ `}async writeCode(e){let t="";e.map(s=>{t+=s.code}),await vt.writeFile(je.join(this.outDir.replace("dist","types"),"type.d.ts"),t)}},Fs=new De;v();z();function Kr(i){return i}export{Kr as defineConfig,Fs as dts,Ne as empHelper,qr as rspack,yt as runScript,r as store};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@empjs/cli",
3
- "version": "3.1.0",
3
+ "version": "3.1.13.hotfix-1014",
4
4
  "description": "emp",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -67,9 +67,8 @@
67
67
  "tsup": "^8.1.0"
68
68
  },
69
69
  "dependencies": {
70
- "@rsdoctor/rspack-plugin": "^0.4.2",
71
- "@rspack/core": "1.0.5",
72
- "@rspack/dev-server": "1.0.5",
70
+ "@rsdoctor/rspack-plugin": "^0.4.6",
71
+ "@rspack/core": "1.0.9",
73
72
  "@swc/helpers": "^0.5.13",
74
73
  "address": "^2.0.2",
75
74
  "chalk": "^5.3.0",
@@ -83,16 +82,15 @@
83
82
  "glob": "^10.3.15",
84
83
  "gzip-size": "^7.0.0",
85
84
  "html-webpack-plugin": "^5.6.0",
86
- "jiti": "^1.21.0",
85
+ "jiti": "2.0.0",
87
86
  "less-loader": "^12.2.0",
88
87
  "open": "^10.1.0",
89
- "sass-embedded": "^1.78.0",
90
- "sass-loader": "^16.0.1",
91
- "source-map-loader": "^5.0.0",
88
+ "sass-embedded": "^1.79.4",
89
+ "sass-loader": "^16.0.2",
92
90
  "typescript-plugin-css-modules": "^5.1.0",
93
91
  "webpack-bundle-analyzer": "^4.10.2",
94
92
  "webpack-chain": "^6.5.1",
95
- "@empjs/share": "3.1.0"
93
+ "webpack-dev-server": "^5.1.0"
96
94
  },
97
95
  "scripts": {
98
96
  "dev": "tsup --watch --env.ENV dev",