@empjs/cli 3.0.0-rc.3 → 3.0.0-rc.30

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.
Files changed (48) hide show
  1. package/client.d.ts +1 -4
  2. package/dist/index.cjs +18 -0
  3. package/dist/index.d.cts +683 -0
  4. package/dist/index.d.ts +683 -12
  5. package/dist/index.js +17 -15
  6. package/emp-tsconfig.json +4 -13
  7. package/package.json +100 -110
  8. package/template/favicon-128.ico +0 -0
  9. package/template/favicon-256.ico +0 -0
  10. package/template/favicon-64.ico +0 -0
  11. package/template/favicon.ico +0 -0
  12. package/template/index.html +3 -0
  13. package/dist/helper/buildPrint.d.ts +0 -15
  14. package/dist/helper/getPort.d.ts +0 -6
  15. package/dist/helper/hmr/client.d.ts +0 -0
  16. package/dist/helper/hmr/config.d.ts +0 -0
  17. package/dist/helper/hmr/index.d.ts +0 -0
  18. package/dist/helper/hmr/overlay.d.ts +0 -0
  19. package/dist/helper/hmr/process-update.d.ts +0 -1
  20. package/dist/helper/ipAddress.d.ts +0 -27
  21. package/dist/helper/logger.d.ts +0 -21
  22. package/dist/helper/nodePolyfill.d.ts +0 -7
  23. package/dist/helper/openBrowser.d.ts +0 -2
  24. package/dist/helper/utils.d.ts +0 -15
  25. package/dist/script/base.d.ts +0 -26
  26. package/dist/script/build.d.ts +0 -6
  27. package/dist/script/bundle.d.ts +0 -6
  28. package/dist/script/dev.d.ts +0 -9
  29. package/dist/script/devServer.d.ts +0 -0
  30. package/dist/script/dts.d.ts +0 -27
  31. package/dist/script/httpBase.d.ts +0 -10
  32. package/dist/script/index.d.ts +0 -1
  33. package/dist/script/serve.d.ts +0 -9
  34. package/dist/store/cycle/autoDevBase.d.ts +0 -8
  35. package/dist/store/empConfig.d.ts +0 -61
  36. package/dist/store/empShareLib.d.ts +0 -31
  37. package/dist/store/index.d.ts +0 -121
  38. package/dist/store/lifeCycle.d.ts +0 -14
  39. package/dist/store/rspack/common.d.ts +0 -11
  40. package/dist/store/rspack/css.d.ts +0 -10
  41. package/dist/store/rspack/entries.d.ts +0 -25
  42. package/dist/store/rspack/hook.d.ts +0 -24
  43. package/dist/store/rspack/index.d.ts +0 -7
  44. package/dist/store/rspack/module.d.ts +0 -20
  45. package/dist/store/rspack/plugin.d.ts +0 -13
  46. package/dist/types/config.d.ts +0 -307
  47. package/dist/types/env.d.ts +0 -1
  48. package/dist/types/plugin.d.ts +0 -6
