@empjs/cli 3.1.13 → 3.2.0-beta.1
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 +9 -10
- package/dist/index.d.cts +68 -43
- package/dist/index.d.ts +68 -43
- package/dist/index.js +8 -9
- package/package.json +3 -9
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var Ht=Object.create;var z=Object.defineProperty;var _t=Object.getOwnPropertyDescriptor;var Wt=Object.getOwnPropertyNames;var qt=Object.getPrototypeOf,Vt=Object.prototype.hasOwnProperty;var c=(s,e)=>()=>(s&&(e=s(s=0)),e);var T=(s,e)=>{for(var t in e)z(s,t,{get:e[t],enumerable:!0})},Le=(s,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Wt(e))!Vt.call(s,o)&&o!==t&&z(s,o,{get:()=>e[o],enumerable:!(i=_t(e,o))||i.enumerable});return s};var l=(s,e,t)=>(t=s!=null?Ht(qt(s)):{},Le(e||!s||!s.__esModule?z(t,"default",{value:s,enumerable:!0}):t,s)),Xt=s=>Le(z({},"__esModule",{value:!0}),s);var r=c(()=>{"use strict"});var d,Qt,x,Kt,Yt,Zt,ee,I,es,ts,D,te,ss,se,L,h,R=c(()=>{"use strict";r();d=l(require("chalk"),1),Qt=d.default.hex("#1abc9c"),x=d.default.hex("#16a085"),Kt=d.default.hex("#2ecc71"),Yt=d.default.hex("#27ae60"),Zt=d.default.hex("#e74c3c"),ee=d.default.hex("#c0392b"),I=d.default.hex("#f1c40f"),es=d.default.hex("#f39c12"),ts=d.default.hex("#3498db"),D=d.default.hex("#2980b9"),te=d.default.hex("#ecf0f1"),ss=d.default.hex("#fd79a8"),se=d.default.hex("#e84393"),L=d.default.hex("#7f8c8d"),h={lightGreen:Qt,green:x,lightCyan:Kt,cyan:Yt,lightRed:Zt,red:ee,yellow:I,orange:es,lightBlue:ts,blue:D,white:te,lightMagenta:ss,magenta:se,gray:L}});var ie,n,E=c(()=>{"use strict";r();R();ie=class{brandName="";fullName="";logLevel="debug";isLogTime=!1;setup({brandName:e,logLevel:t,fullName:i}){this.brandName=` [${e}] `,this.fullName=` ${i} `,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,12 @@
|
|
|
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 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 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 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("."),r=Math.max(t.length,s.length),a=0;for(let f=0;f<r;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 Ve,qe,Xe,ys,Qe,Ke,vs,Ye=m(()=>{"use strict";n();Ve=l(require("fs"),1),qe=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=qe.default.resolve(o.root,e);if(Ve.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(),r;e&&!s.has(e)?r=new Set([e]):r=s;let a=new Set(["EADDRINUSE","EACCES"]);for(;t<=he;)try{return await xs(t,r)}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 r=et.default.createServer();r.unref(),r.on("error",s),r.listen(i,e,()=>{let{port:a}=r.address();r.close(()=>{t(a)})})}),xs=async(i,e)=>{let t=new Set(["EADDRNOTAVAIL","EINVAL"]);for(let s of e)try{await Cs(i,s)}catch(r){if(!t.has(r.code))throw r}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:r}=this.imf;return ge.default.format({protocol:t,hostname:e,port:s,pathname:r})}prettyPrintUrl(e){let{protocol:t,port:s,pathname:r}=this.imf;return ge.default.format({protocol:t,hostname:e,port:st.default.bold(s),pathname:r})}},L=new de});var rt,ot,nt,it,Ss,Es,at,pt=m(()=>{"use strict";n();rt=require("child_process"),ot=require("util");v();S();nt=(0,ot.promisify)(rt.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: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}},at=Es});var ve,_,be=m(()=>{"use strict";n();ue();ye();C();v();ve=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 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=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&&at(this.sf.url)}async setup(e,t){p.time(`[${e}]Setup`),await o.setup(e,t),o.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}=o.empConfig.server||{};return e==="https"||typeof e=="object"&&e.type==="https"||t===!0||s===!0}getcert(){return Promise.all([we.default.readFile(o.resource.key),we.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))}}});function Os(){let i=[`import 'core-js/${o.empConfig.build.polyfill.coreJsFeatures}'`].join(`
|
|
11
|
-
`);return ce(i)}var V,W,I,q=m(()=>{"use strict";n();V=l(require("html-webpack-plugin"),1);C();v();W=class{constructor(){}apply(e){let{webpack:t}=e;o.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=>{V.default.getHooks(t).alterAssetTagGroups.tapPromise(this.PluginName,async s=>(this.chunk&&!s.plugin.userOptions.chunks?.includes(this.chunk)||this.files.map(r=>{let{pos:a,...f}=r;(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();q();X=class{op={};constructor(e={}){this.op=e}async afterGetEmpOptions(){await _.setup(),this.op.afterGetEmpOptions&&await this.op.afterGetEmpOptions()}async beforePlugin(){o.empConfig.build.polyfill.mode==="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,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: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:{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: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 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:r}=this.store.empConfig.css||{sass:{}};r.mode==="modern"&&(s.implementation=r.implementation?r.implementation:require.resolve("sass-embedded"),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 Se});var b,Ee,vt,bt=m(()=>{"use strict";n();b=l(require("path"),1);z();q();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 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(V.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}"),r=await(0,$.glob)([s],{windowsPathsNoEscape:!0});r=r.map(a=>a.replace(`${t}${b.default.sep}`,"")),r.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:r}=s;return{parser:this.swcParser(e),transform:{},target:t,externalHelpers:r,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,o,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();q();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")),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);$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])}},o=new De});function Rs(i,e){let t=[i,e],s=["File","Size","Gzipped"].reduce((r,a,f)=>{let g=t[f],O=a;return g&&(O=a.length<g?a+" ".repeat(g-a.length):a),`${r+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 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 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<r){let se=" ".repeat(r-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
|
-
${
|
|
13
|
-
${
|
|
14
|
-
`),
|
|
15
|
-
`)}function
|
|
16
|
-
${t}}\
|
|
17
|
-
`}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});
|
|
9
|
+
`)}},n=new ie});var ae={};T(ae,{clearConsole:()=>re,deepAssign:()=>y,ensureArray:()=>is,getLanIp:()=>$,getPkgVersion:()=>oe,importJsVm:()=>pe,jsonFilter:()=>os,timeFormat:()=>U,vCompare:()=>ne});function re(){process.stdout.write(process.platform==="win32"?"\x1B[2J\x1B[0f":"\x1B[2J\x1B[3J\x1B[H")}function y(s,...e){for(let t of e)for(let i in t){let o=t[i],a=s[i];if(Object(o)==o&&Object(a)===a){s[i]=y(a,o);continue}s[i]=t[i]}return s}var Re,Ae,Ne,Me,$,oe,is,os,ne,U,pe,C=c(()=>{"use strict";r();Re=require("address"),Ae=l(require("chalk"),1),Ne=require("default-gateway"),Me=l(require("fs-extra"),1),$=()=>{let{int:s}=(0,Ne.gateway4sync)();return(0,Re.ip)(s||"")||"127.0.0.1"},oe=s=>{try{let{version:e}=Me.default.readJSONSync(s);return e}catch{return}};is=s=>Array.isArray(s)?s:[s],os=(s={},e=[])=>Object.keys(s).filter(t=>!e.includes(t)).reduce((t,i)=>(t[i]=s[i],t),{}),ne=(s="",e="")=>{let t=s.replace("^","").split("."),i=e.replace("^","").split("."),o=Math.max(t.length,i.length),a=0;for(let u=0;u<o;u++){let g=t.length>u?t[u]:0,S=isNaN(Number(g))?g.charCodeAt():Number(g),A=i.length>u?i[u]:0,f=isNaN(Number(A))?A.charCodeAt():Number(A);if(S<f){a=-1;break}else if(S>f){a=1;break}}return a},U=s=>{s=s/1e3;let e=i=>Ae.default.bold(i);if(s<1)return`${s*1e3} ms`;if(s<10){let i=s>=.01?2:3;return`${e(s.toFixed(i))} s`}if(s<60)return`${e(s.toFixed(1))} s`;let t=s/60;return`${e(t.toFixed(2))} m`},pe=s=>`data:text/javascript,${s}`});var le={};T(le,{chalk:()=>Fe.default,color:()=>h,glob:()=>M.glob,logger:()=>n,utils:()=>ae});var Fe,M,F=c(()=>{"use strict";r();Fe=l(require("chalk"),1),M=require("glob");R();C();E()});var Ge,ze,Ie,rs,Ue,Be,ns,Je=c(()=>{"use strict";r();Ge=l(require("fs"),1),ze=l(require("path"),1),Ie=require("jiti");w();E();rs=["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"],Ue=(0,Ie.createJiti)(__filename,{interopDefault:!0}),Be=async()=>ns(),ns=()=>{n.time("[store]GetEmpConfigPath");let s;for(let e of rs){let t=ze.default.resolve(p.root,e);if(Ge.default.existsSync(t)){s=t;break}}return n.timeEnd("[store]GetEmpConfigPath"),s}});var B,He=c(()=>{"use strict";r();B=class{op={};constructor(e={}){this.op=e}async afterGetEmpOptions(){this.op.afterGetEmpOptions&&await this.op.afterGetEmpOptions()}async beforePlugin(){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 _e,ce,We,qe=c(()=>{"use strict";r();_e=l(require("fs"),1);F();Je();C();He();ce=class{store;appSrc="src";appEntry="";base="";target=[];assign(e,t){return t=t||{},y(e,t)}isESM=!1;checkIsESM(e){return["es3","es5"].indexOf(e)===-1}lifeCycle;async setup(e){this.store=e,await this.syncEmpOptions(),await this.setupEmpOptions(),this.lifeCycle=new B(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:i,appEntry:o}=this.store.empOptions;t&&(this.appSrc=t),i&&(this.base=i),o&&(this.appEntry=o)}async setupEmpOptions(){await this.store.server.setupOnEmpOptionSync()}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&&(this.store.server.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:i,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}${i}/[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",i={};return Object.keys(e).map(o=>{t==="all"?(i[`import.meta.env.${o}`]=JSON.stringify(e[o]),i[`process.env.${o}`]=JSON.stringify(e[o])):t==="esm"?i[`import.meta.env.${o}`]=JSON.stringify(e[o]):t==="cjs"?i[`process.env.${o}`]=JSON.stringify(e[o]):t==="none"&&(i[`${o}`]=JSON.stringify(e[o]))}),i}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(){n.time("[store][empConfig]SyncEmpOptions");let e=await Be();if(!e||!_e.default.existsSync(e))return;let t=await Ue(e);typeof t=="function"?this.store.empOptions=await t(this.store):this.store.empOptions=t||{},n.timeEnd("[store][empConfig]SyncEmpOptions")}get moduleTransformRule(){let{moduleTransform:e}=this.store.empOptions,t=this.assign({defaultExclude:!1},e),i={and:[],not:[]};return t.defaultExclude===!0&&i.and.push(/(node_modules|bower_components)/),t?.exclude&&(i.and=i.and.concat(t.exclude)),e?.include&&(i.not=t.include),i}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}},We=new ce});var Ve,me,Xe,Qe=c(()=>{"use strict";r();Ve=l(require("fs-extra"),1),me=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 Ve.default.exists(e)){let i={tsConfig:e};this.store.merge({resolve:i})}}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 me});var ue,Ke,Ye=c(()=>{"use strict";r();ue=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,i={},{sass:o}=this.store.empConfig.css||{sass:{}};o.mode==="modern"&&(i.implementation=o.implementation?o.implementation:require.resolve("sass-embedded"),i.api="modern-compiler",i.sourceMap=this.store.empConfig.build.sourcemap,o.sassOptions&&(i.sassOptions=o.sassOptions)),typeof o.warnRuleAsWarning<"u"&&(i.warnRuleAsWarning=o.warnRuleAsWarning),typeof o.webpackImporter<"u"&&(i.webpackImporter=o.webpackImporter),this.store.chain.merge({module:{rule:{[e.sass]:{test:/\.(sass|scss)$/,use:{[t.sass]:{loader:require.resolve("sass-loader"),options:i}},type:"css/auto"}}}})}async less(){let{rule:e,use:t}=this.store.chainName,i={loader:require.resolve("less-loader"),options:{lessOptions:{javascriptEnabled:!0}}};this.store.chain.merge({module:{rule:{[e.less]:{test:/\.less$/,use:{[t.less]:i},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 ue});function ps(){let s=[`import 'core-js/${p.empConfig.build.polyfill.coreJsFeatures}'`].join(`
|
|
10
|
+
`);return pe(s)}var H,J,G,_=c(()=>{"use strict";r();H=l(require("html-webpack-plugin"),1);C();w();J=class{constructor(){}apply(e){let{webpack:t}=e;p.empConfig.build.polyfill.entryCdn||new t.EntryPlugin(e.context,ps(),{name:void 0}).apply(e)}},G=class{PluginName="HtmlEmpInjectPlugin";chunk="";files=[];constructor(e,t="",i=""){this.PluginName=`${this.PluginName}-${t}`,this.files=e,this.chunk=i}apply(e){e.hooks.compilation.tap(this.PluginName,t=>{H.default.getHooks(t).alterAssetTagGroups.tapPromise(this.PluginName,async i=>(this.chunk&&!i.plugin.userOptions.chunks?.includes(this.chunk)||this.files.map(o=>{let{pos:a,...u}=o;(a==="body"?i.bodyTags:i.headTags).push({attributes:{},voidTag:!1,meta:{plugin:void 0},tagName:"script",...u})}),i))})}}});var b,he,Ze,et=c(()=>{"use strict";r();b=l(require("path"),1);F();_();he=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,i){i=i||this.store.resolve(b.default.join(this.store.empConfig.appSrc,e));let o=this.setChunk(e),a=[i];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(H.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(){n.time("setAutoPage");let e=this.store.empConfig.autoPages?.path||"pages",t=b.default.join(this.store.appSrc,e),i=b.default.join(t,"**","*.{ts,tsx,jsx,js}"),o=await(0,M.glob)([i],{windowsPathsNoEscape:!0});o=o.map(a=>a.replace(`${t}${b.default.sep}`,"")),o.map(a=>{let u=this.store.empConfig.entries[a]||{};this.setEntryItem(a,{...this.store.empConfig.html,...u},b.default.join(t,a))}),n.timeEnd("setAutoPage")}async setDefaultEntry(){n.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,M.glob)([e],{windowsPathsNoEscape:!0});if(t[0]){let i=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(i,this.store.empConfig.html,t[0])}n.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 he});var fe,ge,tt,st=c(()=>{"use strict";r();fe=l(require("path"),1);C();ge=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:i}=this.store.empConfig.build,{externalHelpers:o}=i;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",fe.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=fe.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:i}=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:{[i.swc]:{loader:"builtin:swc-loader",options:this.swcTsOptions}}},[t.javascript]:{test:/\.((m|c)?js|jsx)$/,exclude:e,use:{[i.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"}}}})}},tt=new ge});var de,j,ye,it,ot=c(()=>{"use strict";r();de=l(require("fs"),1),j=l(require("@rspack/core"),1);_();ye=class{store;async setup(e){this.store=e;let t=[this.define(),this.anylayze(),this.progress(),this.copy(),this.minify(),this.redoctor()];this.beforeLifeCycle(),await this.store.empConfig.lifeCycle.beforePlugin(),await Promise.all(t),await this.store.empConfig.lifeCycle.afterPlugin()}beforeLifeCycle(){let{store:e}=this;e.empConfig.build.polyfill.mode==="entry"&&e.chain.plugin("empPolyfill").use(J)}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(j.default.DefinePlugin,[this.store.empConfig.define])}async copy(){let e=this.store.resolve("public");de.default.existsSync(e)&&de.default.readdirSync(e).length>0&&this.store.chain.plugin(this.store.chainName.plugin.copy).use(j.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(j.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(j.default.SwcJsMinimizerRspackPlugin,[this.store.empConfig.build.minOptions]),this.store.chain.optimization.minimizer(this.store.chainName.minimizer.minCss).use(j.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])}sourceMapDevToolPlugin(){if(!this.store.empConfig.build.sourcemap)return;let e={};typeof this.store.empConfig.build.sourcemap=="object"&&(e=this.store.empConfig.build.sourcemap),this.store.chain.plugin(this.store.chainName.plugin.sourceMapDevTool).use(j.default.SourceMapDevToolPlugin,[e])}},it=new ye});var be,rt,nt=c(()=>{"use strict";r();Qe();Ye();et();st();ot();be=class{store;async setup(e){this.store=e;let t=[Xe.setup(this.store),tt.setup(this.store),it.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()}},rt=new be});async function ct(s,e="localhost"){if(s!==as&&(s<pt||s>ve))throw new Error(`Port number must lie between ${pt} and ${ve}`);let t=s,i=ls(),o;e&&!i.has(e)?o=new Set([e]):o=i;let a=new Set(["EADDRINUSE","EACCES"]);for(;t<=ve;)try{return await ms(t,o)}catch(u){if(!a.has(u.code))throw u;t+=1}throw new Error("No available ports found")}var at,lt,pt,ve,as,ls,cs,ms,mt=c(()=>{"use strict";r();at=l(require("net"),1),lt=l(require("os"),1),pt=1024,ve=65535,as=443,ls=()=>{let s=lt.default.networkInterfaces(),e=new Set([void 0,"0.0.0.0"]);for(let t of Object.values(s))if(t)for(let i of t)e.add(i.address);return e},cs=(s,e)=>new Promise((t,i)=>{let o=at.default.createServer();o.unref(),o.on("error",i),o.listen(s,e,()=>{let{port:a}=o.address();o.close(()=>{t(a)})})}),ms=async(s,e)=>{let t=new Set(["EADDRNOTAVAIL","EINVAL"]);for(let i of e)try{await cs(s,i)}catch(o){if(!t.has(o.code))throw o}return s}});var Ce,ut,we,W,ht=c(()=>{"use strict";r();Ce=l(require("url"),1),ut=l(require("chalk"),1);R();C();we=class{imf={protocol:"",port:8e3,pathname:"/"};host="0.0.0.0";urls={lanUrlForConfig:"",lanUrlForTerminal:L("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==="::",i;if(t){i="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 i=e,this.urls.lanUrlForConfig=e,this.urls.lanUrlForTerminal=this.prettyPrintUrl(this.urls.lanUrlForConfig);this.urls.localUrlForTerminal=this.prettyPrintUrl(i),this.urls.localUrlForBrowser=this.formatUrl(i)}getLanIp=$;formatUrl(e){let{protocol:t,port:i,pathname:o}=this.imf;return Ce.default.format({protocol:t,hostname:e,port:i,pathname:o})}prettyPrintUrl(e){let{protocol:t,port:i,pathname:o}=this.imf;return Ce.default.format({protocol:t,hostname:e,port:ut.default.bold(i),pathname:o})}},W=new we});var gt,dt,yt,ft,us,hs,bt,vt=c(()=>{"use strict";r();gt=require("child_process"),dt=require("util");w();E();yt=(0,dt.promisify)(gt.exec),ft=["Google Chrome Canary","Google Chrome Dev","Google Chrome Beta","Google Chrome","Microsoft Edge","Brave Browser","Vivaldi","Chromium"],us=async()=>{let s=process.env.BROWSER;if(!s||!ft.includes(s)){let{stdout:e}=await yt("ps cax");s=ft.find(t=>e.includes(t))}return s},hs=async s=>{if(process.platform==="darwin")try{let t=await us();if(t){let i=`osascript openChrome.applescript "${encodeURI(s)}" "${t}"`;return await yt(i,{cwd:p.resource.dir}),!0}}catch(t){n.debug(t)}try{let{default:t}=await import("open");return await t(s),!0}catch(t){return n.error("Failed to open start URL."),n.error(t),!1}},bt=hs});var xe,q,Ct=c(()=>{"use strict";r();xe=l(require("fs/promises"),1);F();R();mt();ht();vt();C();q=class{ip=$();host=this.ip;isAutoDevBase=!1;isHttps=!1;httpsType="default";protocol="http";port;store;publicPath="/";publicHasHttp=!1;isOpenBrower=!1;url="";urls={localUrlForBrowser:"",localUrlForTerminal:"",lanUrlForTerminal:"",lanUrlForConfig:""};constructor(e){this.store=e}async setupOnEmpOptionSync(){this.setHttps(),await this.setAutoDevBase()}get config(){return{}}async setupOnStore(){let{store:e}=this;this.publicPath=e.rsConfig.output?.publicPath==="auto"?"/":e.rsConfig.output?.publicPath||"/",this.isOpenBrower=!!e.empConfig.server.open,this.protocol=this.isHttps?"https":"http",this.host=e.empConfig.server.host?e.empConfig.server.host:this.ip,e.empConfig.server.port!==this.port&&this.setPort(e.empConfig.server.port),W.setup(this),this.publicPath&&(this.publicPath.indexOf("http://")>-1||this.publicPath.indexOf("https://")>-1)?(this.url=this.publicPath,this.publicHasHttp=!0,this.urls.localUrlForTerminal=W.prettyPrintUrl("localhost")):(this.urls=W.urls,this.url=this.urls.localUrlForBrowser)}startOpen(){let{urls:e}=this;this.publicHasHttp?(n.info(`${x("\u279C")} Local: ${n.link(e.localUrlForTerminal)}`),n.info(`${x("\u279C")} Network: ${n.link(this.publicPath)}`)):(n.info(`${x("\u279C")} Local: ${n.link(e.localUrlForTerminal)}`),n.info(`${x("\u279C")} Network: ${n.link(e.lanUrlForTerminal)}
|
|
11
|
+
`)),this.isOpenBrower&&bt(this.url)}getcert(){let{store:e}=this;return Promise.all([xe.default.readFile(e.resource.key),xe.default.readFile(e.resource.cert)])}setHttps(){let{store:e}=this,{server:t,https:i}=e.empOptions.server||{};this.isHttps=t==="https"||typeof t=="object"&&t.type==="https"||i===!0}async setAutoDevBase(){let{store:e}=this;this.isAutoDevBase=!!e.empOptions.autoDevBase&&e.mode==="development"&&!this.isHttpBase,this.isAutoDevBase&&(this.protocol=this.isHttps?"https":"http",await this.setPort(e.empOptions.server?.port),e.empOptions.base=`${this.protocol}://${this.host}:${this.port}/`,e.empOptions.server=e.deepAssign({port:this.port,client:{webSocketURL:`${this.isHttps?"wss":"ws"}://${this.host}:${this.port}/ws`}},e.empOptions.server))}async setPort(e){this.port=e||8e3,this.port=await ct(this.port,this.host)}get isHttpBase(){let e=this.store.empOptions.base||"";return e.indexOf("http://")>-1||e.indexOf("https://")>-1}}});var wt,xt=c(()=>{"use strict";r();wt={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",sourceMapDevTool:"sourceMapDevTool"},minimizer:{minJs:"minJs",minCss:"minCss"}}});var St,v,Ot,Et,Se,p,w=c(()=>{"use strict";r();St=l(require("fs/promises"),1),v=l(require("path"),1),Ot=l(require("util"),1);E();C();qe();nt();Ct();Et=l(require("webpack-chain"),1);xt();_();Se=class{empPkg={dependencies:{},devDependencies:{},version:"2.0.0",name:""};pkg={dependencies:{},devDependencies:{},version:"0.0.0",name:""};root=process.cwd();empRoot=v.default.resolve(__dirname,__filename).replace(`${v.default.sep}dist${v.default.sep}index.js`,"");empSource=v.default.resolve(this.empRoot,"dist");resolve=e=>v.default.isAbsolute(e)?e:v.default.resolve(this.root,e);empResolve=e=>v.default.resolve(this.empRoot,e);appSrc="";outDir="";publicDir="";resource={dir:"",key:"",cert:""};chainName=wt;server=new q(this);cacheDir="";mode="development";cliMode="dev";isDev=!0;cliOptions;chain;rsConfig;empOptions={};empConfig;entries={};debug;async setup(e,t){n.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 Et.default,await rt.setup(this),this.setLogger(),this.toConfig(),this.logConfig(),await this.server.setupOnStore(),n.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 i=require(this.empResolve("package.json")),o=require(this.resolve("package.json"));this.empPkg={...this.empPkg,...i},this.pkg={...this.pkg,...o},this.resource.dir=v.default.join(this.empRoot,"resource"),this.resource.cert=v.default.join(this.resource.dir,"emp.cert"),this.resource.key=v.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),n.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=v.default.join(this.root,this.debug.showRsconfig);St.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(n.link("[Compile Config]")),console.log(Ot.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("-","_")}vCompare=ne;deepAssign=y;getLanIp=$;injectTags(e=[],t="",i=""){this.chain.plugin(`${G}-${t}`).use(G,[e,t,i])}},p=new Se});function Cs(s,e){let t=[s,e],i=["File","Size","Gzipped"].reduce((o,a,u)=>{let g=t[u],S=a;return g&&(S=a.length<g?a+" ".repeat(g-a.length):a),`${o+S} `}," ");console.log(D.bold(i))}async function $t(s){let e=s.toJson({all:!1,assets:!0,timings:!0}),i=e.assets.filter(f=>ys(f.name)).map(vs);i.sort((f,N)=>f.size-N.size);let o=Math.max(...i.map(f=>f.sizeLabel.length)),a=Math.max(...i.map(f=>(f.folder+O.default.sep+f.name).length));Cs(a,o);let u=0,g=0;i.forEach(f=>{let{sizeLabel:N}=f,{name:Ut,folder:Bt,gzipSizeLabel:Jt}=f,je=(Bt+O.default.sep+Ut).length,Te=N.length;if(u+=f.size,g+=f.gzippedSize,Te<o){let Z=" ".repeat(o-Te);N+=Z}let De=L(f.folder+O.default.sep)+ws(f.name);if(je<a){let Z=" ".repeat(a-je);De+=Z}n.info(` ${De} ${L(N)} ${Jt}`)});let S=`${D.bold("Total size:")} ${V(u)}`,A=`${D.bold("Gzipped size:")} ${V(g)}`;n.info(`
|
|
12
|
+
${S}
|
|
13
|
+
${A}
|
|
14
|
+
`),n.info(`${x("\u2713")} Ready in ${U(Number(e.time))}
|
|
15
|
+
`)}function X(s=0){n.info(`${x("\u2713")} Ready in ${U(Number(s))}`)}var Pt,O,kt,fs,gs,ds,ys,bs,vs,V,ws,Q=c(()=>{"use strict";r();Pt=l(require("fs"),1),O=l(require("path"),1),kt=require("gzip-size");R();w();E();C();fs=/\.html$/,gs=/\.(?:js|mjs|cjs|jsx)$/,ds=/\.css$/,ys=s=>!/\.map$/.test(s)&&!/\.LICENSE\.txt$/.test(s),bs=s=>s>300*1e3?ee:s>100*1e3?I:te,vs=s=>{let e=s.name.split("?")[0],t=V(s.size),i=O.default.basename(e),o=O.default.join(O.default.basename(p.empConfig.build.outDir),O.default.dirname(e)),a=Pt.default.readFileSync(O.default.join(p.empConfig.build.outDir,e)),u=a.length,g=(0,kt.gzipSizeSync)(a),S=bs(g)(V(g));return{size:u,folder:o,name:i,gzippedSize:g,sizeLabel:t,gzipSizeLabel:S}};V=s=>{let e=s/1e3;return`${e.toFixed(e<1?2:1)} kB`},ws=s=>gs.test(s)?I(s):ds.test(s)?x(s):fs.test(s)?D(s):se(s)});var P,K=c(()=>{"use strict";r();E();C();w();P=class{async setup(e,t){n.time(`[${e}]Setup`),await p.setup(e,t),p.debug.clearLog&&re(),n.title(`${e}`),n.time(`[${e}]Run`),await this.run(),this.processExit(),n.timeEnd(`[${e}]Run`),n.timeEnd(`[${e}]Setup`)}async run(){}processExit(){process.on("SIGINT",function(){process.exit()})}}});var Lt={};T(Lt,{default:()=>xs});var Tt,Dt,jt,Oe,xs,Rt=c(()=>{"use strict";r();Tt=require("@empjs/server"),Dt=require("@rspack/core");Q();C();K();w();jt=new Tt.DevServer,Oe=class extends P{async getRspackDevConfig(){let e=y(p.rsConfig,{stats:{all:p.empConfig.debug.devShowAllLog,colors:!0,assets:!1,chunks:!1,entrypoints:!1,timings:!1,version:!1,errors:!0,warnings:!0},devServer:{open:!1,setupExitSignals:!0}}),{devServer:t}=e;if(p.server.isHttps&&!t.server){let[i,o]=await p.server.getcert();t.server={type:"https",options:{key:i,cert:o}}}return Object.hasOwn(t,"https")&&delete t.https,e}async run(){let{server:e}=p,t=await this.getRspackDevConfig();t=await jt.setConfig(t);let i=(0,Dt.rspack)(t);await p.empConfig.lifeCycle.beforeDevServe(),e.startOpen(),await jt.setup(i,t,p,async o=>{this.showTimeDone(o),await p.empConfig.lifeCycle.afterDevServe()}),p.debug.showPerformance&&i.hooks.afterDone.tap("done",this.showTimeDone)}showTimeDone=e=>{let t=e?.toJson({all:!1,colors:!1,assets:!1,chunks:!1,timings:!0});X(t.time)}},xs=new Oe});var Ee={};T(Ee,{ServeScript:()=>Y,default:()=>Os});var Nt,Ss,At,Y,Os,Pe=c(()=>{"use strict";r();Nt=require("@empjs/server");Q();K();w();Ss=new Nt.ProdServer,At=0,Y=class extends P{async run(){At=Date.now(),await p.empConfig.lifeCycle.beforeServe(),await Ss.setup(p,this.onReady)}onReady=async()=>{p.server.startOpen(),X(Date.now()-At),await p.empConfig.lifeCycle.afterServe()}},Os=new Y});var Ft={};T(Ft,{default:()=>Es});var Mt,ke,Es,Gt=c(()=>{"use strict";r();Mt=require("@rspack/core");Q();E();K();w();ke=class extends P{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(),Ee));await e.setup("serve",p.cliOptions)}async run(){await p.empConfig.lifeCycle.beforeBuild(),this.isWatchMode=!!p.cliOptions.watch,this.isuseServe=!!p.cliOptions.serve,this.rspackConfig=p.rsConfig,this.isWatchMode&&this.watchMode(),(0,Mt.rspack)(this.rspackConfig,async(e,t)=>{if(console.log(`
|
|
16
|
+
`),p.debug.showScriptDebug&&console.log(t?.toString()),e!==null){n.error(e.stack||e),e.message&&n.error(e.message);return}if(!t){n.red("Stats is Undefined.");return}t.hasErrors()&&(n.error(t.toString({all:!1,colors:!0,errors:!0})),n.red("Failed to compile."),process.exit(1)),t.hasWarnings()&&(n.yellow("Compiled with warnings."),n.warn(t.toString({all:!1,chunks:!1,assets:!1,colors:!0,errors:!0,warnings:!0}))),await $t(t),this.startServe(),await p.empConfig.lifeCycle.afterBulid()})}},Es=new ke});var ks={};T(ks,{defineConfig:()=>Ps,empHelper:()=>le,rspack:()=>It.rspack,runScript:()=>$e,store:()=>p});module.exports=Xt(ks);r();var It=require("@rspack/core");r();var zt=l(require("process"),1),k=require("commander");w();function $e(){k.program.version(p.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",(s,e)=>{let[t,i]=s.split("=");return e[t]=i,e},{}).action(async s=>{let{default:e}=await Promise.resolve().then(()=>(Rt(),Lt));await e.setup("dev",s)}),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",(s,e)=>{let[t,i]=s.split("=");return e[t]=i,e},{}).action(async s=>{let{default:e}=await Promise.resolve().then(()=>(Gt(),Ft));await e.setup("build",s)}),k.program.command("serve").description("Server \u6A21\u5F0F").option("-cl, --clearLog <clearLog>","\u6E05\u7A7A\u65E5\u5FD7 \u9ED8\u8BA4\u4E3A true").action(async s=>{let{default:e}=await Promise.resolve().then(()=>(Pe(),Ee));await e.setup("serve",s)}),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(s=>{}),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(s=>{}),k.program.parse(zt.default.argv)}w();F();function Ps(s){return s}0&&(module.exports={defineConfig,empHelper,rspack,runScript,store});
|
|
18
17
|
if (module.exports.default) module.exports = module.exports.default;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
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, SwcJsMinimizerRspackPluginOptions, LightningCssMinimizerRspackPluginOptions, HtmlRspackPluginOptions, RuleSetRule } from '@rspack/core';
|
|
4
|
+
import { Output, Configuration, RspackOptions, Externals, Resolve, DevServer, SourceMapDevToolPluginOptions, SwcJsMinimizerRspackPluginOptions, LightningCssMinimizerRspackPluginOptions, HtmlRspackPluginOptions, RuleSetRule } from '@rspack/core';
|
|
5
5
|
export { rspack } from '@rspack/core';
|
|
6
6
|
import { HtmlTagObject } from 'html-webpack-plugin';
|
|
7
7
|
import { Options } from 'sass-embedded';
|
|
8
8
|
import WPChain from 'webpack-chain';
|
|
9
|
-
import { Configuration as Configuration$1 } from 'webpack-dev-server';
|
|
10
9
|
import * as chalk from 'chalk';
|
|
11
10
|
import chalk__default from 'chalk';
|
|
12
11
|
import { glob } from 'glob';
|
|
@@ -125,13 +124,16 @@ declare class EmpConfig {
|
|
|
125
124
|
* @default true
|
|
126
125
|
*/
|
|
127
126
|
isESM: boolean;
|
|
128
|
-
autoDevSet(): Promise<void>;
|
|
129
127
|
checkIsESM(target: string): boolean;
|
|
130
128
|
lifeCycle: LifeCycle;
|
|
131
129
|
setup(store: GlobalStore): Promise<void>;
|
|
130
|
+
/**
|
|
131
|
+
* 同步完所有配置后的处理
|
|
132
|
+
*/
|
|
133
|
+
private setupEmpOptions;
|
|
132
134
|
chain(): Promise<void>;
|
|
133
135
|
plugins(): Promise<void>;
|
|
134
|
-
get debug(): DebugType
|
|
136
|
+
get debug(): Required<DebugType>;
|
|
135
137
|
get build(): Required<BuildType>;
|
|
136
138
|
get html(): HtmlType;
|
|
137
139
|
get entries(): EntriesType;
|
|
@@ -144,7 +146,7 @@ declare class EmpConfig {
|
|
|
144
146
|
private setDefine;
|
|
145
147
|
get externals(): {};
|
|
146
148
|
get resolve(): _rspack_core.ResolveOptions;
|
|
147
|
-
syncEmpOptions
|
|
149
|
+
private syncEmpOptions;
|
|
148
150
|
get moduleTransformRule(): any;
|
|
149
151
|
get cacheDir(): string;
|
|
150
152
|
get ignoreWarnings(): (RegExp | ((args_0: Error, args_1: _rspack_core.Compilation, ...args_2: unknown[]) => boolean))[];
|
|
@@ -153,6 +155,46 @@ declare class EmpConfig {
|
|
|
153
155
|
} | undefined;
|
|
154
156
|
}
|
|
155
157
|
|
|
158
|
+
declare class StoreServer {
|
|
159
|
+
ip: string;
|
|
160
|
+
host: string;
|
|
161
|
+
isAutoDevBase: boolean;
|
|
162
|
+
isHttps: boolean;
|
|
163
|
+
httpsType: 'default' | 'h2' | 'h3';
|
|
164
|
+
protocol: string;
|
|
165
|
+
port: number;
|
|
166
|
+
store: GlobalStore;
|
|
167
|
+
publicPath: any;
|
|
168
|
+
publicHasHttp: boolean;
|
|
169
|
+
isOpenBrower: boolean;
|
|
170
|
+
url: string;
|
|
171
|
+
urls: {
|
|
172
|
+
localUrlForBrowser: string;
|
|
173
|
+
localUrlForTerminal: string;
|
|
174
|
+
lanUrlForTerminal: string;
|
|
175
|
+
lanUrlForConfig: string;
|
|
176
|
+
};
|
|
177
|
+
constructor(store: GlobalStore);
|
|
178
|
+
/**
|
|
179
|
+
* 获取config后重新适配 server 配置信息
|
|
180
|
+
*/
|
|
181
|
+
setupOnEmpOptionSync(): Promise<void>;
|
|
182
|
+
/**
|
|
183
|
+
* 获取 server 所有配置信息
|
|
184
|
+
*/
|
|
185
|
+
get config(): {};
|
|
186
|
+
/**
|
|
187
|
+
* setupOnEmpOptionSync 之后,store setup 之后
|
|
188
|
+
*/
|
|
189
|
+
setupOnStore(): Promise<void>;
|
|
190
|
+
startOpen(): void;
|
|
191
|
+
getcert(): Promise<[Buffer, Buffer]>;
|
|
192
|
+
private setHttps;
|
|
193
|
+
private setAutoDevBase;
|
|
194
|
+
private setPort;
|
|
195
|
+
private get isHttpBase();
|
|
196
|
+
}
|
|
197
|
+
|
|
156
198
|
type EMPModeType = 'development' | 'production';
|
|
157
199
|
|
|
158
200
|
declare class GlobalStore {
|
|
@@ -212,6 +254,9 @@ declare class GlobalStore {
|
|
|
212
254
|
key: string;
|
|
213
255
|
cert: string;
|
|
214
256
|
};
|
|
257
|
+
/**
|
|
258
|
+
* chain 配置相关
|
|
259
|
+
*/
|
|
215
260
|
chainName: {
|
|
216
261
|
rule: {
|
|
217
262
|
mjs: string;
|
|
@@ -242,12 +287,17 @@ declare class GlobalStore {
|
|
|
242
287
|
prefix: string;
|
|
243
288
|
};
|
|
244
289
|
rsdoctor: string;
|
|
290
|
+
sourceMapDevTool: string;
|
|
245
291
|
};
|
|
246
292
|
minimizer: {
|
|
247
293
|
minJs: string;
|
|
248
294
|
minCss: string;
|
|
249
295
|
};
|
|
250
296
|
};
|
|
297
|
+
/**
|
|
298
|
+
* server 配置相关
|
|
299
|
+
*/
|
|
300
|
+
server: StoreServer;
|
|
251
301
|
/**
|
|
252
302
|
* 缓存目录 绝对路径
|
|
253
303
|
*/
|
|
@@ -263,9 +313,6 @@ declare class GlobalStore {
|
|
|
263
313
|
rsConfig: Configuration;
|
|
264
314
|
empOptions: EmpOptions;
|
|
265
315
|
empConfig: EmpConfig;
|
|
266
|
-
vCompare: (preVersion?: string, lastVersion?: string) => number;
|
|
267
|
-
deepAssign: typeof deepAssign;
|
|
268
|
-
getLanIp: () => string;
|
|
269
316
|
entries: {
|
|
270
317
|
[chunkName: string]: RspackOptions['entry'];
|
|
271
318
|
};
|
|
@@ -276,11 +323,11 @@ declare class GlobalStore {
|
|
|
276
323
|
* @param mode cli名称
|
|
277
324
|
* @param cliOptions cli配置
|
|
278
325
|
*/
|
|
279
|
-
initVars
|
|
326
|
+
private initVars;
|
|
280
327
|
/**
|
|
281
328
|
* 初始化 基础路径
|
|
282
329
|
*/
|
|
283
|
-
initPaths
|
|
330
|
+
private initPaths;
|
|
284
331
|
/**
|
|
285
332
|
* 设置 日志等级
|
|
286
333
|
*/
|
|
@@ -300,9 +347,12 @@ declare class GlobalStore {
|
|
|
300
347
|
node: string[];
|
|
301
348
|
};
|
|
302
349
|
get uniqueName(): string;
|
|
350
|
+
vCompare: (preVersion?: string, lastVersion?: string) => number;
|
|
351
|
+
deepAssign: typeof deepAssign;
|
|
352
|
+
getLanIp: () => string;
|
|
303
353
|
injectTags(o?: InjectTagsType, name?: string, chunk?: string): void;
|
|
304
354
|
}
|
|
305
|
-
declare const _default$
|
|
355
|
+
declare const _default$2: GlobalStore;
|
|
306
356
|
|
|
307
357
|
type EMP3PluginType = {
|
|
308
358
|
name: string;
|
|
@@ -318,6 +368,7 @@ type DebugType = {
|
|
|
318
368
|
progress?: boolean;
|
|
319
369
|
showRsconfig?: boolean | string | InspectOptions;
|
|
320
370
|
showPerformance?: boolean;
|
|
371
|
+
showScriptDebug?: boolean;
|
|
321
372
|
rspackCache?: boolean;
|
|
322
373
|
rsdoctor?: boolean | RsdoctorRspackPluginOptions;
|
|
323
374
|
newTreeshaking?: boolean;
|
|
@@ -328,7 +379,7 @@ type DebugType = {
|
|
|
328
379
|
*/
|
|
329
380
|
infrastructureLogging?: Configuration['infrastructureLogging'];
|
|
330
381
|
};
|
|
331
|
-
type ServerType =
|
|
382
|
+
type ServerType = DevServer & {
|
|
332
383
|
/**
|
|
333
384
|
* 访问 host
|
|
334
385
|
* @default '0.0.0.0'
|
|
@@ -343,13 +394,14 @@ type ServerType = Configuration$1 & {
|
|
|
343
394
|
* 自动打开
|
|
344
395
|
* @default false
|
|
345
396
|
*/
|
|
346
|
-
open?:
|
|
397
|
+
open?: DevServer['open'];
|
|
347
398
|
/**
|
|
348
399
|
* 热重载
|
|
349
400
|
* @default true
|
|
350
401
|
*/
|
|
351
|
-
hot?:
|
|
402
|
+
hot?: DevServer['hot'];
|
|
352
403
|
http2?: boolean;
|
|
404
|
+
https?: boolean;
|
|
353
405
|
};
|
|
354
406
|
type PolyfillType = {
|
|
355
407
|
/**
|
|
@@ -418,7 +470,7 @@ type BuildType = {
|
|
|
418
470
|
* 是否生成 source map
|
|
419
471
|
* @default true
|
|
420
472
|
*/
|
|
421
|
-
sourcemap?: boolean;
|
|
473
|
+
sourcemap?: boolean | SourceMapDevToolPluginOptions;
|
|
422
474
|
/**
|
|
423
475
|
* sourcemap 类型
|
|
424
476
|
* 默认 source-map
|
|
@@ -604,33 +656,6 @@ type InjectTagsTypeItem = {
|
|
|
604
656
|
|
|
605
657
|
declare function runScript(): void;
|
|
606
658
|
|
|
607
|
-
declare class DTSBundle {
|
|
608
|
-
list: string[];
|
|
609
|
-
outDir: string;
|
|
610
|
-
aliasName: string;
|
|
611
|
-
setup(outDir: string, aliasName: string): Promise<void>;
|
|
612
|
-
readDts(): Promise<any[]>;
|
|
613
|
-
readFile(src: string): Promise<{
|
|
614
|
-
src: string;
|
|
615
|
-
code: string;
|
|
616
|
-
}>;
|
|
617
|
-
replaceAliasPath({ src, code }: {
|
|
618
|
-
src: string;
|
|
619
|
-
code: string;
|
|
620
|
-
}): {
|
|
621
|
-
code: string;
|
|
622
|
-
src: string;
|
|
623
|
-
mod: string;
|
|
624
|
-
};
|
|
625
|
-
warpDeclareModule(mod: string, code: string): string;
|
|
626
|
-
writeCode(bs: {
|
|
627
|
-
src: string;
|
|
628
|
-
code: string;
|
|
629
|
-
mod: string;
|
|
630
|
-
}[]): Promise<void>;
|
|
631
|
-
}
|
|
632
|
-
declare const _default$2: DTSBundle;
|
|
633
|
-
|
|
634
659
|
declare const _default$1: {
|
|
635
660
|
lightGreen: chalk.ChalkInstance;
|
|
636
661
|
green: chalk.ChalkInstance;
|
|
@@ -682,4 +707,4 @@ type EMPConfigFn = (store: GlobalStore) => EmpOptions | Promise<EmpOptions>;
|
|
|
682
707
|
type EMPConfigExport = EmpOptions | EMPConfigFn;
|
|
683
708
|
declare function defineConfig(config: EMPConfigExport): EMPConfigExport;
|
|
684
709
|
|
|
685
|
-
export { type EMP3PluginFnType, type EMP3PluginType, type EMPConfigExport, type EMPConfigFn, type EmpOptions, GlobalStore, defineConfig,
|
|
710
|
+
export { type EMP3PluginFnType, type EMP3PluginType, type EMPConfigExport, type EMPConfigFn, type EmpOptions, GlobalStore, defineConfig, index as empHelper, runScript, _default$2 as store };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
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, SwcJsMinimizerRspackPluginOptions, LightningCssMinimizerRspackPluginOptions, HtmlRspackPluginOptions, RuleSetRule } from '@rspack/core';
|
|
4
|
+
import { Output, Configuration, RspackOptions, Externals, Resolve, DevServer, SourceMapDevToolPluginOptions, SwcJsMinimizerRspackPluginOptions, LightningCssMinimizerRspackPluginOptions, HtmlRspackPluginOptions, RuleSetRule } from '@rspack/core';
|
|
5
5
|
export { rspack } from '@rspack/core';
|
|
6
6
|
import { HtmlTagObject } from 'html-webpack-plugin';
|
|
7
7
|
import { Options } from 'sass-embedded';
|
|
8
8
|
import WPChain from 'webpack-chain';
|
|
9
|
-
import { Configuration as Configuration$1 } from 'webpack-dev-server';
|
|
10
9
|
import * as chalk from 'chalk';
|
|
11
10
|
import chalk__default from 'chalk';
|
|
12
11
|
import { glob } from 'glob';
|
|
@@ -125,13 +124,16 @@ declare class EmpConfig {
|
|
|
125
124
|
* @default true
|
|
126
125
|
*/
|
|
127
126
|
isESM: boolean;
|
|
128
|
-
autoDevSet(): Promise<void>;
|
|
129
127
|
checkIsESM(target: string): boolean;
|
|
130
128
|
lifeCycle: LifeCycle;
|
|
131
129
|
setup(store: GlobalStore): Promise<void>;
|
|
130
|
+
/**
|
|
131
|
+
* 同步完所有配置后的处理
|
|
132
|
+
*/
|
|
133
|
+
private setupEmpOptions;
|
|
132
134
|
chain(): Promise<void>;
|
|
133
135
|
plugins(): Promise<void>;
|
|
134
|
-
get debug(): DebugType
|
|
136
|
+
get debug(): Required<DebugType>;
|
|
135
137
|
get build(): Required<BuildType>;
|
|
136
138
|
get html(): HtmlType;
|
|
137
139
|
get entries(): EntriesType;
|
|
@@ -144,7 +146,7 @@ declare class EmpConfig {
|
|
|
144
146
|
private setDefine;
|
|
145
147
|
get externals(): {};
|
|
146
148
|
get resolve(): _rspack_core.ResolveOptions;
|
|
147
|
-
syncEmpOptions
|
|
149
|
+
private syncEmpOptions;
|
|
148
150
|
get moduleTransformRule(): any;
|
|
149
151
|
get cacheDir(): string;
|
|
150
152
|
get ignoreWarnings(): (RegExp | ((args_0: Error, args_1: _rspack_core.Compilation, ...args_2: unknown[]) => boolean))[];
|
|
@@ -153,6 +155,46 @@ declare class EmpConfig {
|
|
|
153
155
|
} | undefined;
|
|
154
156
|
}
|
|
155
157
|
|
|
158
|
+
declare class StoreServer {
|
|
159
|
+
ip: string;
|
|
160
|
+
host: string;
|
|
161
|
+
isAutoDevBase: boolean;
|
|
162
|
+
isHttps: boolean;
|
|
163
|
+
httpsType: 'default' | 'h2' | 'h3';
|
|
164
|
+
protocol: string;
|
|
165
|
+
port: number;
|
|
166
|
+
store: GlobalStore;
|
|
167
|
+
publicPath: any;
|
|
168
|
+
publicHasHttp: boolean;
|
|
169
|
+
isOpenBrower: boolean;
|
|
170
|
+
url: string;
|
|
171
|
+
urls: {
|
|
172
|
+
localUrlForBrowser: string;
|
|
173
|
+
localUrlForTerminal: string;
|
|
174
|
+
lanUrlForTerminal: string;
|
|
175
|
+
lanUrlForConfig: string;
|
|
176
|
+
};
|
|
177
|
+
constructor(store: GlobalStore);
|
|
178
|
+
/**
|
|
179
|
+
* 获取config后重新适配 server 配置信息
|
|
180
|
+
*/
|
|
181
|
+
setupOnEmpOptionSync(): Promise<void>;
|
|
182
|
+
/**
|
|
183
|
+
* 获取 server 所有配置信息
|
|
184
|
+
*/
|
|
185
|
+
get config(): {};
|
|
186
|
+
/**
|
|
187
|
+
* setupOnEmpOptionSync 之后,store setup 之后
|
|
188
|
+
*/
|
|
189
|
+
setupOnStore(): Promise<void>;
|
|
190
|
+
startOpen(): void;
|
|
191
|
+
getcert(): Promise<[Buffer, Buffer]>;
|
|
192
|
+
private setHttps;
|
|
193
|
+
private setAutoDevBase;
|
|
194
|
+
private setPort;
|
|
195
|
+
private get isHttpBase();
|
|
196
|
+
}
|
|
197
|
+
|
|
156
198
|
type EMPModeType = 'development' | 'production';
|
|
157
199
|
|
|
158
200
|
declare class GlobalStore {
|
|
@@ -212,6 +254,9 @@ declare class GlobalStore {
|
|
|
212
254
|
key: string;
|
|
213
255
|
cert: string;
|
|
214
256
|
};
|
|
257
|
+
/**
|
|
258
|
+
* chain 配置相关
|
|
259
|
+
*/
|
|
215
260
|
chainName: {
|
|
216
261
|
rule: {
|
|
217
262
|
mjs: string;
|
|
@@ -242,12 +287,17 @@ declare class GlobalStore {
|
|
|
242
287
|
prefix: string;
|
|
243
288
|
};
|
|
244
289
|
rsdoctor: string;
|
|
290
|
+
sourceMapDevTool: string;
|
|
245
291
|
};
|
|
246
292
|
minimizer: {
|
|
247
293
|
minJs: string;
|
|
248
294
|
minCss: string;
|
|
249
295
|
};
|
|
250
296
|
};
|
|
297
|
+
/**
|
|
298
|
+
* server 配置相关
|
|
299
|
+
*/
|
|
300
|
+
server: StoreServer;
|
|
251
301
|
/**
|
|
252
302
|
* 缓存目录 绝对路径
|
|
253
303
|
*/
|
|
@@ -263,9 +313,6 @@ declare class GlobalStore {
|
|
|
263
313
|
rsConfig: Configuration;
|
|
264
314
|
empOptions: EmpOptions;
|
|
265
315
|
empConfig: EmpConfig;
|
|
266
|
-
vCompare: (preVersion?: string, lastVersion?: string) => number;
|
|
267
|
-
deepAssign: typeof deepAssign;
|
|
268
|
-
getLanIp: () => string;
|
|
269
316
|
entries: {
|
|
270
317
|
[chunkName: string]: RspackOptions['entry'];
|
|
271
318
|
};
|
|
@@ -276,11 +323,11 @@ declare class GlobalStore {
|
|
|
276
323
|
* @param mode cli名称
|
|
277
324
|
* @param cliOptions cli配置
|
|
278
325
|
*/
|
|
279
|
-
initVars
|
|
326
|
+
private initVars;
|
|
280
327
|
/**
|
|
281
328
|
* 初始化 基础路径
|
|
282
329
|
*/
|
|
283
|
-
initPaths
|
|
330
|
+
private initPaths;
|
|
284
331
|
/**
|
|
285
332
|
* 设置 日志等级
|
|
286
333
|
*/
|
|
@@ -300,9 +347,12 @@ declare class GlobalStore {
|
|
|
300
347
|
node: string[];
|
|
301
348
|
};
|
|
302
349
|
get uniqueName(): string;
|
|
350
|
+
vCompare: (preVersion?: string, lastVersion?: string) => number;
|
|
351
|
+
deepAssign: typeof deepAssign;
|
|
352
|
+
getLanIp: () => string;
|
|
303
353
|
injectTags(o?: InjectTagsType, name?: string, chunk?: string): void;
|
|
304
354
|
}
|
|
305
|
-
declare const _default$
|
|
355
|
+
declare const _default$2: GlobalStore;
|
|
306
356
|
|
|
307
357
|
type EMP3PluginType = {
|
|
308
358
|
name: string;
|
|
@@ -318,6 +368,7 @@ type DebugType = {
|
|
|
318
368
|
progress?: boolean;
|
|
319
369
|
showRsconfig?: boolean | string | InspectOptions;
|
|
320
370
|
showPerformance?: boolean;
|
|
371
|
+
showScriptDebug?: boolean;
|
|
321
372
|
rspackCache?: boolean;
|
|
322
373
|
rsdoctor?: boolean | RsdoctorRspackPluginOptions;
|
|
323
374
|
newTreeshaking?: boolean;
|
|
@@ -328,7 +379,7 @@ type DebugType = {
|
|
|
328
379
|
*/
|
|
329
380
|
infrastructureLogging?: Configuration['infrastructureLogging'];
|
|
330
381
|
};
|
|
331
|
-
type ServerType =
|
|
382
|
+
type ServerType = DevServer & {
|
|
332
383
|
/**
|
|
333
384
|
* 访问 host
|
|
334
385
|
* @default '0.0.0.0'
|
|
@@ -343,13 +394,14 @@ type ServerType = Configuration$1 & {
|
|
|
343
394
|
* 自动打开
|
|
344
395
|
* @default false
|
|
345
396
|
*/
|
|
346
|
-
open?:
|
|
397
|
+
open?: DevServer['open'];
|
|
347
398
|
/**
|
|
348
399
|
* 热重载
|
|
349
400
|
* @default true
|
|
350
401
|
*/
|
|
351
|
-
hot?:
|
|
402
|
+
hot?: DevServer['hot'];
|
|
352
403
|
http2?: boolean;
|
|
404
|
+
https?: boolean;
|
|
353
405
|
};
|
|
354
406
|
type PolyfillType = {
|
|
355
407
|
/**
|
|
@@ -418,7 +470,7 @@ type BuildType = {
|
|
|
418
470
|
* 是否生成 source map
|
|
419
471
|
* @default true
|
|
420
472
|
*/
|
|
421
|
-
sourcemap?: boolean;
|
|
473
|
+
sourcemap?: boolean | SourceMapDevToolPluginOptions;
|
|
422
474
|
/**
|
|
423
475
|
* sourcemap 类型
|
|
424
476
|
* 默认 source-map
|
|
@@ -604,33 +656,6 @@ type InjectTagsTypeItem = {
|
|
|
604
656
|
|
|
605
657
|
declare function runScript(): void;
|
|
606
658
|
|
|
607
|
-
declare class DTSBundle {
|
|
608
|
-
list: string[];
|
|
609
|
-
outDir: string;
|
|
610
|
-
aliasName: string;
|
|
611
|
-
setup(outDir: string, aliasName: string): Promise<void>;
|
|
612
|
-
readDts(): Promise<any[]>;
|
|
613
|
-
readFile(src: string): Promise<{
|
|
614
|
-
src: string;
|
|
615
|
-
code: string;
|
|
616
|
-
}>;
|
|
617
|
-
replaceAliasPath({ src, code }: {
|
|
618
|
-
src: string;
|
|
619
|
-
code: string;
|
|
620
|
-
}): {
|
|
621
|
-
code: string;
|
|
622
|
-
src: string;
|
|
623
|
-
mod: string;
|
|
624
|
-
};
|
|
625
|
-
warpDeclareModule(mod: string, code: string): string;
|
|
626
|
-
writeCode(bs: {
|
|
627
|
-
src: string;
|
|
628
|
-
code: string;
|
|
629
|
-
mod: string;
|
|
630
|
-
}[]): Promise<void>;
|
|
631
|
-
}
|
|
632
|
-
declare const _default$2: DTSBundle;
|
|
633
|
-
|
|
634
659
|
declare const _default$1: {
|
|
635
660
|
lightGreen: chalk.ChalkInstance;
|
|
636
661
|
green: chalk.ChalkInstance;
|
|
@@ -682,4 +707,4 @@ type EMPConfigFn = (store: GlobalStore) => EmpOptions | Promise<EmpOptions>;
|
|
|
682
707
|
type EMPConfigExport = EmpOptions | EMPConfigFn;
|
|
683
708
|
declare function defineConfig(config: EMPConfigExport): EMPConfigExport;
|
|
684
709
|
|
|
685
|
-
export { type EMP3PluginFnType, type EMP3PluginType, type EMPConfigExport, type EMPConfigFn, type EmpOptions, GlobalStore, defineConfig,
|
|
710
|
+
export { type EMP3PluginFnType, type EMP3PluginType, type EMPConfigExport, type EMPConfigFn, type EmpOptions, GlobalStore, defineConfig, index as empHelper, runScript, _default$2 as store };
|
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
|
|
2
|
+
var bt=Object.defineProperty;var b=(s=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(s,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):s)(function(s){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+s+'" is not supported')});var m=(s,e)=>()=>(s&&(e=s(s=0)),e);var F=(s,e)=>{for(var t in e)bt(s,t,{get:e[t],enumerable:!0})};import{fileURLToPath as vt}from"url";import Ct from"path";var Pe,wt,c,l,r=m(()=>{"use strict";Pe=()=>vt(import.meta.url),wt=()=>Ct.dirname(Pe()),c=wt(),l=Pe()});import d from"chalk";var xt,S,St,Ot,Et,Z,z,Pt,kt,T,ee,$t,te,D,h,L=m(()=>{"use strict";r();xt=d.hex("#1abc9c"),S=d.hex("#16a085"),St=d.hex("#2ecc71"),Ot=d.hex("#27ae60"),Et=d.hex("#e74c3c"),Z=d.hex("#c0392b"),z=d.hex("#f1c40f"),Pt=d.hex("#f39c12"),kt=d.hex("#3498db"),T=d.hex("#2980b9"),ee=d.hex("#ecf0f1"),$t=d.hex("#fd79a8"),te=d.hex("#e84393"),D=d.hex("#7f8c8d"),h={lightGreen:xt,green:S,lightCyan:St,cyan:Ot,lightRed:Et,red:Z,yellow:z,orange:Pt,lightBlue:kt,blue:T,white:ee,lightMagenta:$t,magenta:te,gray:D}});var se,n,E=m(()=>{"use strict";r();L();se=class{brandName="";fullName="";logLevel="debug";isLogTime=!1;setup({brandName:e,logLevel:t,fullName:i}){this.brandName=` [${e}] `,this.fullName=` ${i} `,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,11 @@ var xt=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 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!==Vt&&(i<Ge||i>ce))throw new Error(`Port number must lie between ${Ge} and ${ce}`);let t=i,s=qt(),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,Vt,qt,Xt,Qt,me=m(()=>{"use strict";n();Ge=1024,ce=65535,Vt=443,qt=()=>{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,V=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 q,We=m(()=>{"use strict";n();v();ge();V();q=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,Ve,qe=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 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: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},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}},Ve=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();V();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();qe();pt();ct();V();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=Ve,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
|
-
${
|
|
10
|
+
`)}},n=new se});var pe={};F(pe,{clearConsole:()=>oe,deepAssign:()=>y,ensureArray:()=>Rt,getLanIp:()=>$,getPkgVersion:()=>ie,importJsVm:()=>ne,jsonFilter:()=>At,timeFormat:()=>I,vCompare:()=>re});import{ip as jt}from"address";import Tt from"chalk";import{gateway4sync as Dt}from"default-gateway";import Lt from"fs-extra";function oe(){process.stdout.write(process.platform==="win32"?"\x1B[2J\x1B[0f":"\x1B[2J\x1B[3J\x1B[H")}function y(s,...e){for(let t of e)for(let i in t){let o=t[i],a=s[i];if(Object(o)==o&&Object(a)===a){s[i]=y(a,o);continue}s[i]=t[i]}return s}var $,ie,Rt,At,re,I,ne,v=m(()=>{"use strict";r();$=()=>{let{int:s}=Dt();return jt(s||"")||"127.0.0.1"},ie=s=>{try{let{version:e}=Lt.readJSONSync(s);return e}catch{return}};Rt=s=>Array.isArray(s)?s:[s],At=(s={},e=[])=>Object.keys(s).filter(t=>!e.includes(t)).reduce((t,i)=>(t[i]=s[i],t),{}),re=(s="",e="")=>{let t=s.replace("^","").split("."),i=e.replace("^","").split("."),o=Math.max(t.length,i.length),a=0;for(let u=0;u<o;u++){let g=t.length>u?t[u]:0,O=isNaN(Number(g))?g.charCodeAt():Number(g),A=i.length>u?i[u]:0,f=isNaN(Number(A))?A.charCodeAt():Number(A);if(O<f){a=-1;break}else if(O>f){a=1;break}}return a},I=s=>{s=s/1e3;let e=i=>Tt.bold(i);if(s<1)return`${s*1e3} ms`;if(s<10){let i=s>=.01?2:3;return`${e(s.toFixed(i))} s`}if(s<60)return`${e(s.toFixed(1))} s`;let t=s/60;return`${e(t.toFixed(2))} m`},ne=s=>`data:text/javascript,${s}`});var ke={};F(ke,{chalk:()=>Nt,color:()=>h,glob:()=>B,logger:()=>n,utils:()=>pe});import Nt from"chalk";import{glob as B}from"glob";var M=m(()=>{"use strict";r();L();v();E()});import Ft from"node:fs";import Mt from"path";import{createJiti as Gt}from"jiti";var zt,$e,je,It,Te=m(()=>{"use strict";r();C();E();zt=["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"],$e=Gt(l,{interopDefault:!0}),je=async()=>It(),It=()=>{n.time("[store]GetEmpConfigPath");let s;for(let e of zt){let t=Mt.resolve(p.root,e);if(Ft.existsSync(t)){s=t;break}}return n.timeEnd("[store]GetEmpConfigPath"),s}});var U,De=m(()=>{"use strict";r();U=class{op={};constructor(e={}){this.op=e}async afterGetEmpOptions(){this.op.afterGetEmpOptions&&await this.op.afterGetEmpOptions()}async beforePlugin(){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 Bt from"node:fs";var ae,Le,Re=m(()=>{"use strict";r();M();Te();v();De();ae=class{store;appSrc="src";appEntry="";base="";target=[];assign(e,t){return t=t||{},y(e,t)}isESM=!1;checkIsESM(e){return["es3","es5"].indexOf(e)===-1}lifeCycle;async setup(e){this.store=e,await this.syncEmpOptions(),await this.setupEmpOptions(),this.lifeCycle=new U(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:i,appEntry:o}=this.store.empOptions;t&&(this.appSrc=t),i&&(this.base=i),o&&(this.appEntry=o)}async setupEmpOptions(){await this.store.server.setupOnEmpOptionSync()}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&&(this.store.server.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:i,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}${i}/[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",i={};return Object.keys(e).map(o=>{t==="all"?(i[`import.meta.env.${o}`]=JSON.stringify(e[o]),i[`process.env.${o}`]=JSON.stringify(e[o])):t==="esm"?i[`import.meta.env.${o}`]=JSON.stringify(e[o]):t==="cjs"?i[`process.env.${o}`]=JSON.stringify(e[o]):t==="none"&&(i[`${o}`]=JSON.stringify(e[o]))}),i}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(){n.time("[store][empConfig]SyncEmpOptions");let e=await je();if(!e||!Bt.existsSync(e))return;let t=await $e(e);typeof t=="function"?this.store.empOptions=await t(this.store):this.store.empOptions=t||{},n.timeEnd("[store][empConfig]SyncEmpOptions")}get moduleTransformRule(){let{moduleTransform:e}=this.store.empOptions,t=this.assign({defaultExclude:!1},e),i={and:[],not:[]};return t.defaultExclude===!0&&i.and.push(/(node_modules|bower_components)/),t?.exclude&&(i.and=i.and.concat(t.exclude)),e?.include&&(i.not=t.include),i}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}},Le=new ae});import Ut from"fs-extra";var le,Ae,Ne=m(()=>{"use strict";r();le=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 Ut.exists(e)){let i={tsConfig:e};this.store.merge({resolve:i})}}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})}},Ae=new le});var ce,Fe,Me=m(()=>{"use strict";r();ce=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,i={},{sass:o}=this.store.empConfig.css||{sass:{}};o.mode==="modern"&&(i.implementation=o.implementation?o.implementation:b.resolve("sass-embedded"),i.api="modern-compiler",i.sourceMap=this.store.empConfig.build.sourcemap,o.sassOptions&&(i.sassOptions=o.sassOptions)),typeof o.warnRuleAsWarning<"u"&&(i.warnRuleAsWarning=o.warnRuleAsWarning),typeof o.webpackImporter<"u"&&(i.webpackImporter=o.webpackImporter),this.store.chain.merge({module:{rule:{[e.sass]:{test:/\.(sass|scss)$/,use:{[t.sass]:{loader:b.resolve("sass-loader"),options:i}},type:"css/auto"}}}})}async less(){let{rule:e,use:t}=this.store.chainName,i={loader:b.resolve("less-loader"),options:{lessOptions:{javascriptEnabled:!0}}};this.store.chain.merge({module:{rule:{[e.less]:{test:/\.less$/,use:{[t.less]:i},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"}}}})}},Fe=new ce});import me from"html-webpack-plugin";function Jt(){let s=[`import 'core-js/${p.empConfig.build.polyfill.coreJsFeatures}'`].join(`
|
|
11
|
+
`);return ne(s)}var J,G,H=m(()=>{"use strict";r();v();C();J=class{constructor(){}apply(e){let{webpack:t}=e;p.empConfig.build.polyfill.entryCdn||new t.EntryPlugin(e.context,Jt(),{name:void 0}).apply(e)}},G=class{PluginName="HtmlEmpInjectPlugin";chunk="";files=[];constructor(e,t="",i=""){this.PluginName=`${this.PluginName}-${t}`,this.files=e,this.chunk=i}apply(e){e.hooks.compilation.tap(this.PluginName,t=>{me.getHooks(t).alterAssetTagGroups.tapPromise(this.PluginName,async i=>(this.chunk&&!i.plugin.userOptions.chunks?.includes(this.chunk)||this.files.map(o=>{let{pos:a,...u}=o;(a==="body"?i.bodyTags:i.headTags).push({attributes:{},voidTag:!1,meta:{plugin:void 0},tagName:"script",...u})}),i))})}}});import w from"node:path";var ue,Ge,ze=m(()=>{"use strict";r();M();H();ue=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(w.extname(e),"").replace(`${this.store.empConfig.appSrc}${w.sep}`,"")}setTemplate(e){return e?this.store.resolve(e):this.store.empResolve(w.join("template","index.html"))}setFavicion(e){return e?this.store.resolve(e):this.store.empResolve(w.join("template","favicon.ico"))}setEntryItem(e,t,i){i=i||this.store.resolve(w.join(this.store.empConfig.appSrc,e));let o=this.setChunk(e),a=[i];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(me,[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(){n.time("setAutoPage");let e=this.store.empConfig.autoPages?.path||"pages",t=w.join(this.store.appSrc,e),i=w.join(t,"**","*.{ts,tsx,jsx,js}"),o=await B([i],{windowsPathsNoEscape:!0});o=o.map(a=>a.replace(`${t}${w.sep}`,"")),o.map(a=>{let u=this.store.empConfig.entries[a]||{};this.setEntryItem(a,{...this.store.empConfig.html,...u},w.join(t,a))}),n.timeEnd("setAutoPage")}async setDefaultEntry(){n.time("[store][empConfig]SetDefaultEntry");let e=w.join(this.store.appSrc,this.store.empConfig.appEntry?this.store.empConfig.appEntry:"index.{ts,tsx,jsx,js}"),t=await B([e],{windowsPathsNoEscape:!0});if(t[0]){let i=w.join(this.store.empConfig.appSrc,Object.keys(this.store.empConfig.entries).length>0&&this.store.empConfig.appEntry?this.store.empConfig.appEntry:"index");this.setEntryItem(i,this.store.empConfig.html,t[0])}n.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)}},Ge=new ue});import Ie from"node:path";var he,Be,Ue=m(()=>{"use strict";r();v();he=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:i}=this.store.empConfig.build,{externalHelpers:o}=i;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",Ie.dirname(b.resolve("@swc/helpers/package.json"))),this.coreJs.path=b.resolve("core-js/package.json");let t=ie(this.coreJs.path);t&&(this.coreJs.version=t),this.coreJs.alias=Ie.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:i}=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:{[i.swc]:{loader:"builtin:swc-loader",options:this.swcTsOptions}}},[t.javascript]:{test:/\.((m|c)?js|jsx)$/,exclude:e,use:{[i.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"}}}})}},Be=new he});import Je from"fs";import R from"@rspack/core";var fe,He,_e=m(()=>{"use strict";r();H();fe=class{store;async setup(e){this.store=e;let t=[this.define(),this.anylayze(),this.progress(),this.copy(),this.minify(),this.redoctor()];this.beforeLifeCycle(),await this.store.empConfig.lifeCycle.beforePlugin(),await Promise.all(t),await this.store.empConfig.lifeCycle.afterPlugin()}beforeLifeCycle(){let{store:e}=this;e.empConfig.build.polyfill.mode==="entry"&&e.chain.plugin("empPolyfill").use(J)}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(R.DefinePlugin,[this.store.empConfig.define])}async copy(){let e=this.store.resolve("public");Je.existsSync(e)&&Je.readdirSync(e).length>0&&this.store.chain.plugin(this.store.chainName.plugin.copy).use(R.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(R.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(R.SwcJsMinimizerRspackPlugin,[this.store.empConfig.build.minOptions]),this.store.chain.optimization.minimizer(this.store.chainName.minimizer.minCss).use(R.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])}sourceMapDevToolPlugin(){if(!this.store.empConfig.build.sourcemap)return;let e={};typeof this.store.empConfig.build.sourcemap=="object"&&(e=this.store.empConfig.build.sourcemap),this.store.chain.plugin(this.store.chainName.plugin.sourceMapDevTool).use(R.SourceMapDevToolPlugin,[e])}},He=new fe});var ge,We,qe=m(()=>{"use strict";r();Ne();Me();ze();Ue();_e();ge=class{store;async setup(e){this.store=e;let t=[Ae.setup(this.store),Be.setup(this.store),He.setup(this.store),Ge.setup(this.store),Fe.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()}},We=new ge});import Ht from"net";import _t from"os";async function Xe(s,e="localhost"){if(s!==Wt&&(s<Ve||s>de))throw new Error(`Port number must lie between ${Ve} and ${de}`);let t=s,i=qt(),o;e&&!i.has(e)?o=new Set([e]):o=i;let a=new Set(["EADDRINUSE","EACCES"]);for(;t<=de;)try{return await Xt(t,o)}catch(u){if(!a.has(u.code))throw u;t+=1}throw new Error("No available ports found")}var Ve,de,Wt,qt,Vt,Xt,Qe=m(()=>{"use strict";r();Ve=1024,de=65535,Wt=443,qt=()=>{let s=_t.networkInterfaces(),e=new Set([void 0,"0.0.0.0"]);for(let t of Object.values(s))if(t)for(let i of t)e.add(i.address);return e},Vt=(s,e)=>new Promise((t,i)=>{let o=Ht.createServer();o.unref(),o.on("error",i),o.listen(s,e,()=>{let{port:a}=o.address();o.close(()=>{t(a)})})}),Xt=async(s,e)=>{let t=new Set(["EADDRNOTAVAIL","EINVAL"]);for(let i of e)try{await Vt(s,i)}catch(o){if(!t.has(o.code))throw o}return s}});import Ke from"url";import Qt from"chalk";var ye,_,Ye=m(()=>{"use strict";r();L();v();ye=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==="::",i;if(t){i="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 i=e,this.urls.lanUrlForConfig=e,this.urls.lanUrlForTerminal=this.prettyPrintUrl(this.urls.lanUrlForConfig);this.urls.localUrlForTerminal=this.prettyPrintUrl(i),this.urls.localUrlForBrowser=this.formatUrl(i)}getLanIp=$;formatUrl(e){let{protocol:t,port:i,pathname:o}=this.imf;return Ke.format({protocol:t,hostname:e,port:i,pathname:o})}prettyPrintUrl(e){let{protocol:t,port:i,pathname:o}=this.imf;return Ke.format({protocol:t,hostname:e,port:Qt.bold(i),pathname:o})}},_=new ye});import{exec as Kt}from"node:child_process";import{promisify as Yt}from"node:util";var et,Ze,Zt,es,tt,st=m(()=>{"use strict";r();C();E();et=Yt(Kt),Ze=["Google Chrome Canary","Google Chrome Dev","Google Chrome Beta","Google Chrome","Microsoft Edge","Brave Browser","Vivaldi","Chromium"],Zt=async()=>{let s=process.env.BROWSER;if(!s||!Ze.includes(s)){let{stdout:e}=await et("ps cax");s=Ze.find(t=>e.includes(t))}return s},es=async s=>{if(process.platform==="darwin")try{let t=await Zt();if(t){let i=`osascript openChrome.applescript "${encodeURI(s)}" "${t}"`;return await et(i,{cwd:p.resource.dir}),!0}}catch(t){n.debug(t)}try{let{default:t}=await import("open");return await t(s),!0}catch(t){return n.error("Failed to open start URL."),n.error(t),!1}},tt=es});import it from"node:fs/promises";var W,ot=m(()=>{"use strict";r();M();L();Qe();Ye();st();v();W=class{ip=$();host=this.ip;isAutoDevBase=!1;isHttps=!1;httpsType="default";protocol="http";port;store;publicPath="/";publicHasHttp=!1;isOpenBrower=!1;url="";urls={localUrlForBrowser:"",localUrlForTerminal:"",lanUrlForTerminal:"",lanUrlForConfig:""};constructor(e){this.store=e}async setupOnEmpOptionSync(){this.setHttps(),await this.setAutoDevBase()}get config(){return{}}async setupOnStore(){let{store:e}=this;this.publicPath=e.rsConfig.output?.publicPath==="auto"?"/":e.rsConfig.output?.publicPath||"/",this.isOpenBrower=!!e.empConfig.server.open,this.protocol=this.isHttps?"https":"http",this.host=e.empConfig.server.host?e.empConfig.server.host:this.ip,e.empConfig.server.port!==this.port&&this.setPort(e.empConfig.server.port),_.setup(this),this.publicPath&&(this.publicPath.indexOf("http://")>-1||this.publicPath.indexOf("https://")>-1)?(this.url=this.publicPath,this.publicHasHttp=!0,this.urls.localUrlForTerminal=_.prettyPrintUrl("localhost")):(this.urls=_.urls,this.url=this.urls.localUrlForBrowser)}startOpen(){let{urls:e}=this;this.publicHasHttp?(n.info(`${S("\u279C")} Local: ${n.link(e.localUrlForTerminal)}`),n.info(`${S("\u279C")} Network: ${n.link(this.publicPath)}`)):(n.info(`${S("\u279C")} Local: ${n.link(e.localUrlForTerminal)}`),n.info(`${S("\u279C")} Network: ${n.link(e.lanUrlForTerminal)}
|
|
12
|
+
`)),this.isOpenBrower&&tt(this.url)}getcert(){let{store:e}=this;return Promise.all([it.readFile(e.resource.key),it.readFile(e.resource.cert)])}setHttps(){let{store:e}=this,{server:t,https:i}=e.empOptions.server||{};this.isHttps=t==="https"||typeof t=="object"&&t.type==="https"||i===!0}async setAutoDevBase(){let{store:e}=this;this.isAutoDevBase=!!e.empOptions.autoDevBase&&e.mode==="development"&&!this.isHttpBase,this.isAutoDevBase&&(this.protocol=this.isHttps?"https":"http",await this.setPort(e.empOptions.server?.port),e.empOptions.base=`${this.protocol}://${this.host}:${this.port}/`,e.empOptions.server=e.deepAssign({port:this.port,client:{webSocketURL:`${this.isHttps?"wss":"ws"}://${this.host}:${this.port}/ws`}},e.empOptions.server))}async setPort(e){this.port=e||8e3,this.port=await Xe(this.port,this.host)}get isHttpBase(){let e=this.store.empOptions.base||"";return e.indexOf("http://")>-1||e.indexOf("https://")>-1}}});var rt,nt=m(()=>{"use strict";r();rt={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",sourceMapDevTool:"sourceMapDevTool"},minimizer:{minJs:"minJs",minCss:"minCss"}}});import ts from"node:fs/promises";import x from"node:path";import ss from"node:util";import is from"webpack-chain";var be,p,C=m(()=>{"use strict";r();E();v();Re();qe();ot();nt();H();be=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=rt;server=new W(this);cacheDir="";mode="development";cliMode="dev";isDev=!0;cliOptions;chain;rsConfig;empOptions={};empConfig;entries={};debug;async setup(e,t){n.time("[store]Setup"),await this.initVars(e,t),this.empConfig=Le,await this.empConfig.setup(this),this.debug={...this.empConfig.debug},this.initPaths(),this.chain=new is,await We.setup(this),this.setLogger(),this.toConfig(),this.logConfig(),await this.server.setupOnStore(),n.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 i=b(this.empResolve("package.json")),o=b(this.resolve("package.json"));this.empPkg={...this.empPkg,...i},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),n.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);ts.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(n.link("[Compile Config]")),console.log(ss.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("-","_")}vCompare=re;deepAssign=y;getLanIp=$;injectTags(e=[],t="",i=""){this.chain.plugin(`${G}-${t}`).use(G,[e,t,i])}},p=new be});import os from"node:fs";import P from"node:path";import{gzipSizeSync as rs}from"gzip-size";function us(s,e){let t=[s,e],i=["File","Size","Gzipped"].reduce((o,a,u)=>{let g=t[u],O=a;return g&&(O=a.length<g?a+" ".repeat(g-a.length):a),`${o+O} `}," ");console.log(T.bold(i))}async function pt(s){let e=s.toJson({all:!1,assets:!0,timings:!0}),i=e.assets.filter(f=>ls(f.name)).map(ms);i.sort((f,N)=>f.size-N.size);let o=Math.max(...i.map(f=>f.sizeLabel.length)),a=Math.max(...i.map(f=>(f.folder+P.sep+f.name).length));us(a,o);let u=0,g=0;i.forEach(f=>{let{sizeLabel:N}=f,{name:gt,folder:dt,gzipSizeLabel:yt}=f,Se=(dt+P.sep+gt).length,Oe=N.length;if(u+=f.size,g+=f.gzippedSize,Oe<o){let Y=" ".repeat(o-Oe);N+=Y}let Ee=D(f.folder+P.sep)+hs(f.name);if(Se<a){let Y=" ".repeat(a-Se);Ee+=Y}n.info(` ${Ee} ${D(N)} ${yt}`)});let O=`${T.bold("Total size:")} ${q(u)}`,A=`${T.bold("Gzipped size:")} ${q(g)}`;n.info(`
|
|
13
|
+
${O}
|
|
14
14
|
${A}
|
|
15
|
-
`),
|
|
16
|
-
`)}function
|
|
17
|
-
|
|
18
|
-
`}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,Vr as rspack,yt as runScript,r as store};
|
|
15
|
+
`),n.info(`${S("\u2713")} Ready in ${I(Number(e.time))}
|
|
16
|
+
`)}function V(s=0){n.info(`${S("\u2713")} Ready in ${I(Number(s))}`)}var ns,ps,as,ls,cs,ms,q,hs,X=m(()=>{"use strict";r();L();C();E();v();ns=/\.html$/,ps=/\.(?:js|mjs|cjs|jsx)$/,as=/\.css$/,ls=s=>!/\.map$/.test(s)&&!/\.LICENSE\.txt$/.test(s),cs=s=>s>300*1e3?Z:s>100*1e3?z:ee,ms=s=>{let e=s.name.split("?")[0],t=q(s.size),i=P.basename(e),o=P.join(P.basename(p.empConfig.build.outDir),P.dirname(e)),a=os.readFileSync(P.join(p.empConfig.build.outDir,e)),u=a.length,g=rs(a),O=cs(g)(q(g));return{size:u,folder:o,name:i,gzippedSize:g,sizeLabel:t,gzipSizeLabel:O}};q=s=>{let e=s/1e3;return`${e.toFixed(e<1?2:1)} kB`},hs=s=>ps.test(s)?z(s):as.test(s)?S(s):ns.test(s)?T(s):te(s)});var k,Q=m(()=>{"use strict";r();E();v();C();k=class{async setup(e,t){n.time(`[${e}]Setup`),await p.setup(e,t),p.debug.clearLog&&oe(),n.title(`${e}`),n.time(`[${e}]Run`),await this.run(),this.processExit(),n.timeEnd(`[${e}]Run`),n.timeEnd(`[${e}]Setup`)}async run(){}processExit(){process.on("SIGINT",function(){process.exit()})}}});var lt={};F(lt,{default:()=>ds});import{DevServer as fs}from"@empjs/server";import{rspack as gs}from"@rspack/core";var at,ve,ds,ct=m(()=>{"use strict";r();X();v();Q();C();at=new fs,ve=class extends k{async getRspackDevConfig(){let e=y(p.rsConfig,{stats:{all:p.empConfig.debug.devShowAllLog,colors:!0,assets:!1,chunks:!1,entrypoints:!1,timings:!1,version:!1,errors:!0,warnings:!0},devServer:{open:!1,setupExitSignals:!0}}),{devServer:t}=e;if(p.server.isHttps&&!t.server){let[i,o]=await p.server.getcert();t.server={type:"https",options:{key:i,cert:o}}}return Object.hasOwn(t,"https")&&delete t.https,e}async run(){let{server:e}=p,t=await this.getRspackDevConfig();t=await at.setConfig(t);let i=gs(t);await p.empConfig.lifeCycle.beforeDevServe(),e.startOpen(),await at.setup(i,t,p,async o=>{this.showTimeDone(o),await p.empConfig.lifeCycle.afterDevServe()}),p.debug.showPerformance&&i.hooks.afterDone.tap("done",this.showTimeDone)}showTimeDone=e=>{let t=e?.toJson({all:!1,colors:!1,assets:!1,chunks:!1,timings:!0});V(t.time)}},ds=new ve});var Ce={};F(Ce,{ServeScript:()=>K,default:()=>vs});import{ProdServer as ys}from"@empjs/server";var bs,mt,K,vs,we=m(()=>{"use strict";r();X();Q();C();bs=new ys,mt=0,K=class extends k{async run(){mt=Date.now(),await p.empConfig.lifeCycle.beforeServe(),await bs.setup(p,this.onReady)}onReady=async()=>{p.server.startOpen(),V(Date.now()-mt),await p.empConfig.lifeCycle.afterServe()}},vs=new K});var ut={};F(ut,{default:()=>ws});import{rspack as Cs}from"@rspack/core";var xe,ws,ht=m(()=>{"use strict";r();X();E();Q();C();xe=class extends k{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(()=>(we(),Ce));await e.setup("serve",p.cliOptions)}async run(){await p.empConfig.lifeCycle.beforeBuild(),this.isWatchMode=!!p.cliOptions.watch,this.isuseServe=!!p.cliOptions.serve,this.rspackConfig=p.rsConfig,this.isWatchMode&&this.watchMode(),Cs(this.rspackConfig,async(e,t)=>{if(console.log(`
|
|
17
|
+
`),p.debug.showScriptDebug&&console.log(t?.toString()),e!==null){n.error(e.stack||e),e.message&&n.error(e.message);return}if(!t){n.red("Stats is Undefined.");return}t.hasErrors()&&(n.error(t.toString({all:!1,colors:!0,errors:!0})),n.red("Failed to compile."),process.exit(1)),t.hasWarnings()&&(n.yellow("Compiled with warnings."),n.warn(t.toString({all:!1,chunks:!1,assets:!1,colors:!0,errors:!0,warnings:!0}))),await pt(t),this.startServe(),await p.empConfig.lifeCycle.afterBulid()})}},ws=new xe});r();import{rspack as cr}from"@rspack/core";r();C();import xs from"node:process";import{program as j}from"commander";function ft(){j.version(p.empPkg.version,"-v, --version").usage("<command> [options]"),j.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",(s,e)=>{let[t,i]=s.split("=");return e[t]=i,e},{}).action(async s=>{let{default:e}=await Promise.resolve().then(()=>(ct(),lt));await e.setup("dev",s)}),j.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",(s,e)=>{let[t,i]=s.split("=");return e[t]=i,e},{}).action(async s=>{let{default:e}=await Promise.resolve().then(()=>(ht(),ut));await e.setup("build",s)}),j.command("serve").description("Server \u6A21\u5F0F").option("-cl, --clearLog <clearLog>","\u6E05\u7A7A\u65E5\u5FD7 \u9ED8\u8BA4\u4E3A true").action(async s=>{let{default:e}=await Promise.resolve().then(()=>(we(),Ce));await e.setup("serve",s)}),j.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(s=>{}),j.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(s=>{}),j.parse(xs.argv)}C();M();function hr(s){return s}export{hr as defineConfig,ke as empHelper,cr as rspack,ft as runScript,p as store};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@empjs/cli",
|
|
3
|
-
"version": "3.1
|
|
3
|
+
"version": "3.2.0-beta.1",
|
|
4
4
|
"description": "emp",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -53,10 +53,7 @@
|
|
|
53
53
|
},
|
|
54
54
|
"author": "Ken",
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@types/compression": "^1.7.2",
|
|
57
|
-
"@types/cors": "^2.8.12",
|
|
58
56
|
"@types/default-gateway": "^7.2.1",
|
|
59
|
-
"@types/express": "^4.17.13",
|
|
60
57
|
"@types/fs-extra": "^11.0.4",
|
|
61
58
|
"@types/node": "^20.8.7",
|
|
62
59
|
"@types/react": "^18.3.2",
|
|
@@ -68,16 +65,13 @@
|
|
|
68
65
|
},
|
|
69
66
|
"dependencies": {
|
|
70
67
|
"@rsdoctor/rspack-plugin": "^0.4.6",
|
|
71
|
-
"@rspack/core": "1.0.
|
|
68
|
+
"@rspack/core": "1.0.10",
|
|
72
69
|
"@swc/helpers": "^0.5.13",
|
|
73
70
|
"address": "^2.0.2",
|
|
74
71
|
"chalk": "^5.3.0",
|
|
75
72
|
"commander": "^11.1.0",
|
|
76
|
-
"compression": "^1.7.4",
|
|
77
73
|
"core-js": "^3.38.1",
|
|
78
|
-
"cors": "^2.8.5",
|
|
79
74
|
"default-gateway": "^7.2.2",
|
|
80
|
-
"express": "^4.19.2",
|
|
81
75
|
"fs-extra": "^11.2.0",
|
|
82
76
|
"glob": "^10.3.15",
|
|
83
77
|
"gzip-size": "^7.0.0",
|
|
@@ -90,7 +84,7 @@
|
|
|
90
84
|
"typescript-plugin-css-modules": "^5.1.0",
|
|
91
85
|
"webpack-bundle-analyzer": "^4.10.2",
|
|
92
86
|
"webpack-chain": "^6.5.1",
|
|
93
|
-
"
|
|
87
|
+
"@empjs/server": "^3.2.0-beta.1"
|
|
94
88
|
},
|
|
95
89
|
"scripts": {
|
|
96
90
|
"dev": "tsup --watch --env.ENV dev",
|