@empjs/cli 3.0.0-alpha.35 → 3.0.0-alpha.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/helper/node-polyfill.d.ts +3 -0
- package/dist/index.js +3 -3
- package/package.json +5 -1
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
export declare const __filename: string;
|
|
2
3
|
export declare const __dirname: string;
|
|
3
4
|
export declare const getFileJson: (url: string) => Promise<any>;
|
|
5
|
+
export declare const require: NodeRequire;
|
|
6
|
+
export declare const importResolve: NodeJS.RequireResolve;
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
var
|
|
1
|
+
var $e=Object.defineProperty;var c=(i,e)=>()=>(i&&(e=i(i=0)),e);var k=(i,e)=>{for(var t in e)$e(i,t,{get:e[t],enumerable:!0})};import{fileURLToPath as Re}from"node:url";import{dirname as Te}from"node:path";import{readFile as De}from"node:fs/promises";import Le from"node:module";var Ae,yt,$,Fe,q,Q=c(()=>{"use strict";Ae=Re(import.meta.url),yt=Te(Ae),$=async i=>{try{let e=await De(i);return JSON.parse(e)}catch(e){console.error(e)}},Fe=Le.createRequire(import.meta.url),q=Fe.resolve});import w from"@rspack/core";import X from"fs";var R,Y,Z=c(()=>{"use strict";R=class{store;async setup(e){this.store=e;let t=[this.define(),this.anylayze(),this.progress(),this.copy(),this.empShare(),this.minJs(),this.minCss()];await Promise.all(t)}async anylayze(){if(!this.store.cliOptions.analyze)return;let{default:{BundleAnalyzerPlugin:e}}=await import("webpack-bundle-analyzer");this.store.chain.plugin("bundleAnalyzerPlugin").use(e,[{}])}async define(){this.store.chain.plugin("definePlugin").use(w.DefinePlugin,[this.store.empConfig.define])}async copy(){let e=this.store.resolve("public");X.existsSync(e)&&X.readdirSync(e).length>0&&this.store.chain.plugin("copyRspackPlugin").use(w.CopyRspackPlugin,[{patterns:[{from:e,to:this.store.resolve("dist")}]}])}async progress(){this.store.empConfig.debug.progress&&this.store.chain.plugin("progressPlugin").use(w.ProgressPlugin,[{prefix:"EMP"}])}async empShare(){if(!this.store.empConfig.empShare.name)return;let{ModuleFederationPlugin:e}=w.container;this.store.chain.plugin("empShare").use(e,[{...this.store.empConfig.empShare}])}minJs(){this.store.mode==="production"&&this.store.chain.plugin("minJs").use(w.SwcJsMinimizerRspackPlugin,[this.store.empConfig.build.minOptions])}minCss(){this.store.mode==="production"&&this.store.chain.plugin("minJs").use(w.SwcJsMinimizerRspackPlugin,[{}])}},Y=new R});var T,K,ee=c(()=>{"use strict";T=class{store;async setup(e){this.store=e;let t=[this.react(),this.files(),this.scripts()];await Promise.all(t)}async scripts(){let{isDev:e}=this.store,t=this.store.reactVersion?{react:{runtime:"automatic",development:e,refresh:e}}:{};this.store.chain.merge({module:{parser:{javascript:{exportsPresence:"error",importExportsPresence:"error"}},rule:{mjs:{test:/\.m?js/,resolve:{fullySpecified:!1}},scripts:{test:/\.(jsx?|tsx?)$/,sideEffects:!1,use:[{loader:"builtin:swc-loader",options:{sourceMap:!0,jsc:{parser:{syntax:"typescript",tsx:!0},transform:t}}}]}}}})}async react(){if(this.store.reactVersion&&(this.store.empConfig.react.svgr&&this.store.chain.merge({module:{rule:{svg:{test:/\.svg$/,issuer:/\.[jt]sx?$/,resourceQuery:/svgr/,use:[{loader:this.store.importResolve("@svgr/webpack"),options:{}}]}}}}),this.store.isDev&&this.store.empConfig.react.hmr)){let{default:e}=await import("@rspack/plugin-react-refresh"),t={};this.store.empConfig.empShare.name&&(t.library=this.store.empConfig.empShare.name),this.store.chain.plugin("plugin-react-refresh").use(e,[t])}}async files(){(!this.store.reactVersion||!this.store.empConfig.react.svgr)&&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"}}}})}},K=new T});var D,te,se=c(()=>{"use strict";D=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({experiments:{rspackFuture:{}},mode:this.store.mode,cache:!0,devtool:this.store.empConfig.build.sourcemap?"source-map":!1,builtins:{css:{modules:{localIdentName:this.store.isDev?"[path][name]-[local]-[hash:5]":"[local]-[hash:5]"}}},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(){this.store.chain.merge({optimization:{chunkIds:this.store.empConfig.build.chunkIds,minimize:this.store.empConfig.build.minify}})}},te=new D});function re(){process.stdout.write(process.platform==="win32"?"\x1B[2J\x1B[0f":"\x1B[2J\x1B[3J\x1B[H")}function x(i,...e){for(let t of e)for(let s in t){let o=t[s],r=i[s];if(Object(o)==o&&Object(r)===r){i[s]=x(r,o);continue}i[s]=t[s]}return i}var oe,S=c(()=>{"use strict";oe=(i="",e="")=>{let t=i.replace("^","").split("."),s=e.replace("^","").split("."),o=Math.max(t.length,s.length),r=0;for(let n=0;n<o;n++){let m=t.length>n?t[n]:0,l=isNaN(Number(m))?m.charCodeAt():Number(m),u=s.length>n?s[n]:0,f=isNaN(Number(u))?u.charCodeAt():Number(u);if(l<f){r=-1;break}else if(l>f){r=1;break}}return r}});import Me from"html-webpack-plugin";import Ne from"fast-glob";import E from"node:path";var L,ie,ne=c(()=>{"use strict";S();L=class{store;entriesConfig={};async setup(e){this.store=e,await this.init(),this.toConfig()}setHtmlConfig(e,t){return e.template=this.setTemplate(e.template),e.favicon=this.setFavicion(e.favicon),e.chunks=t,e.filename=`${t[0]}.html`,this.store.empConfig.base&&(e.publicPath=this.store.empConfig.base),this.store.empConfig.empShareLib&&(e.files=x(e.files,this.store.empConfig.empShareLib.externalAssets)),e}setChunk(e){return e.replace(E.extname(e),"").replace(`${this.store.empConfig.appSrc}/`,"")}setTemplate(e){return e?this.store.resolve(e):this.store.empResolve(E.join("template","index.html"))}setFavicion(e){return e?this.store.resolve(e):this.store.empResolve(E.join("template","favicon.ico"))}setEntryItem(e,t,s){s=s||this.store.resolve(E.join(this.store.empConfig.appSrc,e));let o=this.setChunk(e);this.entriesConfig[o]={entry:{[o]:s},html:this.setHtmlConfig(t,[o])}}setRspackHtmlPlugin(e,t){this.store.chain.plugin(`html-plugin-${t}`).use(Me,[e])}setRspackEntry(e){this.store.merge({entry:e})}async init(){let e=await Ne([`${this.store.appSrc}/${this.store.empConfig.appEntry?this.store.empConfig.appEntry:"index.{ts,tsx,jsx,js}"}`]);if(e[0]){let t=E.join(this.store.empConfig.appSrc,Object.keys(this.store.empConfig.entries).length>0&&this.store.empConfig.appEntry?this.store.empConfig.appEntry:"index");this.setEntryItem(t,this.store.empConfig.html,e[0])}if(Object.keys(this.store.empConfig.entries).length>0)for(let[t,s]of Object.entries(this.store.empConfig.entries))this.setEntryItem(t,{...this.store.empConfig.html,...s})}toConfig(){for(let[e,t]of Object.entries(this.entriesConfig))this.setRspackHtmlPlugin(t.html,e),this.setRspackEntry(t.entry)}},ie=new L});var A,pe,ae=c(()=>{"use strict";A=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:[this.postcss,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:[this.postcss,e],type:"css/auto"}}}})}async css(){this.store.chain.merge({module:{rule:{css:{test:/\.css$/,use:[this.postcss],type:"css/auto"}}}})}get postcss(){return{loader:this.store.importResolve("postcss-loader"),options:{postcssOptions:{plugins:this.store.empConfig.css.postcss}}}}},pe=new A});var F,le,ce=c(()=>{"use strict";Z();ee();se();ne();ae();F=class{store;async setup(e){this.store=e;let t=[te.setup(this.store),K.setup(this.store),Y.setup(this.store),ie.setup(this.store),pe.setup(this.store)];await Promise.all(t),await this.store.empConfig.plugins(),await this.store.empConfig.chain()}},le=new F});import h from"chalk";import{table as Ge}from"table";var M,a,y=c(()=>{"use strict";M=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(`${h.white.bgBlue(this.pname)}${h.blue.bgWhite(` ${e} `)}
|
|
2
2
|
`)};cyan=e=>{console.log(`${h.white.bgCyan(this.pname)}${h.cyan.bgWhite(` ${e} `)}
|
|
3
3
|
`)};magenta=e=>{console.log(`${h.white.bgMagenta(this.pname)}${h.magenta.bgWhite(` ${e} `)}
|
|
4
4
|
`)};green=e=>{console.log(`${h.white.bgGreen(this.pname)}${h.green.bgWhite(` ${e} `)}
|
|
5
5
|
`)};yellow=e=>{console.log(`${h.white.bgYellow(this.pname)}${h.yellow.bgWhite(` ${e} `)}
|
|
6
6
|
`)};red=e=>{console.log(`${h.white.bgRed(this.pname)}${h.red.bgWhite(` ${e} `)}
|
|
7
7
|
`)};sysError=e=>{console.log(`${h.white.bgRed(" System Error Tips ")}${h.red.bgWhite(` ${e} `)}
|
|
8
|
-
`)};link=e=>h.hex("#3498db")(e);tableData=[];tableConfig={border:{topBody:"\u2500",topJoin:"\u252C",topLeft:"\u250C",topRight:"\u2510",bottomBody:"\u2500",bottomJoin:"\u2534",bottomLeft:"\u2514",bottomRight:"\u2518",bodyLeft:"\u2502",bodyRight:"\u2502",bodyJoin:"\u2502",joinBody:"\u2500",joinLeft:"\u251C",joinRight:"\u2524",joinJoin:"\u253C"}};tableInput(e){this.tableData.push(e)}tableOutput(){console.log(Fe(this.tableData,this.tableConfig))}},a=new M});var O,ce=c(()=>{"use strict";O=class{externals={};externalAssets={js:[],css:[]};exp=/^([0-9a-zA-Z_\s]+)@(.*)/;async setup(e){this.setShareLib(e),delete e.shareLib}async setShareLib(e){let t=[];if(typeof e.shareLib=="object")for(let[s,o]of Object.entries(e.shareLib)){let r={};if(r.module=s,typeof o=="string"){let n=o.match(this.exp)||[];n.length>0?(r.global=n[1],r.entry=n[2],r.type="js",t.push(r),r={}):(r.global="",r.entry=o,r.type="js",t.push(r),r={})}else Array.isArray(o)?o.map(n=>{if(!n)return;if(n.split("?")[0].endsWith(".css"))r.entry=n,r.type="css";else{let l=n.match(this.exp)||[];l.length>0?(r.global=l[1],r.entry=l[2],r.type="js"):(r.global="",r.entry=n,r.type="js")}t.push(r),r={}}):typeof o=="object"&&o.entry&&(r.entry=o.entry,r.global=o.global,r.type=o.type,t.push(r),r={})}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),s.entry&&this.externalAssets.js.push(s.entry)):s.type==="css"&&s.entry&&this.externalAssets.css.push(s.entry)})}}}});import Me from"node:fs";var N,me,he=c(()=>{"use strict";S();ce();N=class{store;appSrc="src";appEntry="";base="";assign(e,t){return t=t||{},x(e,t)}empShareLib=new O;async setup(e){this.store=e,await this.syncEmpOptions();let{appSrc:t,base:s,appEntry:o}=this.store.empOptions;t&&(this.appSrc=t),s&&(this.base=s),o&&(this.appEntry=o),this.store.empOptions.empShare?.shareLib&&await this.empShareLib.setup(this.store.empOptions.empShare)}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:!1,showRsconfig:!1},this.store.empOptions.debug)}get build(){let e=this.store.empOptions.build?.staticDir?`${this.store.empOptions.build?.staticDir}/`:"";return this.assign({outDir:"dist",staticDir:e,assetsDir:"assets",publicDir:"public",chunkIds:this.store.isDev?"named":"deterministic",sourcemap:!0,minify:!this.store.isDev,minOptions:{}},{...this.store.empOptions.build,staticDir:e})}get html(){return this.assign({lang:"zh-CN",title:"EMP",inject:"body",minify:!this.store.isDev,meta:{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"}},files:{css:[],js:[]},tags:{headTags:[],bodyTags:[]}},this.store.empOptions.html)}get entries(){return this.store.empOptions.entries?this.store.empOptions.entries:{}}get react(){return this.assign({hmr:!0,svgr:!1},this.store.empOptions.react)}get server(){return this.assign({host:"0.0.0.0",port:8e3,open:!1,hot:!0,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"}},this.store.empOptions.server)}get empShare(){return this.assign({name:"",filename:"emp.js",shared:{}},this.store.empOptions.empShare)}get css(){return this.assign({postcss:[]},this.store.empOptions.css)}get output(){let e=(this.store.isDev,".[contenthash:8]"),{assetsDir:t,staticDir:s}=this.store.empConfig.build;return this.assign({publicPath:this.store.empConfig.base?this.store.empConfig.base:"auto",crossOriginLoading:"anonymous",filename:`${s}js/[name]${e}.js`,cssFilename:`${s}css/[name]${e}.css`,cssChunkFilename:`${s}css/[name]${e}.css`,assetModuleFilename:`${s}${t}/[name]${e}[ext][query]`,path:this.store.outDir,clean:!0},this.store.empOptions.output)}get define(){let e={mode:this.store.mode,env:this.store.cliOptions.env};this.store.empOptions.define&&(e={...e,...this.store.empOptions.define});let t={};return Object.keys(e).map(s=>{t[`import.meta.env.${s}`]=JSON.stringify(e[s]),t[`process.env.${s}`]=JSON.stringify(e[s])}),this.assign(t,this.store.empOptions.define)}get externals(){return this.assign(this.empShareLib.externals,this.store.empOptions.externals)}get resolve(){return x({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(!Me.existsSync(e))return;let{default:t}=await import(e);typeof t=="function"?this.store.empOptions=await t(this.store):this.store.empOptions=t||{}}get moduleTransformRule(){let e={and:[/(node_modules|bower_components)/]},{moduleTransform:t}=this.store.empOptions;return t?.exclude&&(e.and=t.exclude),t?.include&&(e.not=t.include),e}get cacheDir(){return this.store.empOptions.cacheDir?this.store.empOptions.cacheDir:"node_modules/.emp-cache"}},me=new N});import b from"node:path";import Ne from"webpack-chain";var G,p,g=c(()=>{"use strict";q();le();y();he();G=class{empPkg={dependencies:{},devDependencies:{},version:"2.0.0",name:""};pkg={dependencies:{},devDependencies:{},version:"0.0.0",name:""};root=process.cwd();empRoot=import.meta.resolve("@empjs/cli").replace("/dist/index.js","").replace("file://","");empSource=b.resolve(this.empRoot,"dist");resolve=e=>b.isAbsolute(e)?e:b.resolve(this.root,e);empResolve=e=>b.resolve(this.empRoot,e);appSrc="";outDir="";publicDir="";resource={dir:"",key:"",cert:""};cacheDir="";mode="development";cliMode="dev";isDev=!0;reactVersion=void 0;cliOptions;chain;rsConfig;empOptions={};empConfig;async setup(e,t){await this.initVars(e,t),this.empConfig=me,await this.empConfig.setup(this),this.initPaths(),this.chain=new Ne,await ae.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 $(this.empResolve("package.json")),o=await $(this.resolve("package.json"));this.empPkg={...this.empPkg,...s},this.pkg={...this.pkg,...o},this.reactVersion=this.pkg.dependencies.react||this.pkg.devDependencies.react}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=b.join(this.empRoot,"resource"),this.resource.cert=b.join(this.resource.dir,"emp.cert"),this.resource.key=b.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 v${this.empPkg.version} ${this.cliMode==="dev"?"DEV ":""}`,logLevel:e})}merge(e){this.chain.merge(e)}importResolve(e){return import.meta.resolve(e).replace("file://","")}toConfig(){this.rsConfig=this.chain.toConfig()}logConfig(){this.empConfig.debug.showRsconfig&&console.log("[ChainConfig]",JSON.stringify(this.rsConfig,null,2))}},p=new G});import ue from"node:fs/promises";var d,P=c(()=>{"use strict";y();g();S();d=class{async setup(e,t){await p.setup(e,t),p.empConfig.debug.clearLog&&se(),a.blue(`${e} Running`),await this.run()}async run(){}get isHttps(){let{server:e,https:t}=p.rsConfig.devServer||{};return e==="https"||typeof e=="object"&&e.type==="https"||t===!0}getcert(){return Promise.all([ue.readFile(p.resource.key),ue.readFile(p.resource.cert)])}}});import Ge from"net";import Ie from"os";async function k(i,e="localhost"){if(i!==He&&(i<fe||i>I))throw new Error(`Port number must lie between ${fe} and ${I}`);let t=i,s=Je(),o;e&&!s.has(e)?o=new Set([e]):o=s;let r=new Set(["EADDRINUSE","EACCES"]);for(;t<=I;)try{return await ze(t,o)}catch(n){if(!r.has(n.code))throw n;t+=1}throw new Error("No available ports found")}var fe,I,He,Je,Ue,ze,H=c(()=>{"use strict";fe=1024,I=65535,He=443,Je=()=>{let i=Ie.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},Ue=(i,e)=>new Promise((t,s)=>{let o=Ge.createServer();o.unref(),o.on("error",s),o.listen(i,e,()=>{let{port:r}=o.address();o.close(()=>{t(r)})})}),ze=async(i,e)=>{let t=new Set(["EADDRNOTAVAIL","EINVAL"]);for(let s of e)try{await Ue(i,s)}catch(o){if(!t.has(o.code))throw o}return i}});var ge={};j(ge,{default:()=>Ve});import{rspack as We}from"@rspack/core";import{RspackDevServer as Be}from"@rspack/dev-server";var J,Ve,de=c(()=>{"use strict";g();P();y();H();J=class extends d{async run(){let e=We(p.rsConfig);if(!p.rsConfig.devServer){a.error("devServer is not defined in config");return}let t=Object.assign({},p.rsConfig.devServer),{host:s,port:o}=t;if(this.isHttps&&(t.https===!0&&delete t.https,!t.server)){let[m,l]=await this.getcert();t.server={type:"https",options:{key:m,cert:l}}}let r=await k(Number(o),s);r!==o&&(p.rsConfig.devServer.port=r,t.port=r),new Be(t,e).start()}},Ve=new J});var ye={};j(ye,{default:()=>qe});import{rspack as _e}from"@rspack/core";var U,qe,be=c(()=>{"use strict";y();g();P();U=class extends d{async run(){_e(p.rsConfig,(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}))),a.info(t.toString({colors:!0,all:!1,assets:!0})),a.green("Compiled successfully.")})}},qe=new U});import ve from"url";import Ce from"chalk";import{ip as Qe}from"address";import{gateway4sync as Xe}from"default-gateway";function we(i,e,t,s="/"){let o=C=>ve.format({protocol:i,hostname:C,port:t,pathname:s}),r=C=>ve.format({protocol:i,hostname:C,port:Ce.bold(t),pathname:s}),n=e==="0.0.0.0"||e==="::",m,l,u=Ce.gray("unavailable");if(n){m="localhost";try{let{int:C}=Xe();l=Qe(C||""),l&&(/^10[.]|^172[.](1[6-9]|2[0-9]|3[0-1])[.]|^192[.]168[.]/.test(l)?u=r(l):l=void 0)}catch{}}else m=e,l=e,u=r(l);let f=r(m),_=o(m);return{lanUrlForConfig:l,lanUrlForTerminal:u,localUrlForTerminal:f,localUrlForBrowser:_}}var xe=c(()=>{"use strict"});var Ee={};j(Ee,{default:()=>st});import Se from"express";import Ye from"cors";import Ze from"compression";import Ke from"https";import et from"path";import tt from"node:fs/promises";var z,st,Oe=c(()=>{"use strict";H();xe();g();y();P();z=class extends d{app;startLogger({host:e,port:t,publicPath:s}){if(s&&(s.indexOf("http://")>-1||s.indexOf("https://")>-1))a.info(`- Network: ${a.link(s)}`);else{let o=this.isHttps?"https":"http",n=we(o,e||"0.0.0.0",t,s);a.info(`- Local: ${a.link(n.localUrlForTerminal)}`),a.info(`- Network: ${a.link(n.lanUrlForTerminal)}`)}}async run(){let e=Se();e.use(Ze()),e.use(Ye()),this.app=e;let t=p.resolve(p.rsConfig.output?.path);this.app.use(Se.static(t));let s=await tt.readFile(et.join(t,"index.html"),"utf8");this.app.get("*",(u,f)=>f.send(s));let o=Object.assign({},p.rsConfig.devServer),{host:r,port:n}=o,m=p.rsConfig.output?.publicPath==="auto"?"/":p.rsConfig.output?.publicPath,l=await k(Number(n),r);if(this.isHttps){let[u,f]=await this.getcert();Ke.createServer(typeof this.isHttps!="boolean"?this.isHttps:{key:u,cert:f},this.app).listen(l,()=>{this.startLogger({host:r,port:l,publicPath:m})})}else this.app.listen(l,()=>{this.startLogger({host:r,port:l,publicPath:m})})}},st=new z});g();g();S();y();import{program as v}from"commander";import W,{exit as rt}from"node:process";function Pe(){let i="20.0.0";re(i,W.versions.node)===1&&(a.sysError(`\u5F53\u524D\u7248\u672C\u4E3Av${W.versions.node} \u6700\u4F4E\u8981\u6C42\u4E3Av${i}`),rt(0)),v.version(p.empPkg.version,"-v, --version").usage("<command> [options]"),v.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").action(async e=>{let{default:t}=await Promise.resolve().then(()=>(de(),ge));await t.setup("dev",e)}),v.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").action(async e=>{let{default:t}=await Promise.resolve().then(()=>(be(),ye));await t.setup("build",e)}),v.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(()=>(Oe(),Ee));await t.setup("serve",e)}),v.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=>{}),v.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=>{}),v.parse(W.argv)}g();import ot from"fast-glob";import ke from"node:fs/promises";import B from"node:path";var it=/(?:(?:import|export)\s?(?:type)?\s?(?:(?:\{[^;\n]+\})|(?:[^;\n]+))\s?from\s?['"][^;\n]+['"])|(?:import\(['"][^;\n]+?['"]\))/g,nt=/(?:import|export)\s?(?:type)?\s?\{?.+\}?\s?from\s?['"](.+)['"]/,pt=/import\(['"]([^;\n]+?)['"]\)/,V=class{list=[];outDir=p.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 ot([`${p.empConfig.build.outDir}/**/*.d.ts`]);let e=[];this.list.map(s=>{s=p.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 ke.readFile(e,{encoding:"utf-8"});return{src:e,code:t}}replaceAliasPath({src:e,code:t}){t=t.replace(it,o=>{let r=o.match(nt);if(r||(r=o.match(pt)),r&&r[1]){let n=r[1];if(!n.startsWith("."))return o;let m=B.resolve(B.dirname(e),n).replace(this.outDir,this.aliasName);return o.replace(r[1],m)}return o});let s=e.replace(this.outDir,this.aliasName).replace(".d.ts","");return s.endsWith("/index")&&(s=s.replace("/index","")),t=this.warpDeclareModule(s,t),{code:t,src:e,mod:s}}warpDeclareModule(e,t){return`declare module '${e}' {\r
|
|
8
|
+
`)};link=e=>h.hex("#3498db")(e);tableData=[];tableConfig={border:{topBody:"\u2500",topJoin:"\u252C",topLeft:"\u250C",topRight:"\u2510",bottomBody:"\u2500",bottomJoin:"\u2534",bottomLeft:"\u2514",bottomRight:"\u2518",bodyLeft:"\u2502",bodyRight:"\u2502",bodyJoin:"\u2502",joinBody:"\u2500",joinLeft:"\u251C",joinRight:"\u2524",joinJoin:"\u253C"}};tableInput(e){this.tableData.push(e)}tableOutput(){console.log(Ge(this.tableData,this.tableConfig))}},a=new M});var O,me=c(()=>{"use strict";O=class{externals={};externalAssets={js:[],css:[]};exp=/^([0-9a-zA-Z_\s]+)@(.*)/;async setup(e){this.setShareLib(e),delete e.shareLib}async setShareLib(e){let t=[];if(typeof e.shareLib=="object")for(let[s,o]of Object.entries(e.shareLib)){let r={};if(r.module=s,typeof o=="string"){let n=o.match(this.exp)||[];n.length>0?(r.global=n[1],r.entry=n[2],r.type="js",t.push(r),r={}):(r.global="",r.entry=o,r.type="js",t.push(r),r={})}else Array.isArray(o)?o.map(n=>{if(!n)return;if(n.split("?")[0].endsWith(".css"))r.entry=n,r.type="css";else{let l=n.match(this.exp)||[];l.length>0?(r.global=l[1],r.entry=l[2],r.type="js"):(r.global="",r.entry=n,r.type="js")}t.push(r),r={}}):typeof o=="object"&&o.entry&&(r.entry=o.entry,r.global=o.global,r.type=o.type,t.push(r),r={})}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),s.entry&&this.externalAssets.js.push(s.entry)):s.type==="css"&&s.entry&&this.externalAssets.css.push(s.entry)})}}}});import Ie from"node:fs";var N,he,ue=c(()=>{"use strict";S();me();N=class{store;appSrc="src";appEntry="";base="";assign(e,t){return t=t||{},x(e,t)}empShareLib=new O;async setup(e){this.store=e,await this.syncEmpOptions();let{appSrc:t,base:s,appEntry:o}=this.store.empOptions;t&&(this.appSrc=t),s&&(this.base=s),o&&(this.appEntry=o),this.store.empOptions.empShare?.shareLib&&await this.empShareLib.setup(this.store.empOptions.empShare)}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:!1,showRsconfig:!1},this.store.empOptions.debug)}get build(){let e=this.store.empOptions.build?.staticDir?`${this.store.empOptions.build?.staticDir}/`:"";return this.assign({outDir:"dist",staticDir:e,assetsDir:"assets",publicDir:"public",chunkIds:this.store.isDev?"named":"deterministic",sourcemap:!0,minify:!this.store.isDev,minOptions:{}},{...this.store.empOptions.build,staticDir:e})}get html(){return this.assign({lang:"zh-CN",title:"EMP",inject:"body",minify:!this.store.isDev,meta:{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"}},files:{css:[],js:[]},tags:{headTags:[],bodyTags:[]}},this.store.empOptions.html)}get entries(){return this.store.empOptions.entries?this.store.empOptions.entries:{}}get react(){return this.assign({hmr:!0,svgr:!1},this.store.empOptions.react)}get server(){return this.assign({host:"0.0.0.0",port:8e3,open:!1,hot:!0,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"}},this.store.empOptions.server)}get empShare(){return this.assign({name:"",filename:"emp.js",shared:{}},this.store.empOptions.empShare)}get css(){return this.assign({postcss:[]},this.store.empOptions.css)}get output(){let e=(this.store.isDev,".[contenthash:8]"),{assetsDir:t,staticDir:s}=this.store.empConfig.build;return this.assign({publicPath:this.store.empConfig.base?this.store.empConfig.base:"auto",crossOriginLoading:"anonymous",filename:`${s}js/[name]${e}.js`,cssFilename:`${s}css/[name]${e}.css`,cssChunkFilename:`${s}css/[name]${e}.css`,assetModuleFilename:`${s}${t}/[name]${e}[ext][query]`,path:this.store.outDir,clean:!0},this.store.empOptions.output)}get define(){let e={mode:this.store.mode,env:this.store.cliOptions.env};this.store.empOptions.define&&(e={...e,...this.store.empOptions.define});let t={};return Object.keys(e).map(s=>{t[`import.meta.env.${s}`]=JSON.stringify(e[s]),t[`process.env.${s}`]=JSON.stringify(e[s]),t[`${s}`]=JSON.stringify(e[s])}),t}get externals(){return this.assign(this.empShareLib.externals,this.store.empOptions.externals)}get resolve(){return x({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(!Ie.existsSync(e))return;let{default:t}=await import(e);typeof t=="function"?this.store.empOptions=await t(this.store):this.store.empOptions=t||{}}get moduleTransformRule(){let e={and:[/(node_modules|bower_components)/]},{moduleTransform:t}=this.store.empOptions;return t?.exclude&&(e.and=t.exclude),t?.include&&(e.not=t.include),e}get cacheDir(){return this.store.empOptions.cacheDir?this.store.empOptions.cacheDir:"node_modules/.emp-cache"}},he=new N});import b from"node:path";import He from"webpack-chain";var G,p,g=c(()=>{"use strict";Q();ce();y();ue();G=class{empPkg={dependencies:{},devDependencies:{},version:"2.0.0",name:""};pkg={dependencies:{},devDependencies:{},version:"0.0.0",name:""};root=process.cwd();empRoot=this.importResolve("@empjs/cli").replace("/dist/index.js","");empSource=b.resolve(this.empRoot,"dist");resolve=e=>b.isAbsolute(e)?e:b.resolve(this.root,e);empResolve=e=>b.resolve(this.empRoot,e);appSrc="";outDir="";publicDir="";resource={dir:"",key:"",cert:""};cacheDir="";mode="development";cliMode="dev";isDev=!0;reactVersion=void 0;cliOptions;chain;rsConfig;empOptions={};empConfig;async setup(e,t){await this.initVars(e,t),this.empConfig=he,await this.empConfig.setup(this),this.initPaths(),this.chain=new He,await le.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 $(this.empResolve("package.json")),o=await $(this.resolve("package.json"));this.empPkg={...this.empPkg,...s},this.pkg={...this.pkg,...o},this.reactVersion=this.pkg.dependencies.react||this.pkg.devDependencies.react}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=b.join(this.empRoot,"resource"),this.resource.cert=b.join(this.resource.dir,"emp.cert"),this.resource.key=b.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 v${this.empPkg.version} ${this.cliMode==="dev"?"DEV ":""}`,logLevel:e})}merge(e){this.chain.merge(e)}importResolve(e){return q(e)}toConfig(){this.rsConfig=this.chain.toConfig()}logConfig(){this.empConfig.debug.showRsconfig&&console.log("[ChainConfig]",JSON.stringify(this.rsConfig,null,2))}},p=new G});import fe from"node:fs/promises";var d,P=c(()=>{"use strict";y();g();S();d=class{async setup(e,t){await p.setup(e,t),p.empConfig.debug.clearLog&&re(),a.blue(`${e} Running`),await this.run()}async run(){}get isHttps(){let{server:e,https:t}=p.rsConfig.devServer||{};return e==="https"||typeof e=="object"&&e.type==="https"||t===!0}getcert(){return Promise.all([fe.readFile(p.resource.key),fe.readFile(p.resource.cert)])}}});import Je from"net";import Ue from"os";async function j(i,e="localhost"){if(i!==ze&&(i<ge||i>I))throw new Error(`Port number must lie between ${ge} and ${I}`);let t=i,s=We(),o;e&&!s.has(e)?o=new Set([e]):o=s;let r=new Set(["EADDRINUSE","EACCES"]);for(;t<=I;)try{return await Ve(t,o)}catch(n){if(!r.has(n.code))throw n;t+=1}throw new Error("No available ports found")}var ge,I,ze,We,Be,Ve,H=c(()=>{"use strict";ge=1024,I=65535,ze=443,We=()=>{let i=Ue.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},Be=(i,e)=>new Promise((t,s)=>{let o=Je.createServer();o.unref(),o.on("error",s),o.listen(i,e,()=>{let{port:r}=o.address();o.close(()=>{t(r)})})}),Ve=async(i,e)=>{let t=new Set(["EADDRNOTAVAIL","EINVAL"]);for(let s of e)try{await Be(i,s)}catch(o){if(!t.has(o.code))throw o}return i}});var de={};k(de,{default:()=>Qe});import{rspack as _e}from"@rspack/core";import{RspackDevServer as qe}from"@rspack/dev-server";var J,Qe,ye=c(()=>{"use strict";g();P();y();H();J=class extends d{async run(){let e=_e(p.rsConfig);if(!p.rsConfig.devServer){a.error("devServer is not defined in config");return}let t=Object.assign({},p.rsConfig.devServer),{host:s,port:o}=t;if(this.isHttps&&(t.https===!0&&delete t.https,!t.server)){let[m,l]=await this.getcert();t.server={type:"https",options:{key:m,cert:l}}}let r=await j(Number(o),s);r!==o&&(p.rsConfig.devServer.port=r,t.port=r),new qe(t,e).start()}},Qe=new J});var be={};k(be,{default:()=>Ye});import{rspack as Xe}from"@rspack/core";var U,Ye,ve=c(()=>{"use strict";y();g();P();U=class extends d{async run(){Xe(p.rsConfig,(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}))),a.info(t.toString({colors:!0,all:!1,assets:!0})),a.green("Compiled successfully.")})}},Ye=new U});import Ce from"url";import we from"chalk";import{ip as Ze}from"address";import{gateway4sync as Ke}from"default-gateway";function xe(i,e,t,s="/"){let o=C=>Ce.format({protocol:i,hostname:C,port:t,pathname:s}),r=C=>Ce.format({protocol:i,hostname:C,port:we.bold(t),pathname:s}),n=e==="0.0.0.0"||e==="::",m,l,u=we.gray("unavailable");if(n){m="localhost";try{let{int:C}=Ke();l=Ze(C||""),l&&(/^10[.]|^172[.](1[6-9]|2[0-9]|3[0-1])[.]|^192[.]168[.]/.test(l)?u=r(l):l=void 0)}catch{}}else m=e,l=e,u=r(l);let f=r(m),_=o(m);return{lanUrlForConfig:l,lanUrlForTerminal:u,localUrlForTerminal:f,localUrlForBrowser:_}}var Se=c(()=>{"use strict"});var Oe={};k(Oe,{default:()=>it});import Ee from"express";import et from"cors";import tt from"compression";import st from"https";import rt from"path";import ot from"node:fs/promises";var z,it,Pe=c(()=>{"use strict";H();Se();g();y();P();z=class extends d{app;startLogger({host:e,port:t,publicPath:s}){if(s&&(s.indexOf("http://")>-1||s.indexOf("https://")>-1))a.info(`- Network: ${a.link(s)}`);else{let o=this.isHttps?"https":"http",n=xe(o,e||"0.0.0.0",t,s);a.info(`- Local: ${a.link(n.localUrlForTerminal)}`),a.info(`- Network: ${a.link(n.lanUrlForTerminal)}`)}}async run(){let e=Ee();e.use(tt()),e.use(et()),this.app=e;let t=p.resolve(p.rsConfig.output?.path);this.app.use(Ee.static(t));let s=await ot.readFile(rt.join(t,"index.html"),"utf8");this.app.get("*",(u,f)=>f.send(s));let o=Object.assign({},p.rsConfig.devServer),{host:r,port:n}=o,m=p.rsConfig.output?.publicPath==="auto"?"/":p.rsConfig.output?.publicPath,l=await j(Number(n),r);if(this.isHttps){let[u,f]=await this.getcert();st.createServer(typeof this.isHttps!="boolean"?this.isHttps:{key:u,cert:f},this.app).listen(l,()=>{this.startLogger({host:r,port:l,publicPath:m})})}else this.app.listen(l,()=>{this.startLogger({host:r,port:l,publicPath:m})})}},it=new z});g();g();S();y();import{program as v}from"commander";import W,{exit as nt}from"node:process";function je(){let i="20.0.0";oe(i,W.versions.node)===1&&(a.sysError(`\u5F53\u524D\u7248\u672C\u4E3Av${W.versions.node} \u6700\u4F4E\u8981\u6C42\u4E3Av${i}`),nt(0)),v.version(p.empPkg.version,"-v, --version").usage("<command> [options]"),v.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").action(async e=>{let{default:t}=await Promise.resolve().then(()=>(ye(),de));await t.setup("dev",e)}),v.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").action(async e=>{let{default:t}=await Promise.resolve().then(()=>(ve(),be));await t.setup("build",e)}),v.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(()=>(Pe(),Oe));await t.setup("serve",e)}),v.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=>{}),v.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=>{}),v.parse(W.argv)}g();import pt from"fast-glob";import ke from"node:fs/promises";import B from"node:path";var at=/(?:(?:import|export)\s?(?:type)?\s?(?:(?:\{[^;\n]+\})|(?:[^;\n]+))\s?from\s?['"][^;\n]+['"])|(?:import\(['"][^;\n]+?['"]\))/g,lt=/(?:import|export)\s?(?:type)?\s?\{?.+\}?\s?from\s?['"](.+)['"]/,ct=/import\(['"]([^;\n]+?)['"]\)/,V=class{list=[];outDir=p.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 pt([`${p.empConfig.build.outDir}/**/*.d.ts`]);let e=[];this.list.map(s=>{s=p.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 ke.readFile(e,{encoding:"utf-8"});return{src:e,code:t}}replaceAliasPath({src:e,code:t}){t=t.replace(at,o=>{let r=o.match(lt);if(r||(r=o.match(ct)),r&&r[1]){let n=r[1];if(!n.startsWith("."))return o;let m=B.resolve(B.dirname(e),n).replace(this.outDir,this.aliasName);return o.replace(r[1],m)}return o});let s=e.replace(this.outDir,this.aliasName).replace(".d.ts","");return s.endsWith("/index")&&(s=s.replace("/index","")),t=this.warpDeclareModule(s,t),{code:t,src:e,mod:s}}warpDeclareModule(e,t){return`declare module '${e}' {\r
|
|
9
9
|
${t}}\r
|
|
10
|
-
`}async writeCode(e){let t="";e.map(s=>{t+=s.code}),await ke.writeFile(B.join(this.outDir.replace("dist","types"),"type.d.ts"),t)}},
|
|
10
|
+
`}async writeCode(e){let t="";e.map(s=>{t+=s.code}),await ke.writeFile(B.join(this.outDir.replace("dist","types"),"type.d.ts"),t)}},mt=new V;function Qs(i){return i}export{Qs as defineConfig,mt as dts,je as runScript,p as store};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@empjs/cli",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.37",
|
|
4
4
|
"description": "emp",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -40,6 +40,10 @@
|
|
|
40
40
|
"import": {
|
|
41
41
|
"default": "./dist/index.js",
|
|
42
42
|
"types": "./dist/index.d.ts"
|
|
43
|
+
},
|
|
44
|
+
"require": {
|
|
45
|
+
"default": "./dist/index.js",
|
|
46
|
+
"types": "./dist/index.d.ts"
|
|
43
47
|
}
|
|
44
48
|
},
|
|
45
49
|
"./emp-tsconfig.json": "./emp-tsconfig.json"
|