package/dist/index.js CHANGED
@@ -1,16 +1,18 @@
1
- var dt=Object.defineProperty;var l=(i,e)=>()=>(i&&(e=i(i=0)),e);var J=(i,e)=>{for(var t in e)dt(i,t,{get:e[t],enumerable:!0})};import{fileURLToPath as yt}from"node:url";import{dirname as bt}from"node:path";import{readFile as vt}from"node:fs/promises";import be from"node:module";import _ from"node:path";var ve,Ct,V,T,Ce,we,W=l(()=>{"use strict";ve=yt(import.meta.url),Ct=bt(ve),V=async i=>{try{let e=await vt(i);return JSON.parse(e)}catch(e){console.error(e)}},T=be.createRequire(import.meta.url),Ce=(i,e)=>{let t=T;return e&&(t=be.createRequire(e)),t.resolve(i)},we=_.resolve(Ct,ve).replace(`${_.sep}dist${_.sep}index.js`,"")});import k from"@rspack/core";import xe from"fs";import{ModuleFederationPlugin as wt}from"@module-federation/enhanced/rspack";var X,Se,Ee=l(()=>{"use strict";X=class{store;async setup(e){this.store=e;let t=[this.define(),this.anylayze(),this.progress(),this.copy(),this.empShare(),this.minify()];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("bundleAnalyzerPlugin").use(e,[{analyzerPort:this.store.empConfig.server.port,defaultSizes:"gzip",analyzerHost:this.store.getLanIp()||"127.0.0.1"}])}async define(){this.store.chain.plugin("definePlugin").use(k.DefinePlugin,[this.store.empConfig.define])}async copy(){let e=this.store.resolve("public");xe.existsSync(e)&&xe.readdirSync(e).length>0&&this.store.chain.plugin("copyRspackPlugin").use(k.CopyRspackPlugin,[{patterns:[{from:e,to:this.store.resolve("dist")}]}])}async progress(){this.store.empConfig.debug.progress&&this.store.chain.plugin("progressPlugin").use(k.ProgressPlugin,[{prefix:"EMP"}])}async empShare(){let{isEmpshare:e}=this.store.empConfig.empShareLib;if(!e)return;let t=wt;this.store.chain.plugin("empShare").use(t,[this.store.empConfig.empShareLib.pluginConfig])}minify(){this.store.chain.optimization.minimize(this.store.mode==="production"),this.store.chain.optimization.minimizer("minJs").use(k.SwcJsMinimizerRspackPlugin,[this.store.empConfig.build.minOptions]),this.store.chain.optimization.minimizer("minCss").use(k.SwcCssMinimizerRspackPlugin,[{}])}},Se=new X});import xt from"chalk";import St from"fs-extra";import{ip as Et}from"address";import{gateway4sync as Ot}from"default-gateway";function Pe(){process.stdout.write(process.platform==="win32"?"\x1B[2J\x1B[0f":"\x1B[2J\x1B[3J\x1B[H")}function h(i,...e){for(let t of e)for(let s in t){let r=t[s],o=i[s];if(Object(r)==r&&Object(o)===o){i[s]=h(o,r);continue}i[s]=t[s]}return i}var j,Oe,L,ke,$e,y=l(()=>{"use strict";j=()=>{let{int:i}=Ot();return Et(i||"")||"127.0.0.1"},Oe=i=>{try{let{version:e}=St.readJSONSync(i);return e}catch{return}};L=(i="",e="")=>{let t=i.replace("^","").split("."),s=e.replace("^","").split("."),r=Math.max(t.length,s.length),o=0;for(let p=0;p<r;p++){let m=t.length>p?t[p]:0,g=isNaN(Number(m))?m.charCodeAt():Number(m),O=s.length>p?s[p]:0,c=isNaN(Number(O))?O.charCodeAt():Number(O);if(g<c){o=-1;break}else if(g>c){o=1;break}}return o},ke=i=>{i=i/1e3;let e=s=>xt.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`},$e=i=>`data:text/javascript,${i}`});import Te from"node:path";var q,je,Le=l(()=>{"use strict";W();y();q=class{store;swcJsOptions={};swcTsOptions={};coreJs={version:"3",alias:"",path:""};async setup(e){this.store=e;let t=[this.files(),this.scripts(),this.rspackGenerator(),this.rspackParser()];await Promise.all(t)}rspackGenerator(){let e=this.store.isDev?"[path][name]-[local]-[hash:5]":"[local]-[hash:5]";this.store.chain.merge({module:{generator:{css:{localIdentName:e},"css/auto":{localIdentName:e},"css/module":{localIdentName:e}}}})}rspackParser(){this.store.chain.merge({module:{parser:{css:{namedExports:!1},"css/auto":{namedExports:!1},"css/module":{namedExports:!1}}}})}get isPolyfill(){return this.store.empConfig.build.polyfill}swcParser(e){switch(e){case"js":return{syntax:"ecmascript",jsx:!0,decorators:!0,decoratorsBeforeExport:!1};case"ts":return{syntax:"typescript",decorators:!0,tsx:!0,dynamicImport:!0}}}swcJsc(e){let{target:t,externalHelpers:s}=this.store.empConfig.build;return{parser:this.swcParser(e),transform:{},target:t,externalHelpers:s,preserveAllComments:!0}}get swcCoreVersion(){let[e,t]=this.coreJs.version.split(".");return`${e}.${t}`}swcOptions(e){let t={jsc:h(this.swcJsc(e),{...this.store.empConfig.build.swcConfig}),isModule:"unknown"};return this.isPolyfill&&(delete t.jsc.target,t.env={coreJs:this.swcCoreVersion,targets:this.store.empConfig.build.browserslist},this.store.empConfig.isESM||(t.env.mode=this.store.empConfig.build.polyfill),this.store.empConfig.build.polyfill==="usage"&&(t.env.shippedProposals=!0,t.env.include=["es.object.values","es.array.flat"])),t}swcInitOptions(){let{externalHelpers:e}=this.store.empConfig.build;e&&this.store.chain.resolve.alias.set("@swc/helpers",Te.dirname(T.resolve("@swc/helpers/package.json"))),this.coreJs.path=T.resolve("core-js/package.json");let t=Oe(this.coreJs.path);t&&(this.coreJs.version=t),this.coreJs.alias=Te.dirname(this.coreJs.path),this.store.empConfig.build.polyfill&&(this.store.chain.resolve.alias.set("core-js",this.coreJs.alias),this.store.chain.module.rule("javascript").exclude.add(/core-js/),this.store.chain.module.rule("typescript").exclude.add(/core-js/)),this.swcTsOptions=this.swcOptions("ts"),this.swcJsOptions=this.swcOptions("js")}async scripts(){this.swcInitOptions();let e=!1,t=[];this.store.chain.merge({module:{parser:{javascript:{exportsPresence:"error",importExportsPresence:"error"}},rule:{mjs:{test:/\.m?js/,resolve:{fullySpecified:!1}},typescript:{test:/\.(ts|tsx)$/,exclude:t,sideEffects:e,use:{swc:{loader:"builtin:swc-loader",options:this.swcTsOptions}}},javascript:{test:/\.(js|jsx)$/,exclude:t,sideEffects:e,use:{swc:{loader:"builtin:swc-loader",options:this.swcJsOptions}}}}}})}async files(){this.store.chain.merge({module:{rule:{svg:{test:/\.svg$/,type:"asset/resource"}}}}),this.store.chain.merge({module:{rule:{inline:{resourceQuery:/inline/,type:"asset/inline"}}}}),this.store.chain.merge({module:{rule:{image:{test:/\.(png|jpe?g|gif|webp|ico)$/i,type:"asset/resource"},fonts:{test:/\.(|otf|ttf|eot|woff|woff2)$/i,type:"asset/resource"},svga:{test:/\.(svga)$/i,type:"asset/resource"}}}})}},je=new q});var Q,De,Fe=l(()=>{"use strict";Q=class{store;async setup(e){this.store=e;let t=[this.common(),this.stats(),this.devServer(),this.optimization()];await Promise.all(t)}async common(){this.store.merge({node:{global:!0},experiments:{rspackFuture:{newTreeshaking:this.store.empConfig.debug.newTreeshaking},outputModule:this.store.empConfig.isESM,topLevelAwait:!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?"source-map":!1,builtins:{},output:this.store.empConfig.output,resolve:this.store.empConfig.resolve,externals:this.store.empConfig.externals})}async stats(){this.store.merge({stats:{colors:!0,all:!1,assets:!1,chunks:!1,timings:!0,version:!0}})}async devServer(){this.store.merge({devServer:this.store.empConfig.server})}async optimization(){let e={moduleIds:this.store.empConfig.build.moduleIds,chunkIds:this.store.empConfig.build.chunkIds,minimize:this.store.empConfig.build.minify,splitChunks:{chunks:"async",cacheGroups:{}}};this.store.empConfig.build.polyfill&&(e.splitChunks.cacheGroups={}),this.store.chain.merge({optimization:e})}},De=new Q});import Ae from"html-webpack-plugin";var Me,D,Re,F,Pt,M,Y=l(()=>{"use strict";y();u();Me="HtmlImportMapPlugin",D=class{importMap;chunk;constructor(e,t){this.importMap=e,this.chunk=t}apply(e){e.hooks.compilation.tap(Me,t=>{Ae.getHooks(t).alterAssetTagGroups.tapAsync(Me,(s,r)=>{if(!s.plugin.userOptions.chunks?.includes(this.chunk))return r(null,s);s.headTags.push({tagName:"script",attributes:{type:"importmap"},innerHTML:`${JSON.stringify(this.importMap,null,2)}`,voidTag:!1,meta:{plugin:void 0}}),r(null,s)})})}},Re="HtmlEmpShareLibPlugin",F=class{chunk;files;constructor(e,t){this.files=h({js:[],css:[]},e),this.chunk=t}apply(e){e.hooks.compilation.tap(Re,t=>{let s=this.files;Ae.getHooks(t).alterAssetTagGroups.tapAsync(Re,(r,o)=>{if(!r.plugin.userOptions.chunks?.includes(this.chunk))return o(null,r);s.js.map(p=>{r.headTags.push({tagName:"script",attributes:{src:p},voidTag:!1,meta:{plugin:void 0}})}),s.css.map(p=>{r.headTags.push({tagName:"link",attributes:{rel:"stylesheet",href:p},voidTag:!1,meta:{plugin:void 0}})}),o(null,r)})})}},Pt=()=>{let i=[`import 'core-js/${n.empConfig.build.coreJsFeatures}'`].join(`
2
- `);return $e(i)},M=class{constructor(){}apply(e){let{webpack:t}=e;new t.EntryPlugin(e.context,Pt(),{name:void 0}).apply(e)}}});import kt from"html-webpack-plugin";import $t from"fast-glob";import x from"node:path";var Z,Be,ze=l(()=>{"use strict";y();Y();Z=class{store;entriesConfig={};async setup(e){this.store=e,await this.init(),this.toConfig()}setHtmlConfig(e,t){return e.template=this.setTemplate(e.template),e.favicon=this.setFavicion(e.favicon),e.chunks=t,e.filename=`${t[0]}.html`,this.store.empConfig.base&&(e.publicPath=this.store.empConfig.base),e.tags=e.tags||{},e}setChunk(e){return e.replace(x.extname(e),"").replace(`${this.store.empConfig.appSrc}${x.sep}`,"")}setTemplate(e){return e?this.store.resolve(e):this.store.empResolve(x.join("template","index.html"))}setFavicion(e){return e?this.store.resolve(e):this.store.empResolve(x.join("template","favicon.ico"))}setEntryItem(e,t,s){s=s||this.store.resolve(x.join(this.store.empConfig.appSrc,e));let r=this.setChunk(e),o=[s];this.entriesConfig[r]={entry:{[r]:o},html:this.setHtmlConfig(t,[r])}}setRspackHtmlPlugin(e,t){this.store.chain.plugin(`html-plugin-${t}`).use(kt,[e]),this.store.empConfig.empShareLib&&(e.files=h(e.files,this.store.empConfig.empShareLib.externalAssets)),this.store.chain.plugin(`html-plugin-empShare-${t}`).use(F,[e.files,t]),this.store.empConfig.empShareLib.useImportMap&&this.store.chain.plugin(`html-plugin-import-map-${t}`).use(D,[this.store.empConfig.empShareLib.importMap,t])}setRspackEntry(e){this.store.merge({entry:e})}async init(){let e=x.join(this.store.appSrc,this.store.empConfig.appEntry?this.store.empConfig.appEntry:"index.{ts,tsx,jsx,js}").replace(/\\/g,"/"),t=await $t([e]);if(t[0]){let s=x.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])}if(Object.keys(this.store.empConfig.entries).length>0)for(let[s,r]of Object.entries(this.store.empConfig.entries))this.setEntryItem(s,{...this.store.empConfig.html,...r})}toConfig(){for(let[e,t]of Object.entries(this.entriesConfig))this.setRspackHtmlPlugin(t.html,e),this.setRspackEntry(t.entry)}},Be=new Z});var K,Ge,Ie=l(()=>{"use strict";K=class{store;async setup(e){this.store=e;let t=[this.sass(),this.less(),this.css()];await Promise.all(t)}async sass(){let e={loader:this.store.importResolve("sass-loader"),options:{}};this.store.chain.merge({module:{rule:{sass:{test:/\.(sass|scss)$/,use:{sassLoader:e},type:"css/auto"}}}})}async less(){let e={loader:this.store.importResolve("less-loader"),options:{lessOptions:{javascriptEnabled:!0}}};this.store.chain.merge({module:{rule:{less:{test:/\.less$/,use:{lessLoader:e},type:"css/auto"}}}})}async css(){this.store.chain.merge({module:{rule:{css:{test:/\.css$/,use:{},type:"css/auto"}}}})}},Ge=new K});var ee,He,Ue=l(()=>{"use strict";Ee();Le();Fe();ze();Ie();ee=class{store;async setup(e){this.store=e;let t=[De.setup(this.store),je.setup(this.store),Se.setup(this.store),Be.setup(this.store),Ge.setup(this.store)];await Promise.all(t),await this.store.empConfig.plugins(),await this.store.empConfig.chain()}},He=new ee});import f from"chalk";var te,a,b=l(()=>{"use strict";te=class{pname="";logLevel="debug";setup({pname:e,logLevel:t}){this.pname=e,t&&(this.logLevel=t)}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(`${f.white.bgBlue(this.pname)}${f.blue.bgWhite(` ${e} `)}
3
- `)};cyan=e=>{console.log(`${f.white.bgCyan(this.pname)}${f.cyan.bgWhite(` ${e} `)}
4
- `)};magenta=e=>{console.log(`${f.white.bgMagenta(this.pname)}${f.magenta.bgWhite(` ${e} `)}
5
- `)};green=e=>{console.log(`${f.white.bgGreen(this.pname)}${f.green.bgWhite(` ${e} `)}
6
- `)};yellow=e=>{console.log(`${f.white.bgYellow(this.pname)}${f.yellow.bgWhite(` ${e} `)}
7
- `)};red=e=>{console.log(`${f.white.bgRed(this.pname)}${f.red.bgWhite(` ${e} `)}
8
- `)};sysError=e=>{console.log(`${f.white.bgRed(" System Error Tips ")}${f.red.bgWhite(` ${e} `)}
9
- `)};link=e=>f.hex("#3498db")(e);title=e=>{console.log(`${f.greenBright.bold(`${this.pname}`)} ${f.bgGreenBright(` ${e} `)}
10
- `)}},a=new te});var R,Ne=l(()=>{"use strict";u();R=class{externals={};externalAssets={js:[],css:[]};exp=/^([0-9a-zA-Z_\s]+)@(.*)/;config;importMap={imports:{}};version;isEmpshare=!1;async setup(){this.config=n.empConfig.empShare,this.version=n.empConfig.empShare.mfVersion,this.isEmpshare=!!n.empConfig.empShare.name,this.config.shareLib&&this.setShareLib(),this.prepareEsm()}get useImportMap(){return this.config.useImportMap&&n.empConfig.isESM}get pluginConfig(){let e={...this.config};return delete e.mfVersion,delete e.shareLib,delete e.useImportMap,{manifest:!1,dts:!1,dev:!1,...e}}prepareEsm(){if(n.empConfig.isESM){this.config.library={type:"module"};let e=this.config.remotes||{};for(let[t,s]of Object.entries(e))if(typeof s=="string"){let r=s.match(this.exp)||[];r.length>0&&(e[t]=r[2])}this.config.remotes=e}}async setShareLib(){let e=this.config,t=[];if(typeof e.shareLib=="object")for(let[s,r]of Object.entries(e.shareLib)){let o={};if(o.module=s,typeof r=="string"){let p=r.match(this.exp)||[];p.length>0?(o.global=p[1],o.entry=p[2],o.type="js",t.push(o),o={}):(o.global="",o.entry=r,o.type="js",t.push(o),o={})}else Array.isArray(r)?r.map(p=>{if(!p)return;if(p.split("?")[0].endsWith(".css"))o.entry=p,o.type="css";else{let g=p.match(this.exp)||[];g.length>0?(o.global=g[1],o.entry=g[2],o.type="js"):(o.global="",o.entry=p,o.type="js")}t.push(o),o={}}):typeof r=="object"&&r.entry&&(o.entry=r.entry,o.global=r.global,o.type=r.type,t.push(o),o={})}await Promise.all([this.setExternalAssets(t)])}async setExternalAssets(e=[]){if(e.length>0){let t=[];t=t.concat(e),t.map(s=>{s.type=s.type||"js",s.type==="js"&&s.module?(s.global?this.externals[s.module]=s.global:n.empConfig.isESM&&(this.useImportMap?(this.externals[s.module]=s.module,this.importMap.imports[s.module]=s.entry):this.externals[s.module]=s.entry),s.entry&&!n.empConfig.isESM&&this.externalAssets.js.push(s.entry)):s.type==="css"&&s.entry&&this.externalAssets.css.push(s.entry)})}}}});import Je from"url";import _e from"chalk";var se,E,ie=l(()=>{"use strict";y();se=class{imf={protocol:"",port:8e3,pathname:"/"};host="0.0.0.0";urls={lanUrlForConfig:"",lanUrlForTerminal:_e.gray("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=j;formatUrl(e){let{protocol:t,port:s,pathname:r}=this.imf;return Je.format({protocol:t,hostname:e,port:s,pathname:r})}prettyPrintUrl(e){let{protocol:t,port:s,pathname:r}=this.imf;return Je.format({protocol:t,hostname:e,port:_e.bold(s),pathname:r})}},E=new se});var re,A,oe=l(()=>{"use strict";ie();y();u();re=class{isADB=!1;isHttps=!1;get isHttpBase(){let e=n.empOptions.base||"";return e.indexOf("http://")>-1||e.indexOf("https://")>-1}setup(){if(this.isADB=!!n.empOptions.autoDevBase&&n.mode==="development"&&!this.isHttpBase,!this.isADB)return;let{server:e,https:t}=n.empOptions.server||{};this.isHttps=e==="https"||typeof e=="object"&&e.type==="https"||t===!0;let s=E.getLanIp(),r=this.isHttps?"https":"http",o=n.empOptions.server?.port||8e3;n.empOptions.base=`${r}://${s}:${o}/`,n.empOptions.server=h({port:o,client:{webSocketURL:`${this.isHttps?"wss":"ws"}://${s}:${o}/ws`}},n.empOptions.server)}},A=new re});var B,Ve=l(()=>{"use strict";oe();u();Y();B=class{op={};constructor(e={}){this.op=e}async afterGetEmpOptions(){A.setup(),this.op.afterGetEmpOptions&&await this.op.afterGetEmpOptions()}async beforePlugin(){n.empConfig.build.polyfill==="entry"&&n.chain.plugin("empPolyfill").use(M),this.op.beforePlugin&&await this.op.beforePlugin()}async afterPlugin(){this.op.afterPlugin&&await this.op.afterPlugin()}async beforeBuild(){this.op.beforeBuild&&await this.op.beforeBuild()}async afterBulid(){this.op.afterBulid&&await this.op.afterBulid()}async beforeDevServe(){console.log(this.op),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 Tt from"node:fs";var ne,We,Xe=l(()=>{"use strict";y();Ne();Ve();ne=class{store;appSrc="src";appEntry="";base="";target=[];assign(e,t){return t=t||{},h(e,t)}empShareLib=new R;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 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:s,appEntry:r}=this.store.empOptions;t&&(this.appSrc=t),s&&(this.base=s),r&&(this.appEntry=r),this.store.empConfig.empShare&&await this.empShareLib.setup()}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(){return this.assign({loggerLevel:"info",clearLog:!0,progress:!0,showRsconfig:!1,showPerformance:!1,rspackCache:!0,infrastructureLogging:{appendOnly:!0,level:"warn"},newTreeshaking:this.store.empConfig.isESM},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:!0,minify:!this.store.isDev,minOptions:{},target:"es5",polyfill:!1,coreJsFeatures:"stable",externalHelpers:!1,browserslist:this.store.browserslistOptions.default,swcConfig:{}},{...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:{content:"width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0"},keywords:{keywords:""},description:{description:""}};return this.assign({lang:"zh-CN",title:"EMP",inject:"body",minify:!this.store.isDev,scriptLoading:this.isESM?"module":"defer",meta:e,files:{css:[],js:[]},tags:{headTags:[],bodyTags:[]}},this.store.empOptions.html)}get entries(){return this.store.empOptions.entries?this.store.empOptions.entries:{}}get server(){let e={host:"0.0.0.0",port:8e3,open:process.platform==="darwin",hot:!0,watchFiles:["src/**/*.html"],static:[{directory:this.store.publicDir,watch:this.store.isDev}],allowedHosts:["all"],historyApiFallback:!0,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, PATCH, OPTIONS","Access-Control-Allow-Headers":"X-Requested-With, content-type, Authorization"}};return this.assign(e,this.store.empOptions.server)}get empShare(){return this.assign({name:"",filename:"emp.js",shared:{},mfVersion:1.5},this.store.empOptions.empShare)}get css(){return this.assign({postcss:[]},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,o={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};return this.assign(o,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"||t==="esm")&&(s[`import.meta.env.${r}`]=JSON.stringify(e[r])),(t==="all"||t==="cjs")&&(s[`process.env.${r}`]=JSON.stringify(e[r])),s[`${r}`]=JSON.stringify(e[r])}),s}get externals(){return this.assign(this.empShareLib.externals,this.store.empOptions.externals)}get resolve(){return h({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(){let e=this.store.resolve("emp-config.js");if(!Tt.existsSync(e))return;let{default:t}=await import(this.store.importFileUrl(e));typeof t=="function"?this.store.empOptions=await t(this.store):this.store.empOptions=t||{}}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"}},We=new ne});import v from"node:path";import jt from"node:fs/promises";import Lt from"webpack-chain";import{pathToFileURL as Dt}from"node:url";import Ft from"node:util";var pe,n,u=l(()=>{"use strict";W();Ue();b();Xe();y();pe=class{empPkg={dependencies:{},devDependencies:{},version:"2.0.0",name:""};pkg={dependencies:{},devDependencies:{},version:"0.0.0",name:""};root=process.cwd();empRoot=we;empSource=v.resolve(this.empRoot,"dist");resolve=e=>v.isAbsolute(e)?e:v.resolve(this.root,e);empResolve=e=>v.resolve(this.empRoot,e);appSrc="";outDir="";publicDir="";resource={dir:"",key:"",cert:""};cacheDir="";mode="development";cliMode="dev";isDev=!0;cliOptions;chain;rsConfig;empOptions={};empConfig;vCompare=L;deepAssign=h;getLanIp=j;async setup(e,t){await this.initVars(e,t),this.empConfig=We,await this.empConfig.setup(this),this.initPaths(),this.chain=new Lt,await He.setup(this),this.setLogger(),this.toConfig(),this.logConfig()}async initVars(e,t){this.cliOptions=t||{},this.cliMode="prod",this.mode=e==="dev"?"development":"production",this.isDev=this.mode==="development";let s=await V(this.empResolve("package.json")),r=await V(this.resolve("package.json"));this.empPkg={...this.empPkg,...s},this.pkg={...this.pkg,...r}}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),this.resource.dir=v.join(this.empRoot,"resource"),this.resource.cert=v.join(this.resource.dir,"emp.cert"),this.resource.key=v.join(this.resource.dir,"emp.key")}setLogger(){let e=this.cliMode==="dev"?"debug":"info";this.empConfig.debug.loggerLevel&&(e=this.empConfig.debug.loggerLevel),a.setup({pname:`EMP\u26A1${this.empPkg.version}${this.cliMode==="dev"?".DEV":""}`,logLevel:e})}merge(e){this.chain.merge(e)}importResolve(e,t){return Ce(e,t)}importFileUrl(e){return Dt(e).toString()}toConfig(){this.rsConfig=this.chain.toConfig()}logConfig(){if(this.empConfig.debug.showRsconfig)if(typeof this.empConfig.debug.showRsconfig=="string"){let e=v.join(this.root,this.empConfig.debug.showRsconfig);jt.writeFile(e,JSON.stringify(this.rsConfig,null,2))}else{let e={colors:!0,depth:null},t=typeof this.empConfig.debug.showRsconfig=="object"?h(e,this.empConfig.debug.showRsconfig):e;console.log(a.link("[Compile Config]")),console.log(Ft.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 >= 20"]}}},n=new pe});import{exec as Mt}from"node:child_process";import{promisify as Rt}from"node:util";var Qe,qe,At,Bt,Ye,Ze=l(()=>{"use strict";b();u();Qe=Rt(Mt),qe=["Google Chrome Canary","Google Chrome Dev","Google Chrome Beta","Google Chrome","Microsoft Edge","Brave Browser","Vivaldi","Chromium"],At=async()=>{let i=process.env.BROWSER;if(!i||!qe.includes(i)){let{stdout:e}=await Qe("ps cax");i=qe.find(t=>e.includes(t))}return i},Bt=async i=>{if(process.platform==="darwin")try{let t=await At();if(t){let s=`osascript openChrome.applescript "${encodeURI(i)}" "${t}"`;return await Qe(s,{cwd:n.resource.dir}),!0}}catch(t){a.debug(t)}try{let{default:t}=await import("open");return await t(i),!0}catch(t){return a.error("Failed to open start URL."),a.error(t),!1}},Ye=Bt});import zt from"net";import Gt from"os";async function et(i,e="localhost"){if(i!==It&&(i<Ke||i>ae))throw new Error(`Port number must lie between ${Ke} and ${ae}`);let t=i,s=Ht(),r;e&&!s.has(e)?r=new Set([e]):r=s;let o=new Set(["EADDRINUSE","EACCES"]);for(;t<=ae;)try{return await Nt(t,r)}catch(p){if(!o.has(p.code))throw p;t+=1}throw new Error("No available ports found")}var Ke,ae,It,Ht,Ut,Nt,tt=l(()=>{"use strict";Ke=1024,ae=65535,It=443,Ht=()=>{let i=Gt.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},Ut=(i,e)=>new Promise((t,s)=>{let r=zt.createServer();r.unref(),r.on("error",s),r.listen(i,e,()=>{let{port:o}=r.address();r.close(()=>{t(o)})})}),Nt=async(i,e)=>{let t=new Set(["EADDRNOTAVAIL","EINVAL"]);for(let s of e)try{await Ut(i,s)}catch(r){if(!t.has(r.code))throw r}return i}});import st from"node:fs/promises";import z from"chalk";var C,G=l(()=>{"use strict";b();u();y();ie();Ze();tt();oe();C=class{sf={protocol:"http",host:"0.0.0.0",port:8e3,publicPath:"",publicHasHttp:!1,isOpenBrower:!1,url:"",urls:{localUrlForBrowser:"",localUrlForTerminal:"",lanUrlForTerminal:"",lanUrlForConfig:""}};async adaptServer(){this.sf.publicPath=n.rsConfig.output?.publicPath==="auto"?"/":n.rsConfig.output?.publicPath||"/",this.sf.isOpenBrower=!!n.empConfig.server.open,this.sf.protocol=this.isHttps?"https":"http",this.sf.host=n.empConfig.server.host?n.empConfig.server.host:this.sf.host,this.sf.port=n.empConfig.server.port,await this.serverPort(),E.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=E.prettyPrintUrl("localhost")):(this.sf.urls=E.urls,this.sf.url=this.sf.urls.localUrlForBrowser)}startOpen(){let{urls:e}=this.sf;this.sf.publicHasHttp?(a.info(`${z.greenBright("\u279C")} Local: ${a.link(e.localUrlForTerminal)}`),a.info(`${z.greenBright("\u279C")} Network: ${a.link(this.sf.publicPath)}`)):(a.info(`${z.greenBright("\u279C")} Local: ${a.link(e.localUrlForTerminal)}`),a.info(`${z.greenBright("\u279C")} Network: ${a.link(e.lanUrlForTerminal)}
11
- `)),this.sf.isOpenBrower&&Ye(this.sf.url)}async setup(e,t){await n.setup(e,t),n.empConfig.debug.clearLog&&Pe(),a.title(`${e}`),await this.adaptServer(),await this.run(),this.afterRun()}async run(){}afterRun(){process.on("SIGINT",function(){process.exit()})}get isHttps(){let{server:e,https:t}=n.empConfig.server||{};return e==="https"||typeof e=="object"&&e.type==="https"||t===!0}getcert(){return Promise.all([st.readFile(n.resource.key),st.readFile(n.resource.cert)])}async serverPort(){if(A.isADB)return;let{port:e,host:t}=this.sf,s=await et(e,t);s!==e&&(this.sf.port=s,n.rsConfig.devServer?.port&&(n.rsConfig.devServer.port=s))}}});import d from"chalk";import w from"node:path";import{gzipSizeSync as Jt}from"gzip-size";import _t from"node:fs";function Zt(i,e){let t=[i,e],s=["File","Size","Gzipped"].reduce((r,o,p)=>{let m=t[p],g=o;return m&&(g=o.length<m?o+" ".repeat(m-o.length):o),`${r+g} `}," ");console.log(d.bold.blue(s))}async function it(i){let e=i.toJson({all:!1,assets:!0,timings:!0});$(e.time);let s=e.assets.filter(c=>qt(c.name)).map(Yt);s.sort((c,P)=>c.size-P.size);let r=Math.max(...s.map(c=>c.sizeLabel.length)),o=Math.max(...s.map(c=>(c.folder+w.sep+c.name).length));Zt(o,r);let p=0,m=0;s.forEach(c=>{let{sizeLabel:P}=c,{name:ft,folder:ut,gzipSizeLabel:gt}=c,ge=(ut+w.sep+ft).length,de=P.length;if(p+=c.size,m+=c.gzippedSize,de<r){let N=" ".repeat(r-de);P+=N}let ye=d.gray(c.folder+w.sep)+Kt(c.name);if(ge<o){let N=" ".repeat(o-ge);ye+=N}a.info(` ${ye} ${d.gray(P)} ${gt}`)});let g=`${d.bold.blue("Total size:")} ${I(p)}`,O=`${d.bold.blue("Gzipped size:")} ${I(m)}`;a.info(`
12
- ${g}
13
- ${O}
14
- `)}function $(i=0){a.info(`${d.greenBright("\u2713")} Ready in ${ke(Number(i))}`)}var Vt,Wt,Xt,qt,Qt,Yt,I,Kt,H=l(()=>{"use strict";u();b();y();Vt=/\.html$/,Wt=/\.(?:js|mjs|cjs|jsx)$/,Xt=/\.css$/,qt=i=>!/\.map$/.test(i)&&!/\.LICENSE\.txt$/.test(i),Qt=i=>i>300*1e3?d.red:i>100*1e3?d.yellow:d.white,Yt=i=>{let e=i.name.split("?")[0],t=I(i.size),s=w.basename(e),r=w.join(w.basename(n.empConfig.build.outDir),w.dirname(e)),o=_t.readFileSync(w.join(n.empConfig.build.outDir,e)),p=o.length,m=Jt(o),g=Qt(m)(I(m));return{size:p,folder:r,name:s,gzippedSize:m,sizeLabel:t,gzipSizeLabel:g}};I=i=>{let e=i/1e3;return`${e.toFixed(e<1?2:1)} kB`},Kt=i=>Wt.test(i)?d.yellowBright(i):Xt.test(i)?d.greenBright(i):Vt.test(i)?d.blueBright(i):d.magenta(i)});var rt={};J(rt,{default:()=>ss});import{rspack as es}from"@rspack/core";import{RspackDevServer as ts}from"@rspack/dev-server";var le,ss,ot=l(()=>{"use strict";u();G();b();y();H();le=class extends C{get rspackDevConfig(){return h(n.rsConfig,{stats:{all:!1,colors:!0,assets:!1,chunks:!1,entrypoints:!1,timings:!1,version:!1,errors:!0,warnings:!0},devServer:{open:!1,setupExitSignals:!0}})}async devServerConfig(){let e=Object.assign({},n.rsConfig.devServer);if(this.isHttps&&(e.https===!0&&delete e.https,!e.server)){let[t,s]=await this.getcert();e.server={type:"https",options:{key:t,cert:s}}}return e}async run(){let e=es(this.rspackDevConfig);if(!n.rsConfig.devServer){a.error("devServer is not defined in config");return}let t=await this.devServerConfig(),s=new ts(t,e);this.startOpen(),n.empConfig.lifeCycle.beforeDevServe&&await n.empConfig.lifeCycle.beforeDevServe(),await s.start();let r=o=>{let p=o?.toJson({all:!1,colors:!1,assets:!1,chunks:!1,timings:!0});$(p.time)};n.empConfig.debug.showPerformance&&e.hooks.afterDone.tap("done",r),s.middleware?.waitUntilValid(o=>{n.empConfig.debug.showPerformance||r(o),n.empConfig.lifeCycle.afterDevServe&&n.empConfig.lifeCycle.afterDevServe()})}},ss=new le});var nt={};J(nt,{default:()=>rs});import{rspack as is}from"@rspack/core";var ce,rs,pt=l(()=>{"use strict";b();u();G();H();ce=class extends C{async run(){n.empConfig.lifeCycle.beforeBuild&&await n.empConfig.lifeCycle.beforeBuild(),is(n.rsConfig,async(e,t)=>{if(e!==null){a.error(e.stack||e),e.message&&a.error(e.message);return}if(!t){a.red("Stats is Undefined.");return}t.hasErrors()&&(a.error(t.toString({colors:!0,children:!0})),a.red("Failed to compile."),process.exit(1)),t.hasWarnings()&&(a.yellow("Compiled with warnings."),a.warn(t.toString({colors:!0,children:!0}))),await it(t),n.empConfig.lifeCycle.afterBulid&&await n.empConfig.lifeCycle.afterBulid()})}},rs=new ce});import os from"express";import ns from"cors";import ps from"compression";import as from"https";var U,at=l(()=>{"use strict";G();U=class extends C{app;async init(){let e=os();e.use(ps()),e.use(ns()),this.app=e}async server(){if(this.isHttps){let[e,t]=await this.getcert();as.createServer(typeof this.isHttps!="boolean"?this.isHttps:{key:e,cert:t},this.app).listen(this.sf.port,async()=>{this.startOpen(),await this.onReady()})}else this.app.listen(this.sf.port,async()=>{this.startOpen(),await this.onReady()})}async onReady(){}async middleware(){}async start(){await this.init(),await this.middleware(),await this.server()}}});var lt={};J(lt,{default:()=>fs});import ls from"express";import cs from"path";import ms from"node:fs/promises";import hs from"node:fs";var me,fs,ct=l(()=>{"use strict";at();u();b();H();me=class extends U{timing=0;async run(){if(this.timing=Date.now(),!hs.existsSync(n.outDir))return a.sysError(`emp serve must be executed after emp build,${n.outDir} not exist!`);n.empConfig.lifeCycle.beforeServe&&await n.empConfig.lifeCycle.beforeServe(),this.start()}async middleware(){let e=n.resolve(n.rsConfig.output?.path);this.app.use(ls.static(e));let t=await ms.readFile(cs.join(e,"index.html"),"utf8");this.app.get("*",(s,r)=>r.send(t))}async onReady(){$(Date.now()-this.timing),n.empConfig.lifeCycle.afterServe&&await n.empConfig.lifeCycle.afterServe()}},fs=new me});u();u();y();b();import{program as S}from"commander";import he,{exit as us}from"node:process";function mt(){let i="20.0.0";L(i,he.versions.node)===1&&(a.sysError(`\u5F53\u524D\u7248\u672C\u4E3Av${he.versions.node} \u6700\u4F4E\u8981\u6C42\u4E3Av${i}`),us(0)),S.version(n.empPkg.version,"-v, --version").usage("<command> [options]"),S.command("dev").description("Dev \u6A21\u5F0F").option("-e, --env <env>","\u90E8\u7F72\u73AF\u5883 dev\u3001test\u3001prod").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",(e,t)=>{let[s,r]=e.split("=");return t[s]=r,t},{}).action(async e=>{let{default:t}=await Promise.resolve().then(()=>(ot(),rt));await t.setup("dev",e)}),S.command("build").description("Build \u6A21\u5F0F").option("-e, --env <env>","\u90E8\u7F72\u73AF\u5883 dev\u3001test\u3001prod").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("-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",(e,t)=>{let[s,r]=e.split("=");return t[s]=r,t},{}).action(async e=>{let{default:t}=await Promise.resolve().then(()=>(pt(),nt));await t.setup("build",e)}),S.command("serve").description("Server \u6A21\u5F0F").option("-cl, --clearLog <clearLog>","\u6E05\u7A7A\u65E5\u5FD7 \u9ED8\u8BA4\u4E3A true").action(async e=>{let{default:t}=await Promise.resolve().then(()=>(ct(),lt));await t.setup("serve",e)}),S.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(e=>{}),S.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(e=>{}),S.parse(he.argv)}u();import gs from"fast-glob";import ht from"node:fs/promises";import fe from"node:path";var ds=/(?:(?:import|export)\s?(?:type)?\s?(?:(?:\{[^;\n]+\})|(?:[^;\n]+))\s?from\s?['"][^;\n]+['"])|(?:import\(['"][^;\n]+?['"]\))/g,ys=/(?:import|export)\s?(?:type)?\s?\{?.+\}?\s?from\s?['"](.+)['"]/,bs=/import\(['"]([^;\n]+?)['"]\)/,ue=class{list=[];outDir=n.resolve("dist");aliasName="@empjs/cli";async setup(e,t){e&&(this.outDir=e),t&&(this.aliasName=t);let s=await this.readDts();await this.writeCode(s)}async readDts(){this.list=await gs([`${n.empConfig.build.outDir}/**/*.d.ts`]);let e=[];this.list.map(s=>{s=n.resolve(s),e.push(this.readFile(s))});let t=await Promise.all(e);return t=t.map(s=>this.replaceAliasPath(s)),t}async readFile(e){let t=await ht.readFile(e,{encoding:"utf-8"});return{src:e,code:t}}replaceAliasPath({src:e,code:t}){t=t.replace(ds,r=>{let o=r.match(ys);if(o||(o=r.match(bs)),o&&o[1]){let p=o[1];if(!p.startsWith("."))return r;let m=fe.resolve(fe.dirname(e),p).replace(this.outDir,this.aliasName);return r.replace(o[1],m)}return r});let s=e.replace(this.outDir,this.aliasName).replace(".d.ts","");return s.endsWith("/index")&&(s=s.replace("/index","")),t=this.warpDeclareModule(s,t),{code:t,src:e,mod:s}}warpDeclareModule(e,t){return`declare module '${e}' {\r
1
+ import {createRequire as __createRequire} from 'module';var require=__createRequire(import.meta.url);
2
+ var $t=Object.defineProperty;var S=(i=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(i,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):i)(function(i){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+i+'" is not supported')});var f=(i,e)=>()=>(i&&(e=i(i=0)),e);var A=(i,e)=>{for(var t in e)$t(i,t,{get:e[t],enumerable:!0})};import{fileURLToPath as Mt}from"url";import jt from"path";var Ne,Lt,m,c,a=f(()=>{"use strict";Ne=()=>Mt(import.meta.url),Lt=()=>jt.dirname(Ne()),m=Lt(),c=Ne()});import b from"chalk";var Dt,E,Tt,Rt,Ft,re,H,At,Nt,j,oe,zt,ne,L,h,D=f(()=>{"use strict";a();Dt=b.hex("#1abc9c"),E=b.hex("#16a085"),Tt=b.hex("#2ecc71"),Rt=b.hex("#27ae60"),Ft=b.hex("#e74c3c"),re=b.hex("#c0392b"),H=b.hex("#f1c40f"),At=b.hex("#f39c12"),Nt=b.hex("#3498db"),j=b.hex("#2980b9"),oe=b.hex("#ecf0f1"),zt=b.hex("#fd79a8"),ne=b.hex("#e84393"),L=b.hex("#7f8c8d"),h={lightGreen:Dt,green:E,lightCyan:Tt,cyan:Rt,lightRed:Ft,red:re,yellow:H,orange:At,lightBlue:Nt,blue:j,white:oe,lightMagenta:zt,magenta:ne,gray:L}});var ae,l,O=f(()=>{"use strict";a();D();ae=class{brandName="";fullName="";logLevel="debug";setup({brandName:e,logLevel:t,fullName:s}){this.brandName=` [${e}] `,this.fullName=` ${s} `,this.fullName=h.green.bold(this.fullName),t&&(this.logLevel=t)}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
+ `)};cyan=e=>{console.log(`${h.lightCyan(this.brandName)}${h.cyan(` ${e} `)}
4
+ `)};magenta=e=>{console.log(`${h.lightMagenta(this.brandName)}${h.magenta(` ${e} `)}
5
+ `)};green=e=>{console.log(`${h.lightGreen(this.brandName)}${h.green(` ${e} `)}
6
+ `)};yellow=e=>{console.log(`${h.yellow(this.brandName)}${h.orange(` ${e} `)}
7
+ `)};red=e=>{console.log(`${h.lightRed(this.brandName)}${h.red(` ${e} `)}
8
+ `)};sysError=e=>{console.log(`${h.lightRed(" System Error Tips ")}${h.red(` ${e} `)}
9
+ `)};link=e=>h.blue(e);title=e=>{console.log(`${this.fullName}${h.yellow.underline(`${e}`)}
10
+ `)}},l=new ae});var me={};A(me,{clearConsole:()=>le,deepAssign:()=>g,ensureArray:()=>Ut,getLanIp:()=>N,getPkgVersion:()=>pe,importJsVm:()=>ce,jsonFilter:()=>Jt,timeFormat:()=>B,vCompare:()=>z});import{ip as It}from"address";import Gt from"chalk";import{gateway4sync as Ht}from"default-gateway";import Bt from"fs-extra";function le(){process.stdout.write(process.platform==="win32"?"\x1B[2J\x1B[0f":"\x1B[2J\x1B[3J\x1B[H")}function g(i,...e){for(let t of e)for(let s in t){let r=t[s],n=i[s];if(Object(r)==r&&Object(n)===n){i[s]=g(n,r);continue}i[s]=t[s]}return i}var N,pe,Ut,Jt,z,B,ce,C=f(()=>{"use strict";a();N=()=>{let{int:i}=Ht();return It(i||"")||"127.0.0.1"},pe=i=>{try{let{version:e}=Bt.readJSONSync(i);return e}catch{return}};Ut=i=>Array.isArray(i)?i:[i],Jt=(i={},e=[])=>Object.keys(i).filter(t=>!e.includes(t)).reduce((t,s)=>(t[s]=i[s],t),{}),z=(i="",e="")=>{let t=i.replace("^","").split("."),s=e.replace("^","").split("."),r=Math.max(t.length,s.length),n=0;for(let p=0;p<r;p++){let d=t.length>p?t[p]:0,v=isNaN(Number(d))?d.charCodeAt():Number(d),R=s.length>p?s[p]:0,u=isNaN(Number(R))?R.charCodeAt():Number(R);if(v<u){n=-1;break}else if(v>u){n=1;break}}return n},B=i=>{i=i/1e3;let e=s=>Gt.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 ze={};A(ze,{chalk:()=>_t,color:()=>h,glob:()=>P,logger:()=>l,utils:()=>me});import _t from"chalk";import{glob as P}from"glob";var I=f(()=>{"use strict";a();D();C();O()});import Vt from"path";import Wt from"jiti";var Ie,Ge,He=f(()=>{"use strict";a();I();y();Ie=Wt(c,{esmResolve:!0,requireCache:!1,interopDefault:!0}),Ge=async()=>{let i=Vt.join(o.root,"emp{-,.}config.{ts,js,mjs,cjs,mts,cts}");return(await P([i],{windowsPathsNoEscape:!0})||[])[0]}});var U,Be=f(()=>{"use strict";a();y();U=class{externals={};externalAssets={js:[],css:[]};exp=/^([0-9a-zA-Z_\s]+)@(.*)/;config;importMap={imports:{}};isEmpshare=!1;async setup(){this.config=o.empConfig.empShare,this.isEmpshare=!!o.empConfig.empShare.name,o.empConfig.empShare.fastMode&&o.empConfig.empShareFastMode.setup(),this.config.shareLib&&this.setShareLib(),this.prepareEsm()}get useImportMap(){return this.config.useImportMap&&o.empConfig.isESM}get pluginConfig(){let e={...this.config};return delete e.shareLib,delete e.useImportMap,delete e.fastMode,{manifest:!1,dts:!1,...e}}prepareEsm(){if(o.empConfig.isESM){this.config.library={type:"module"};let e=this.config.remotes||{};for(let[t,s]of Object.entries(e))if(typeof s=="string"){let r=s.match(this.exp)||[];r.length>0&&(e[t]=r[2])}this.config.remotes=e}}async setShareLib(){let e=this.config,t=[];if(typeof e.shareLib=="object")for(let[s,r]of Object.entries(e.shareLib)){let n={};if(n.module=s,typeof r=="string"){let p=r.match(this.exp)||[];p.length>0?(n.global=p[1],n.entry=p[2],n.type="js",t.push(n),n={}):(n.global="",n.entry=r,n.type="js",t.push(n),n={})}else Array.isArray(r)?r.map(p=>{if(!p)return;if(p.split("?")[0].endsWith(".css"))n.entry=p,n.type="css";else{let v=p.match(this.exp)||[];v.length>0?(n.global=v[1],n.entry=v[2],n.type="js"):(n.global="",n.entry=p,n.type="js")}t.push(n),n={}}):typeof r=="object"&&r.entry&&(n.entry=r.entry,n.global=r.global,n.type=r.type,t.push(n),n={})}await Promise.all([this.setExternalAssets(t)])}async setExternalAssets(e=[]){if(e.length>0){let t=[];t=t.concat(e),t.map(s=>{s.type=s.type||"js",s.type==="js"&&s.module?(s.global?this.externals[s.module]=s.global:o.empConfig.isESM&&(this.useImportMap?(this.externals[s.module]=s.module,this.importMap.imports[s.module]=s.entry):this.externals[s.module]=s.entry),s.entry&&!o.empConfig.isESM&&this.externalAssets.js.push(s.entry)):s.type==="css"&&s.entry&&this.externalAssets.css.push(s.entry)})}}}});var J,Ue=f(()=>{"use strict";a();y();J=class{fastMode={runtimeHost:"",runtimeLib:"",externals:{},globalVal:"EmpShareLib",framework:"react"};externalMF={"@module-federation/runtime":"MFRuntime","@module-federation/sdk":"MFSDK"};externalReact={react:"React","react-dom":"ReactDOM","react-router-dom":"ReactRouterDOM"};externals={};getRuntimeLib(e){return`${e}/runtime${o.mode==="development"?".development":""}.umd.js`}setup(){this.fastMode=o.deepAssign(this.fastMode,o.empConfig.empShare.fastMode),this.injectLib(),this.setExternals()}injectLib(){let{runtimeHost:e,runtimeLib:t}=this.fastMode;if(e||t){let s=t||this.getRuntimeLib(e);o.empConfig.empShareLib.externalAssets.js.push(s)}}setExternals(){for(let[e,t]of Object.entries(this.externalMF))this.externals[e]=`${this.fastMode.globalVal}.${t}`;if(this.fastMode.framework==="react")for(let[e,t]of Object.entries(this.externalReact))this.externals[e]=`${this.fastMode.globalVal}.${t}`;Object.entries(this.fastMode.externals).length>0&&(this.externals=o.deepAssign(this.externals,this.fastMode.externals)),o.empConfig.empShareLib.externals=o.deepAssign(o.empConfig.empShareLib.externals,this.externals)}}});import qt from"net";import Xt from"os";async function _(i,e="localhost"){if(i!==Kt&&(i<Je||i>fe))throw new Error(`Port number must lie between ${Je} and ${fe}`);let t=i,s=Qt(),r;e&&!s.has(e)?r=new Set([e]):r=s;let n=new Set(["EADDRINUSE","EACCES"]);for(;t<=fe;)try{return await Yt(t,r)}catch(p){if(!n.has(p.code))throw p;t+=1}throw new Error("No available ports found")}var Je,fe,Kt,Qt,Zt,Yt,he=f(()=>{"use strict";a();Je=1024,fe=65535,Kt=443,Qt=()=>{let i=Xt.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},Zt=(i,e)=>new Promise((t,s)=>{let r=qt.createServer();r.unref(),r.on("error",s),r.listen(i,e,()=>{let{port:n}=r.address();r.close(()=>{t(n)})})}),Yt=async(i,e)=>{let t=new Set(["EADDRNOTAVAIL","EINVAL"]);for(let s of e)try{await Zt(i,s)}catch(r){if(!t.has(r.code))throw r}return i}});import _e from"url";import es from"chalk";var ue,T,ge=f(()=>{"use strict";a();D();C();ue=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==="::",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=N;formatUrl(e){let{protocol:t,port:s,pathname:r}=this.imf;return _e.format({protocol:t,hostname:e,port:s,pathname:r})}prettyPrintUrl(e){let{protocol:t,port:s,pathname:r}=this.imf;return _e.format({protocol:t,hostname:e,port:es.bold(s),pathname:r})}},T=new ue});var de,V,ye=f(()=>{"use strict";a();he();ge();C();y();de=class{isADB=!1;isHttps=!1;get isHttpBase(){let e=o.empOptions.base||"";return e.indexOf("http://")>-1||e.indexOf("https://")>-1}async setup(){if(this.isADB=!!o.empOptions.autoDevBase&&o.mode==="development"&&!this.isHttpBase,!this.isADB)return;let{server:e,https:t}=o.empOptions.server||{};this.isHttps=e==="https"||typeof e=="object"&&e.type==="https"||t===!0;let s=T.getLanIp(),r=this.isHttps?"https":"http",n=o.empOptions.server?.port||8e3;n=await _(n,s),o.empOptions.base=`${r}://${s}:${n}/`,o.empOptions.server=g({port:n,client:{webSocketURL:`${this.isHttps?"wss":"ws"}://${s}:${n}/ws`}},o.empOptions.server)}},V=new de});import qe from"html-webpack-plugin";var Ve,W,We,q,ts,X,be=f(()=>{"use strict";a();C();y();Ve="HtmlImportMapPlugin",W=class{importMap;chunk;constructor(e,t){this.importMap=e,this.chunk=t}apply(e){e.hooks.compilation.tap(Ve,t=>{qe.getHooks(t).alterAssetTagGroups.tapAsync(Ve,(s,r)=>{if(!s.plugin.userOptions.chunks?.includes(this.chunk))return r(null,s);s.headTags.push({tagName:"script",attributes:{type:"importmap"},innerHTML:`${JSON.stringify(this.importMap,null,2)}`,voidTag:!1,meta:{plugin:void 0}}),r(null,s)})})}},We="HtmlEmpShareLibPlugin",q=class{chunk;files;constructor(e,t){this.files=g({js:[],css:[]},e),this.chunk=t}apply(e){e.hooks.compilation.tap(We,t=>{let s=this.files;qe.getHooks(t).alterAssetTagGroups.tapAsync(We,(r,n)=>{if(!r.plugin.userOptions.chunks?.includes(this.chunk))return n(null,r);s.js.map(p=>{r.headTags.push({tagName:"script",attributes:{src:p},voidTag:!1,meta:{plugin:void 0}})}),s.css.map(p=>{r.headTags.push({tagName:"link",attributes:{rel:"stylesheet",href:p},voidTag:!1,meta:{plugin:void 0}})}),n(null,r)})})}},ts=()=>{let i=[`import 'core-js/${o.empConfig.build.coreJsFeatures}'`].join(`
11
+ `);return ce(i)},X=class{constructor(){}apply(e){let{webpack:t}=e;new t.EntryPlugin(e.context,ts(),{name:void 0}).apply(e)}}});var K,Xe=f(()=>{"use strict";a();y();ye();be();K=class{op={};constructor(e={}){this.op=e}async afterGetEmpOptions(){await V.setup(),this.op.afterGetEmpOptions&&await this.op.afterGetEmpOptions()}async beforePlugin(){o.empConfig.build.polyfill==="entry"&&o.chain.plugin("empPolyfill").use(X),this.op.beforePlugin&&await this.op.beforePlugin()}async afterPlugin(){this.op.afterPlugin&&await this.op.afterPlugin()}async beforeModule(){this.op.beforeModule&&await this.op.beforeModule()}async afterModule(){this.op.afterModule&&await this.op.afterModule()}async beforeEmpPlugin(){this.op.beforeEmpPlugin&&await this.op.beforeEmpPlugin()}async afterEmpPlugin(){this.op.afterEmpPlugin&&await this.op.afterEmpPlugin()}async beforeBuild(){this.op.beforeBuild&&await this.op.beforeBuild()}async afterBulid(){this.op.afterBulid&&await this.op.afterBulid()}async beforeDevServe(){this.op.beforeDevServe&&await this.op.beforeDevServe()}async afterDevServe(){this.op.afterDevServe&&await this.op.afterDevServe()}async beforeServe(){this.op.beforeServe&&await this.op.beforeServe()}async afterServe(){this.op.afterServe&&await this.op.afterServe()}}});import ss from"fs";var ve,Ke,Qe=f(()=>{"use strict";a();He();C();Be();Ue();Xe();ve=class{store;appSrc="src";appEntry="";base="";target=[];assign(e,t){return t=t||{},g(e,t)}empShareFastMode=new J;empShareLib=new U;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 K(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),this.store.empConfig.empShare&&await this.empShareLib.setup()}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(){return this.assign({loggerLevel:"info",clearLog:!0,progress:!0,showRsconfig:!1,showPerformance:!1,rspackCache:!0,infrastructureLogging:{appendOnly:!0,level:"warn"},newTreeshaking:this.store.empConfig.isESM},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:!0,minify:!this.store.isDev,minOptions:{},target:"es5",polyfill:!1,polyfillInclude:["es.object.values","es.object.entries","es.array.flat"],coreJsFeatures:"stable",externalHelpers:!1,browserslist:this.store.browserslistOptions.default,swcConfig:{}},{...this.store.empOptions.build,staticDir:e})}get html(){let e=this.store.empOptions.html?.template?{}:{charset:{charset:"utf-8"},"http-equiv":{"http-equiv":"X-UA-Compatible",content:"IE=edge"},viewport:{name:"viewport",content:"width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0"},keywords:{keywords:""},description:{description:""}};return this.assign({lang:"zh-CN",title:"EMP",inject:"body",minify:!this.store.isDev,scriptLoading:this.isESM?"module":"defer",meta:e,files:{css:[],js:[]},tags:{headTags:[],bodyTags:[]}},this.store.empOptions.html)}get entries(){return this.store.empOptions.entries?this.store.empOptions.entries:{}}get server(){let e={host:"0.0.0.0",port:8e3,open:process.platform==="darwin",hot:!0,watchFiles:["src/**/*.html"],static:[{directory:this.store.publicDir,watch:this.store.isDev}],allowedHosts:["all"],historyApiFallback:!0,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, PATCH, OPTIONS","Access-Control-Allow-Headers":"X-Requested-With, content-type, Authorization"}};return this.assign(e,this.store.empOptions.server)}get empShare(){return this.assign({name:"",filename:"emp.js",shared:{}},this.store.empOptions.empShare)}get css(){return this.assign({sass:{mode:"modern",api:"modern-compiler"}},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,n={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};return this.store.isDev&&this.store.empConfig.empShare.dts!==!1&&(n.clean=!1),this.assign(n,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"||t==="esm")&&(s[`import.meta.env.${r}`]=JSON.stringify(e[r])),(t==="all"||t==="cjs")&&(s[`process.env.${r}`]=JSON.stringify(e[r])),s[`${r}`]=JSON.stringify(e[r])}),s}get externals(){return this.assign(this.empShareLib.externals,this.store.empOptions.externals)}get resolve(){return g({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(){let e=await Ge();if(!e||!ss.existsSync(e))return;let t=await Ie(e);typeof t=="function"?this.store.empOptions=await t(this.store):this.store.empOptions=t||{}}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}},Ke=new ve});import is from"fs-extra";var Ce,Ze,Ye=f(()=>{"use strict";a();Ce=class{store;async setup(e){this.store=e;let t=[this.common(),this.stats(),this.devServer(),this.optimization(),this.checkTsconfig()];await Promise.all(t)}async common(){this.store.merge({node:{global:!0},experiments:{outputModule:this.store.empConfig.isESM,topLevelAwait:!0},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?"source-map":!1,output:this.store.empConfig.output,resolve:this.store.empConfig.resolve,externals:this.store.empConfig.externals,ignoreWarnings:this.store.empConfig.ignoreWarnings})}async checkTsconfig(){let e=this.store.resolve("tsconfig.json");if(await is.exists(e)){let s={tsConfigPath:e};this.store.merge({resolve:s})}}async stats(){this.store.merge({stats:{colors:!0,all:!1,assets:!1,chunks:!1,timings:!0,version:!0}})}async devServer(){this.store.merge({devServer:this.store.empConfig.server})}async optimization(){let e={moduleIds:this.store.empConfig.build.moduleIds,chunkIds:this.store.empConfig.build.chunkIds,minimize:this.store.empConfig.build.minify,splitChunks:{chunks:"async",cacheGroups:{}}};this.store.empConfig.build.polyfill&&(e.splitChunks.cacheGroups={}),this.store.chain.merge({optimization:e})}},Ze=new Ce});var we,et,tt=f(()=>{"use strict";a();we=class{store;async setup(e){this.store=e;let t=[this.sass(),this.less(),this.css()];await Promise.all(t)}async sass(){let e={},t=this.store.empConfig.css?.sass;t&&t.mode==="modern"&&(e.implementation=t.implementation?t.implementation:S.resolve("sass-embedded"),e.api=t.api,t.sassOptions&&(e.sassOptions=t.sassOptions));let s={loader:S.resolve("sass-loader"),options:e};this.store.chain.merge({module:{rule:{sass:{test:/\.(sass|scss)$/,use:{sassLoader:s},type:"css/auto"}}}})}async less(){let e={loader:S.resolve("less-loader"),options:{lessOptions:{javascriptEnabled:!0}}};this.store.chain.merge({module:{rule:{less:{test:/\.less$/,use:{lessLoader:e},type:"css/auto"}}}})}async css(){this.store.chain.merge({module:{rule:{css:{test:/\.css$/,use:{},type:"css/auto"}}}})}},et=new we});import w from"path";import rs from"html-webpack-plugin";var xe,st,it=f(()=>{"use strict";a();I();C();be();xe=class{store;entriesConfig={};async setup(e){this.store=e,await this.init(),this.toConfig()}setHtmlConfig(e,t){return e.template=this.setTemplate(e.template),e.favicon=this.setFavicion(e.favicon),e.chunks=t,e.filename=`${t[0]}.html`,this.store.empConfig.base&&(e.publicPath=this.store.empConfig.base),e.tags=e.tags||{},e}setChunk(e){return e.replace(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,s){s=s||this.store.resolve(w.join(this.store.empConfig.appSrc,e));let r=this.setChunk(e),n=[s];this.entriesConfig[r]={entry:{[r]:n},html:this.setHtmlConfig(t,[r])},this.store.entries[r]=n}setRspackHtmlPlugin(e,t){this.store.chain.plugin(`html-plugin-${t}`).use(rs,[e]),this.store.empConfig.empShareLib&&(e.files=g(e.files,this.store.empConfig.empShareLib.externalAssets)),this.store.chain.plugin(`html-plugin-empShare-${t}`).use(q,[e.files,t]),this.store.empConfig.empShareLib.useImportMap&&this.store.chain.plugin(`html-plugin-import-map-${t}`).use(W,[this.store.empConfig.empShareLib.importMap,t])}setRspackEntry(e){this.store.merge({entry:e})}async init(){this.store.empConfig.autoPages?await this.setAutoPage():(await this.setDefaultEntry(),this.setEntryByConfig())}async setAutoPage(){let e=this.store.empConfig.autoPages?.path||"pages",t=w.join(this.store.appSrc,e),s=w.join(t,"**","*.{ts,tsx,jsx,js}"),r=await P([s],{windowsPathsNoEscape:!0});r=r.map(n=>n.replace(`${t}${w.sep}`,"")),r.map(n=>{let p=this.store.empConfig.entries[n]||{};this.setEntryItem(n,{...this.store.empConfig.html,...p},w.join(t,n))})}async setDefaultEntry(){let e=w.join(this.store.appSrc,this.store.empConfig.appEntry?this.store.empConfig.appEntry:"index.{ts,tsx,jsx,js}"),t=await P([e],{windowsPathsNoEscape:!0});if(t[0]){let s=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(s,this.store.empConfig.html,t[0])}}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)}},st=new xe});import rt from"path";var Se,ot,nt=f(()=>{"use strict";a();C();Se=class{store;swcJsOptions={};swcTsOptions={};coreJs={version:"3",alias:"",path:""};async setup(e){this.store=e;let t=[this.files(),this.scripts(),this.rspackGenerator(),this.rspackParser()];await this.store.empConfig.lifeCycle.beforeModule(),await Promise.all(t),await this.store.empConfig.lifeCycle.afterModule()}rspackGenerator(){let e=this.store.isDev?"[path][name]-[local]-[hash:5]":"[local]-[hash:5]";this.store.chain.merge({module:{generator:{css:{localIdentName:e},"css/auto":{localIdentName:e},"css/module":{localIdentName:e}}}})}rspackParser(){this.store.chain.merge({module:{parser:{css:{namedExports:!1},"css/auto":{namedExports:!1},"css/module":{namedExports:!1}}}})}get isPolyfill(){return this.store.empConfig.build.polyfill}swcParser(e){switch(e){case"js":return{syntax:"ecmascript",jsx:!0,decorators:!0,decoratorsBeforeExport:!1};case"ts":return{syntax:"typescript",decorators:!0,tsx:!0,dynamicImport:!0}}}swcJsc(e){let{target:t,externalHelpers:s}=this.store.empConfig.build;return{parser:this.swcParser(e),transform:{},target:t,externalHelpers:s,preserveAllComments:!0}}get swcCoreVersion(){let[e,t]=this.coreJs.version.split(".");return`${e}.${t}`}swcOptions(e){let t={jsc:g(this.swcJsc(e),{...this.store.empConfig.build.swcConfig}),isModule:"unknown"};return this.isPolyfill&&(delete t.jsc.target,t.env={coreJs:this.swcCoreVersion,targets:this.store.empConfig.build.browserslist},this.store.empConfig.isESM||(t.env.mode=this.store.empConfig.build.polyfill),this.store.empConfig.build.polyfill==="usage"&&(t.env.shippedProposals=!0,t.env.include=this.store.empConfig.build.polyfillInclude)),t}swcInitOptions(){let{externalHelpers:e}=this.store.empConfig.build;e&&this.store.chain.resolve.alias.set("@swc/helpers",rt.dirname(S.resolve("@swc/helpers/package.json"))),this.coreJs.path=S.resolve("core-js/package.json");let t=pe(this.coreJs.path);t&&(this.coreJs.version=t),this.coreJs.alias=rt.dirname(this.coreJs.path),this.store.empConfig.build.polyfill&&(this.store.chain.resolve.alias.set("core-js",this.coreJs.alias),this.store.chain.module.rule("javascript").exclude.add(/core-js/),this.store.chain.module.rule("typescript").exclude.add(/core-js/)),this.swcTsOptions=this.swcOptions("ts"),this.swcJsOptions=this.swcOptions("js")}async scripts(){this.swcInitOptions();let e=!1,t=[];this.store.chain.merge({module:{parser:{javascript:{exportsPresence:"error",importExportsPresence:"error"}},rule:{mjs:{test:/\.m?js/,resolve:{fullySpecified:!1}},typescript:{test:/\.(ts|tsx)$/,exclude:t,sideEffects:e,use:{swc:{loader:"builtin:swc-loader",options:this.swcTsOptions}}},javascript:{test:/\.((m|c)?js|jsx)$/,exclude:t,sideEffects:e,use:{swc:{loader:"builtin:swc-loader",options:this.swcJsOptions}}}}}})}async files(){this.store.chain.merge({module:{rule:{svg:{test:/\.svg$/,type:"asset/resource"}}}}),this.store.chain.merge({module:{rule:{inline:{resourceQuery:/inline/,type:"asset/inline"}}}}),this.store.chain.merge({module:{rule:{image:{test:/\.(png|jpe?g|gif|webp|ico)$/i,type:"asset/resource"},fonts:{test:/\.(|otf|ttf|eot|woff|woff2)$/i,type:"asset/resource"},svga:{test:/\.(svga)$/i,type:"asset/resource"}}}})}},ot=new Se});import at from"fs";import{ModuleFederationPlugin as os}from"@module-federation/enhanced/rspack";import G from"@rspack/core";var Ee,pt,lt=f(()=>{"use strict";a();Ee=class{store;async setup(e){this.store=e;let t=[this.define(),this.anylayze(),this.progress(),this.copy(),this.empShare(),this.minify()];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("bundleAnalyzerPlugin").use(e,[{analyzerPort:this.store.empConfig.server.port,defaultSizes:"gzip",analyzerHost:this.store.getLanIp()||"127.0.0.1"}])}async define(){this.store.chain.plugin("definePlugin").use(G.DefinePlugin,[this.store.empConfig.define])}async copy(){let e=this.store.resolve("public");at.existsSync(e)&&at.readdirSync(e).length>0&&this.store.chain.plugin("copyRspackPlugin").use(G.CopyRspackPlugin,[{patterns:[{from:e,to:this.store.resolve(this.store.empConfig.build.outDir)}]}])}async progress(){this.store.empConfig.debug.progress&&this.store.chain.plugin("progressPlugin").use(G.ProgressPlugin,[{prefix:"EMP"}])}async empShare(){let{isEmpshare:e}=this.store.empConfig.empShareLib;if(!e)return;let t=os;this.store.chain.plugin("empShare").use(t,[this.store.empConfig.empShareLib.pluginConfig])}minify(){this.store.chain.optimization.minimize(this.store.mode==="production"),this.store.chain.optimization.minimizer("minJs").use(G.SwcJsMinimizerRspackPlugin,[this.store.empConfig.build.minOptions]),this.store.chain.optimization.minimizer("minCss").use(G.SwcCssMinimizerRspackPlugin,[{}])}},pt=new Ee});var Oe,ct,mt=f(()=>{"use strict";a();Ye();tt();it();nt();lt();Oe=class{store;async setup(e){this.store=e;let t=[Ze.setup(this.store),ot.setup(this.store),pt.setup(this.store),st.setup(this.store),et.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()}},ct=new Oe});import ns from"fs/promises";import x from"path";import as from"util";import ps from"webpack-chain";var Pe,o,y=f(()=>{"use strict";a();O();C();Qe();mt();Pe=class{empPkg={dependencies:{},devDependencies:{},version:"2.0.0",name:""};pkg={dependencies:{},devDependencies:{},version:"0.0.0",name:""};root=process.cwd();empRoot=x.resolve(m,c).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:""};cacheDir="";mode="development";cliMode="dev";isDev=!0;cliOptions;chain;rsConfig;empOptions={};empConfig;vCompare=z;deepAssign=g;getLanIp=N;entries={};debug;async setup(e,t){await this.initVars(e,t),this.empConfig=Ke,await this.empConfig.setup(this),this.debug={...this.empConfig.debug},this.initPaths(),this.chain=new ps,await ct.setup(this),this.setLogger(),this.toConfig(),this.logConfig()}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=S(this.empResolve("package.json")),r=S(this.resolve("package.json"));this.empPkg={...this.empPkg,...s},this.pkg={...this.pkg,...r}}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),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")}setLogger(){let e=this.cliMode==="dev"?"debug":"info";this.debug.loggerLevel&&(e=this.debug.loggerLevel),l.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);ns.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"?g(e,this.debug.showRsconfig):e;console.log(l.link("[Compile Config]")),console.log(as.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 >= 20"]}}},o=new Pe});import ls from"fs";import k from"path";import{gzipSizeSync as cs}from"gzip-size";function ys(i,e){let t=[i,e],s=["File","Size","Gzipped"].reduce((r,n,p)=>{let d=t[p],v=n;return d&&(v=n.length<d?n+" ".repeat(d-n.length):n),`${r+v} `}," ");console.log(j.bold(s))}async function ft(i){let e=i.toJson({all:!1,assets:!0,timings:!0}),s=e.assets.filter(u=>us(u.name)).map(ds);s.sort((u,F)=>u.size-F.size);let r=Math.max(...s.map(u=>u.sizeLabel.length)),n=Math.max(...s.map(u=>(u.folder+k.sep+u.name).length));ys(n,r);let p=0,d=0;s.forEach(u=>{let{sizeLabel:F}=u,{name:Ot,folder:Pt,gzipSizeLabel:kt}=u,Re=(Pt+k.sep+Ot).length,Fe=F.length;if(p+=u.size,d+=u.gzippedSize,Fe<r){let ie=" ".repeat(r-Fe);F+=ie}let Ae=L(u.folder+k.sep)+bs(u.name);if(Re<n){let ie=" ".repeat(n-Re);Ae+=ie}l.info(` ${Ae} ${L(F)} ${kt}`)});let v=`${j.bold("Total size:")} ${Q(p)}`,R=`${j.bold("Gzipped size:")} ${Q(d)}`;l.info(`
12
+ ${v}
13
+ ${R}
14
+ `),l.info(`${E("\u2713")} Ready in ${B(Number(e.time))}
15
+ `)}function Z(i=0){l.info(`${E("\u2713")} Ready in ${B(Number(i))}`)}var ms,fs,hs,us,gs,ds,Q,bs,Y=f(()=>{"use strict";a();D();y();O();C();ms=/\.html$/,fs=/\.(?:js|mjs|cjs|jsx)$/,hs=/\.css$/,us=i=>!/\.map$/.test(i)&&!/\.LICENSE\.txt$/.test(i),gs=i=>i>300*1e3?re:i>100*1e3?H:oe,ds=i=>{let e=i.name.split("?")[0],t=Q(i.size),s=k.basename(e),r=k.join(k.basename(o.empConfig.build.outDir),k.dirname(e)),n=ls.readFileSync(k.join(o.empConfig.build.outDir,e)),p=n.length,d=cs(n),v=gs(d)(Q(d));return{size:p,folder:r,name:s,gzippedSize:d,sizeLabel:t,gzipSizeLabel:v}};Q=i=>{let e=i/1e3;return`${e.toFixed(e<1?2:1)} kB`},bs=i=>fs.test(i)?H(i):hs.test(i)?E(i):ms.test(i)?j(i):ne(i)});import{exec as vs}from"child_process";import{promisify as Cs}from"util";var ut,ht,ws,xs,gt,dt=f(()=>{"use strict";a();y();O();ut=Cs(vs),ht=["Google Chrome Canary","Google Chrome Dev","Google Chrome Beta","Google Chrome","Microsoft Edge","Brave Browser","Vivaldi","Chromium"],ws=async()=>{let i=process.env.BROWSER;if(!i||!ht.includes(i)){let{stdout:e}=await ut("ps cax");i=ht.find(t=>e.includes(t))}return i},xs=async i=>{if(process.platform==="darwin")try{let t=await ws();if(t){let s=`osascript openChrome.applescript "${encodeURI(i)}" "${t}"`;return await ut(s,{cwd:o.resource.dir}),!0}}catch(t){l.debug(t)}try{let{default:t}=await import("open");return await t(i),!0}catch(t){return l.error("Failed to open start URL."),l.error(t),!1}},gt=xs});import yt from"fs/promises";var $,ee=f(()=>{"use strict";a();D();he();ge();O();dt();C();y();ye();$=class{sf={protocol:"http",host:"0.0.0.0",port:8e3,publicPath:"",publicHasHttp:!1,isOpenBrower:!1,url:"",urls:{localUrlForBrowser:"",localUrlForTerminal:"",lanUrlForTerminal:"",lanUrlForConfig:""}};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(),T.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=T.prettyPrintUrl("localhost")):(this.sf.urls=T.urls,this.sf.url=this.sf.urls.localUrlForBrowser)}startOpen(){let{urls:e}=this.sf;this.sf.publicHasHttp?(l.info(`${E("\u279C")} Local: ${l.link(e.localUrlForTerminal)}`),l.info(`${E("\u279C")} Network: ${l.link(this.sf.publicPath)}`)):(l.info(`${E("\u279C")} Local: ${l.link(e.localUrlForTerminal)}`),l.info(`${E("\u279C")} Network: ${l.link(e.lanUrlForTerminal)}
16
+ `)),this.sf.isOpenBrower&&gt(this.sf.url)}async setup(e,t){await o.setup(e,t),o.debug.clearLog&&le(),l.title(`${e}`),await this.adaptServer(),await this.run(),this.afterRun()}async run(){}afterRun(){process.on("SIGINT",function(){process.exit()})}get isHttps(){let{server:e,https:t}=o.empConfig.server||{};return e==="https"||typeof e=="object"&&e.type==="https"||t===!0}getcert(){return Promise.all([yt.readFile(o.resource.key),yt.readFile(o.resource.cert)])}async serverPort(){if(V.isADB)return;let{port:e,host:t}=this.sf,s=await _(e,t);s!==e&&(this.sf.port=s,o.rsConfig.devServer?.port&&(o.rsConfig.devServer.port=s))}}});var bt={};A(bt,{default:()=>Os});import{rspack as Ss}from"@rspack/core";import{RspackDevServer as Es}from"@rspack/dev-server";var ke,Os,vt=f(()=>{"use strict";a();Y();O();C();ee();y();ke=class extends ${get rspackDevConfig(){return g(o.rsConfig,{stats:{all:!1,colors:!0,assets:!1,chunks:!1,entrypoints:!1,timings:!1,version:!1,errors:!0,warnings:!0},devServer:{open:!1,setupExitSignals:!0}})}async devServerConfig(){let e=Object.assign({},o.rsConfig.devServer);if(this.isHttps&&(e.https===!0&&delete e.https,!e.server)){let[t,s]=await this.getcert();e.server={type:"https",options:{key:t,cert:s}}}return e}async run(){let e=Ss(this.rspackDevConfig);if(!o.rsConfig.devServer){l.error("devServer is not defined in config");return}let t=await this.devServerConfig(),s=new Es(t,e);this.startOpen(),o.empConfig.lifeCycle.beforeDevServe&&await o.empConfig.lifeCycle.beforeDevServe(),await s.start();let r=n=>{let p=n?.toJson({all:!1,colors:!1,assets:!1,chunks:!1,timings:!0});Z(p.time)};o.debug.showPerformance&&e.hooks.afterDone.tap("done",r),s.middleware?.waitUntilValid(n=>{o.debug.showPerformance||r(n),o.empConfig.lifeCycle.afterDevServe&&o.empConfig.lifeCycle.afterDevServe()})}},Os=new ke});import Ps from"https";import ks from"compression";import $s from"cors";import Ms from"express";var te,Ct=f(()=>{"use strict";a();ee();te=class extends ${app;async init(){let e=Ms();e.use(ks()),e.use($s()),this.app=e}async server(){if(this.isHttps){let[e,t]=await this.getcert();Ps.createServer(typeof this.isHttps!="boolean"?this.isHttps:{key:e,cert:t},this.app).listen(this.sf.port,async()=>{this.startOpen(),await this.onReady()})}else this.app.listen(this.sf.port,async()=>{this.startOpen(),await this.onReady()})}async onReady(){}async middleware(){}async start(){await this.init(),await this.middleware(),await this.server()}}});var $e={};A($e,{ServeScript:()=>se,default:()=>Rs});import js from"fs";import Ls from"fs/promises";import Ds from"path";import Ts from"express";var se,Rs,Me=f(()=>{"use strict";a();Y();O();y();Ct();se=class extends te{timing=0;async run(){if(this.timing=Date.now(),!js.existsSync(o.outDir))return l.sysError(`emp serve must be executed after emp build,${o.outDir} not exist!`);o.empConfig.lifeCycle.beforeServe&&await o.empConfig.lifeCycle.beforeServe(),this.start()}async middleware(){let e=o.resolve(o.rsConfig.output?.path);this.app.use(Ts.static(e));let t=await Ls.readFile(Ds.join(e,"index.html"),"utf8");this.app.get("*",(s,r)=>r.send(t))}async onReady(){Z(Date.now()-this.timing),o.empConfig.lifeCycle.afterServe&&await o.empConfig.lifeCycle.afterServe()}},Rs=new se});var wt={};A(wt,{default:()=>As});import{rspack as Fs}from"@rspack/core";var je,As,xt=f(()=>{"use strict";a();Y();O();ee();y();je=class extends ${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(()=>(Me(),$e));await e.setup("serve",o.cliOptions)}async run(){o.empConfig.lifeCycle.beforeBuild&&await o.empConfig.lifeCycle.beforeBuild(),this.isWatchMode=!!o.cliOptions.watch,this.isuseServe=!!o.cliOptions.serve,this.rspackConfig=o.rsConfig,this.isWatchMode&&this.watchMode(),Fs(this.rspackConfig,async(e,t)=>{if(e!==null){l.error(e.stack||e),e.message&&l.error(e.message);return}if(!t){l.red("Stats is Undefined.");return}t.hasErrors()&&(l.error(t.toString({all:!1,colors:!0,errors:!0})),l.red("Failed to compile."),process.exit(1)),t.hasWarnings()&&(l.yellow("Compiled with warnings."),l.warn(t.toString({all:!1,chunks:!1,assets:!1,colors:!0,errors:!0,warnings:!0}))),await ft(t),this.startServe(),o.empConfig.lifeCycle.afterBulid&&await o.empConfig.lifeCycle.afterBulid()})}},As=new je});a();import{rspack as on}from"@rspack/core";import an from"html-webpack-plugin";a();O();C();y();import Le,{exit as Ns}from"process";import{program as M}from"commander";function St(){let i="20.0.0";z(i,Le.versions.node)===1&&(l.sysError(`\u5F53\u524D\u7248\u672C\u4E3Av${Le.versions.node} \u6700\u4F4E\u8981\u6C42\u4E3Av${i}`),Ns(0)),M.version(o.empPkg.version,"-v, --version").usage("<command> [options]"),M.command("dev").description("Dev \u6A21\u5F0F").option("-e, --env <env>","\u90E8\u7F72\u73AF\u5883 dev\u3001test\u3001prod").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",(e,t)=>{let[s,r]=e.split("=");return t[s]=r,t},{}).action(async e=>{let{default:t}=await Promise.resolve().then(()=>(vt(),bt));await t.setup("dev",e)}),M.command("build").description("Build \u6A21\u5F0F").option("-e, --env <env>","\u90E8\u7F72\u73AF\u5883 dev\u3001test\u3001prod").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",(e,t)=>{let[s,r]=e.split("=");return t[s]=r,t},{}).action(async e=>{let{default:t}=await Promise.resolve().then(()=>(xt(),wt));await t.setup("build",e)}),M.command("serve").description("Server \u6A21\u5F0F").option("-cl, --clearLog <clearLog>","\u6E05\u7A7A\u65E5\u5FD7 \u9ED8\u8BA4\u4E3A true").action(async e=>{let{default:t}=await Promise.resolve().then(()=>(Me(),$e));await t.setup("serve",e)}),M.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(e=>{}),M.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(e=>{}),M.parse(Le.argv)}a();I();y();import Et from"fs/promises";import De from"path";var zs=/(?:(?:import|export)\s?(?:type)?\s?(?:(?:\{[^;\n]+\})|(?:[^;\n]+))\s?from\s?['"][^;\n]+['"])|(?:import\(['"][^;\n]+?['"]\))/g,Is=/(?:import|export)\s?(?:type)?\s?\{?.+\}?\s?from\s?['"](.+)['"]/,Gs=/import\(['"]([^;\n]+?)['"]\)/,Te=class{list=[];outDir=o.resolve("dist");aliasName="@empjs/cli";async setup(e,t){e&&(this.outDir=e),t&&(this.aliasName=t);let s=await this.readDts();await this.writeCode(s)}async readDts(){this.list=await P([`${o.empConfig.build.outDir}/**/*.d.ts`],{windowsPathsNoEscape:!0});let e=[];this.list.map(s=>{s=o.resolve(s),e.push(this.readFile(s))});let t=await Promise.all(e);return t=t.map(s=>this.replaceAliasPath(s)),t}async readFile(e){let t=await Et.readFile(e,{encoding:"utf-8"});return{src:e,code:t}}replaceAliasPath({src:e,code:t}){t=t.replace(zs,r=>{let n=r.match(Is);if(n||(n=r.match(Gs)),n&&n[1]){let p=n[1];if(!p.startsWith("."))return r;let d=De.resolve(De.dirname(e),p).replace(this.outDir,this.aliasName);return r.replace(n[1],d)}return r});let s=e.replace(this.outDir,this.aliasName).replace(".d.ts","");return s.endsWith("/index")&&(s=s.replace("/index","")),t=this.warpDeclareModule(s,t),{code:t,src:e,mod:s}}warpDeclareModule(e,t){return`declare module '${e}' {\r
15
17
  ${t}}\r
16
- `}async writeCode(e){let t="";e.map(s=>{t+=s.code}),await ht.writeFile(fe.join(this.outDir.replace("dist","types"),"type.d.ts"),t)}},vs=new ue;function Zr(i){return i}export{Zr as defineConfig,vs as dts,mt as runScript,n as store};
18
+ `}async writeCode(e){let t="";e.map(s=>{t+=s.code}),await Et.writeFile(De.join(this.outDir.replace("dist","types"),"type.d.ts"),t)}},Hs=new Te;y();I();function mn(i){return i}export{an as HtmlWebpackPlugin,mn as defineConfig,Hs as dts,ze as empHelper,on as rspack,St as runScript,o as store};
package/emp-tsconfig.json CHANGED
@@ -3,11 +3,7 @@
3
3
  "types": ["@empjs/cli/client"],
4
4
  "plugins": [{ "name": "typescript-plugin-css-modules" }],
5
5
  "target": "ESNext",
6
- "lib": [
7
- "DOM",
8
- "DOM.Iterable",
9
- "ESNext"
10
- ],
6
+ "lib": ["DOM", "DOM.Iterable", "ESNext"],
11
7
  "allowJs": true,
12
8
  "skipLibCheck": true,
13
9
  "esModuleInterop": true,
@@ -23,11 +19,6 @@
23
19
  "jsx": "preserve",
24
20
  "verbatimModuleSyntax": true
25
21
  },
26
- "include": [
27
- "src"
28
- ],
29
- "exclude": [
30
- "dist",
31
- "nodule_modules"
32
- ]
33
- }
22
+ "include": ["src"],
23
+ "exclude": ["dist", "nodule_modules"]
24
+ }
package/package.json CHANGED
@@ -1,112 +1,102 @@
1
1
  {
2
- "name": "@empjs/cli",
3
- "version": "3.0.0-rc.3",
4
- "description": "emp",
5
- "license": "MIT",
6
- "type": "module",
7
- "files": [
8
- "dist",
9
- "bin",
10
- "resource",
11
- "template",
12
- "client.d.ts",
13
- "emp-tsconfig.json"
14
- ],
15
- "maintainers": [
16
- "xuhongbin",
17
- "ckken",
18
- "doerme"
19
- ],
20
- "repository": {
21
- "type": "git",
22
- "url": "git+https://github.com/empjs/emp.git",
23
- "directory": "packages/cli"
24
- },
25
- "publishConfig": {
26
- "access": "public"
27
- },
28
- "keywords": [
29
- "rspack",
30
- "rust",
31
- "typescript"
32
- ],
33
- "bin": {
34
- "emp": "./bin/emp.js"
35
- },
36
- "main": "dist/index.js",
37
- "module": "dist/index.js",
38
- "types": "dist/index.d.ts",
39
- "exports": {
40
- ".": {
41
- "import": {
42
- "default": "./dist/index.js",
43
- "types": "./dist/index.d.ts"
44
- },
45
- "require": {
46
- "default": "./dist/index.js",
47
- "types": "./dist/index.d.ts"
48
- }
49
- },
50
- "./emp-tsconfig.json": "./emp-tsconfig.json"
51
- },
52
- "scripts": {
53
- "d": "rimraf dist && pnpm run esdev:build",
54
- "b": "rimraf dist && pnpm run esbuild:build",
55
- "dev": "rimraf dist && pnpm run /^esdev:.*/",
56
- "esdev:build": "cross-env ENV=dev node esbuild.js",
57
- "esdev:tsc": "tsc -w",
58
- "esdev:tsc-alias": "tsc-alias -w",
59
- "build": "rimraf dist && pnpm run /^esbuild:.*/",
60
- "esbuild:build": "cross-env ENV=prod node esbuild.js",
61
- "esbuild:tsc": "tsc && tsc-alias",
62
- "dts": "node dts-bundle.js"
63
- },
64
- "engines": {
65
- "node": ">=20.0.0"
66
- },
67
- "author": "Ken",
68
- "devDependencies": {
69
- "@types/compression": "^1.7.2",
70
- "@types/cors": "^2.8.12",
71
- "@types/default-gateway": "^7.2.1",
72
- "@types/express": "^4.17.13",
73
- "@types/fs-extra": "^11.0.4",
74
- "@types/watchpack": "^2.4.3",
75
- "@types/webpack": "^5.28.4",
76
- "@types/webpack-bundle-analyzer": "^4.6.2",
77
- "@types/webpack-hot-middleware": "^2.25.9",
78
- "@types/webpack-sources": "^3.2.2",
79
- "@types/node": "^20.8.7",
80
- "cross-env": "^7.0.3",
81
- "esbuild": "^0.19.5",
82
- "rimraf": "^5.0.5",
83
- "tsc-alias": "^1.8.8"
84
- },
85
- "dependencies": {
86
- "@module-federation/enhanced": "^0.1.6",
87
- "@rspack/core": "0.6.1",
88
- "@rspack/dev-server": "0.6.1",
89
- "@swc/helpers": "^0.5.9",
90
- "address": "^2.0.1",
91
- "ansi-html-community": "^0.0.8",
92
- "chalk": "^5.3.0",
93
- "commander": "^11.1.0",
94
- "compression": "^1.7.4",
95
- "core-js": "^3.36.1",
96
- "cors": "^2.8.5",
97
- "default-gateway": "^7.2.2",
98
- "express": "^4.18.2",
99
- "fast-glob": "^3.3.1",
100
- "fs-extra": "^11.2.0",
101
- "gzip-size": "^7.0.0",
102
- "html-entities": "^2.5.2",
103
- "html-webpack-plugin": "^5.6.0",
104
- "less-loader": "^12.2.0",
105
- "open": "^10.1.0",
106
- "sass-loader": "^14.2.0",
107
- "strip-ansi": "^7.1.0",
108
- "typescript-plugin-css-modules": "^5.1.0",
109
- "webpack-bundle-analyzer": "^4.10.2",
110
- "webpack-chain": "^6.5.1"
111
- }
2
+ "name": "@empjs/cli",
3
+ "version": "3.0.0-rc.30",
4
+ "description": "emp",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "files": [
8
+ "dist",
9
+ "bin",
10
+ "resource",
11
+ "template",
12
+ "client.d.ts",
13
+ "emp-tsconfig.json"
14
+ ],
15
+ "maintainers": [
16
+ "xuhongbin",
17
+ "ckken",
18
+ "doerme"
19
+ ],
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/empjs/emp.git",
23
+ "directory": "packages/cli"
24
+ },
25
+ "publishConfig": {
26
+ "access": "public"
27
+ },
28
+ "keywords": [
29
+ "rspack",
30
+ "rust",
31
+ "typescript"
32
+ ],
33
+ "bin": {
34
+ "emp": "./bin/emp.js"
35
+ },
36
+ "main": "dist/index.js",
37
+ "types": "dist/index.d.ts",
38
+ "exports": {
39
+ ".": {
40
+ "import": {
41
+ "default": "./dist/index.js",
42
+ "types": "./dist/index.d.ts"
43
+ },
44
+ "require": {
45
+ "default": "./dist/index.cjs",
46
+ "types": "./dist/index.d.cts"
47
+ }
48
+ },
49
+ "./emp-tsconfig.json": "./emp-tsconfig.json"
50
+ },
51
+ "engines": {
52
+ "node": ">=16.0.0"
53
+ },
54
+ "author": "Ken",
55
+ "devDependencies": {
56
+ "@types/compression": "^1.7.2",
57
+ "@types/cors": "^2.8.12",
58
+ "@types/default-gateway": "^7.2.1",
59
+ "@types/express": "^4.17.13",
60
+ "@types/fs-extra": "^11.0.4",
61
+ "@types/node": "^20.8.7",
62
+ "@types/react": "^18.3.2",
63
+ "@types/watchpack": "^2.4.3",
64
+ "@types/webpack": "^5.28.4",
65
+ "@types/webpack-bundle-analyzer": "^4.6.2",
66
+ "@types/webpack-hot-middleware": "^2.25.9",
67
+ "@types/webpack-sources": "^3.2.2",
68
+ "tsup": "^8.0.2"
69
+ },
70
+ "dependencies": {
71
+ "@module-federation/enhanced": "^0.1.15",
72
+ "@rspack/core": "0.6.5",
73
+ "@rspack/dev-server": "0.7.0",
74
+ "@swc/helpers": "^0.5.11",
75
+ "address": "^2.0.2",
76
+ "ansi-html-community": "^0.0.8",
77
+ "chalk": "^5.3.0",
78
+ "commander": "^11.1.0",
79
+ "compression": "^1.7.4",
80
+ "core-js": "^3.37.0",
81
+ "cors": "^2.8.5",
82
+ "default-gateway": "^7.2.2",
83
+ "express": "^4.18.2",
84
+ "fs-extra": "^11.2.0",
85
+ "glob": "^10.3.15",
86
+ "gzip-size": "^7.0.0",
87
+ "html-webpack-plugin": "^5.6.0",
88
+ "jiti": "^1.21.0",
89
+ "less-loader": "^12.2.0",
90
+ "open": "^10.1.0",
91
+ "sass-embedded": "^1.77.2",
92
+ "sass-loader": "^14.2.1",
93
+ "strip-ansi": "^7.1.0",
94
+ "typescript-plugin-css-modules": "^5.1.0",
95
+ "webpack-bundle-analyzer": "^4.10.2",
96
+ "webpack-chain": "^6.5.1"
97
+ },
98
+ "scripts": {
99
+ "dev": "tsup --watch --env.ENV dev",
100
+ "build": "tsup --env.ENV prod"
101
+ }
112
102
  }
Binary file
Binary file
Binary file
Binary file
@@ -5,6 +5,9 @@
5
5
  <title>
6
6
  <%= htmlWebpackPlugin.options.title %>
7
7
  </title>
8
+ <% for (let i in htmlWebpackPlugin.options.tags.headTags) { %>
9
+ <%= htmlWebpackPlugin.options.tags.headTags[i] %>
10
+ <% } %>
8
11
  </head>
9
12
 
10
13
  <body>
@@ -1,15 +0,0 @@
1
- import type { Stats } from '@rspack/core';
2
- export declare const HTML_REGEX: RegExp;
3
- export declare const JS_REGEX: RegExp;
4
- export declare const TS_REGEX: RegExp;
5
- export declare const SCRIPT_REGEX: RegExp;
6
- export declare const TS_AND_JSX_REGEX: RegExp;
7
- export declare const SVG_REGEX: RegExp;
8
- export declare const CSS_REGEX: RegExp;
9
- export declare const LESS_REGEX: RegExp;
10
- export declare const SASS_REGEX: RegExp;
11
- export declare const CSS_MODULES_REGEX: RegExp;
12
- export declare const NODE_MODULES_REGEX: RegExp;
13
- export declare const filterAsset: (asset: string) => boolean;
14
- export declare function printFileSizes(stats: Stats): Promise<void>;
15
- export declare function timeDone(mis?: number | string): void;
@@ -1,6 +0,0 @@
1
- /**
2
- * @param {number} basePort
3
- * @param {string=} host
4
- * @return {Promise<number>}
5
- */
6
- export declare function getPorts(basePort: number, host?: string): Promise<number>;
File without changes
File without changes
File without changes
File without changes
@@ -1 +0,0 @@
1
- export default function (hash: any, moduleMap: any, options: any): void;
@@ -1,27 +0,0 @@
1
- type IpAdressOpt = {
2
- protocol?: string;
3
- port?: number;
4
- pathname?: string;
5
- host?: string;
6
- };
7
- declare class IpAdress {
8
- imf: {
9
- protocol: string;
10
- port: number;
11
- pathname: string;
12
- };
13
- host: string;
14
- urls: {
15
- lanUrlForConfig: string;
16
- lanUrlForTerminal: string;
17
- localUrlForTerminal: string;
18
- localUrlForBrowser: string;
19
- };
20
- setup(o: IpAdressOpt): void;
21
- private setupUrls;
22
- getLanIp: () => string;
23
- formatUrl(hostname: string): string;
24
- prettyPrintUrl(hostname: string): string;
25
- }
26
- declare const _default: IpAdress;
27
- export default _default;
@@ -1,21 +0,0 @@
1
- export type LoggerType = 'debug' | 'info' | 'warn' | 'error';
2
- declare class Logger {
3
- pname: string;
4
- logLevel: string;
5
- setup({ pname, logLevel }: any): void;
6
- debug: (...args: any[]) => false | void;
7
- info: (...args: any[]) => false | void;
8
- warn: (...args: any[]) => false | void;
9
- error: (...args: any[]) => false | void;
10
- blue: (msg: string) => void;
11
- cyan: (msg: string) => void;
12
- magenta: (msg: string) => void;
13
- green: (msg: string) => void;
14
- yellow: (msg: string) => void;
15
- red: (msg: string) => void;
16
- sysError: (msg: string) => void;
17
- link: (msg: string) => string;
18
- title: (msg: string) => void;
19
- }
20
- declare const _default: Logger;
21
- export default _default;