@giteeteam/apps-cli 0.8.17 → 0.8.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +6 -6
- package/package.json +9 -9
- package/dist/index.js.LEGAL.txt +0 -0
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";var
|
|
3
|
-
`);let{pass:l,errors:u}=a.validate();if(!l){if(u!=null&&u.length){let{message:
|
|
4
|
-
The output file of the build is ${
|
|
5
|
-
`)})};var
|
|
6
|
-
`);let{domain:
|
|
7
|
-
`);var
|
|
2
|
+
"use strict";var no=Object.create;var W=Object.defineProperty;var io=Object.getOwnPropertyDescriptor;var so=Object.getOwnPropertyNames;var ao=Object.getPrototypeOf,po=Object.prototype.hasOwnProperty;var co=(e,t)=>()=>(e&&(t=e(e=0)),t);var mo=(e,t)=>{for(var o in t)W(e,o,{get:t[o],enumerable:!0})},lo=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of so(t))!po.call(e,n)&&n!==o&&W(e,n,{get:()=>t[n],enumerable:!(r=io(t,n))||r.enumerable});return e};var s=(e,t,o)=>(o=e!=null?no(ao(e)):{},lo(t||!e||!e.__esModule?W(o,"default",{value:e,enumerable:!0}):o,e));var Ge={};mo(Ge,{default:()=>ko});function ko({environment:e,appKey:t,distOutputPath:o="dist"}){let r=e==="production",n=e==="development",i=f=>f?{filename:"js/[name].[chunkhash].min.js",path:M.default.resolve(o),publicPath:"./",library:t,libraryTarget:"umd"}:{filename:"main.js",path:M.default.resolve(o),publicPath:"/",library:t,libraryTarget:"umd"},p=({resourcePath:f},fe,y)=>y===t||/\.global\.(css|less)$/.test(f)||/node_modules/.test(f)?y:`${y}__${(0,Ue.default)(f+y,{algorithm:"md5"}).slice(0,8)}`,a={loader:"@ecomfe/class-names-loader",options:{classNamesModule:require.resolve("classnames")}},c=r?Y.default.loader:"style-loader",m={loader:"postcss-loader",options:{postcssOptions:{plugins:[Me.default]}}},l={loader:"css-loader",options:{modules:{getLocalIdent:p},importLoaders:1}},u={loader:"less-loader",options:{lessOptions:{javascriptEnabled:!0,modifyVars:{...Fe,...bo,"ant-prefix":t}}}};return{mode:e,entry:"./src/index.tsx",output:i(r),devtool:r?!1:"source-map",resolve:{extensions:[".js",".ts",".jsx",".tsx",".css",".less"]},optimization:{minimize:r,minimizer:[new Ne.default,"..."]},plugins:[Oo&&new wo,new X.default.DefinePlugin({"process.env":JSON.stringify(process.env),"process.env.appKey":JSON.stringify(t)}),new je.default({template:M.default.resolve("public/index.html"),filename:"index.html",inject:!0,appKey:t}),r&&new Y.default({filename:"[name].[contenthash].css",chunkFilename:"[name].[contenthash].chunk.css"}),n&&new X.default.HotModuleReplacementPlugin,n&&new Le.default({overlay:!1}),r&&new Ie.CleanWebpackPlugin].filter(Boolean),module:{rules:[{oneOf:[{test:/\.(js|mjs|jsx|ts|tsx)$/,exclude:/node_modules/,loader:"swc-loader",options:{sourceMaps:Eo,jsc:{parser:{syntax:"typescript",tsx:!0},transform:{react:{runtime:"automatic",development:!r,refresh:!r}}},env:{targets:"chrome >= 72",mode:"usage",coreJs:"3.38"}}},{test:/\.css$/,use:[a,c,"css-loader",m]},{test:/\.less$/,use:[a,c,l,m,u]},{test:/\.(png|jpg|gif)$/i,use:[{loader:"url-loader",options:{name:"[name]_[hash].[ext]",limit:100*24}}]},{test:/\.svg$/i,use:["@svgr/webpack"]}]}]},externals:[{...Po()}]}}var M,Ae,_e,Le,$e,Me,Ie,Ne,Ue,je,Y,X,wo,yo,vo,Fe,bo,xo,Po,Eo,Oo,Be=co(()=>{"use strict";M=s(require("path")),Ae=require("@ant-design/compatible"),_e=require("@giteeteam/apps-team-theme"),Le=s(require("@pmmmwh/react-refresh-webpack-plugin")),$e=require("antd"),Me=s(require("autoprefixer")),Ie=require("clean-webpack-plugin"),Ne=s(require("css-minimizer-webpack-plugin")),Ue=s(require("hasha")),je=s(require("html-webpack-plugin")),Y=s(require("mini-css-extract-plugin")),X=s(require("webpack")),wo=require("webpack-bundle-analyzer").BundleAnalyzerPlugin,{defaultAlgorithm:yo,defaultSeed:vo}=$e.theme,Fe=yo({...vo,..._e.themeConfig.token}),bo=(0,Ae.convertLegacyToken)({...Fe}),xo=()=>e=>["window modules",e],Po=()=>{let e=xo();return{"react-dom/client":e("reactDOMClient"),"react-dom":e("reactDOM"),react:e("react")}},Eo=process.env.GENERATE_SOURCEMAP==="true",Oo=process.env.ANALYZER_PACKAGE==="true"});var Ln=require("dotenv/config"),ue=s(require("chalk")),Zt=require("commander");var k="0.8.18";var te=s(require("path"));var L=["manifest.yml","locales"],ve=Buffer.from(process.env.ONE_AUTH_IV||"ABCDEFGHIJKLM_iv","utf-8"),be=Buffer.from(process.env.ONE_AUTH_SECRET_KEY||"ABCDEFGHIJKL_key","utf-8"),xe=process.env.ONE_AUTH_ALGORITHM||"aes-128-cbc";var j=s(require("chalk")),et=s(require("fs-extra"));var Oe=s(require("fs")),J=s(require("path")),ke=s(require("@rollup/plugin-commonjs")),Te=require("rollup");var T=require("fs"),h=require("path"),Pe=require("esbuild"),fo={treeShaking:!0,format:"esm",loader:"tsx"};var go=({source:e,dirPath:t,mode:o})=>{let r="";if(o==="development")try{return r=require.resolve(e+"/src/index.ts",{paths:[t]}),r}catch{}try{return r=require.resolve(e,{paths:[t]}),r}catch{}return r};function Q({mode:e,...t}){return t={...fo,...t},{name:"esbuild",resolveId(o,r,n){if(!r)return o;let i=(0,h.dirname)(r),p;if((0,T.existsSync)(p=(0,h.resolve)(i,o,"index.ts")))return p;if((0,T.existsSync)(p=(0,h.resolve)(i,o,"index.tsx")))return p;if((0,T.existsSync)(p=(0,h.resolve)(i,o+".ts")))return p;if((0,T.existsSync)(p=(0,h.resolve)(i,o+".tsx")))return p;{let a=go({source:o,dirPath:i,mode:e});if((0,T.existsSync)(a))return a;throw console.error({source:o,importer:r,options:n}),p=(0,h.relative)(".",(0,h.resolve)(r,o)),new Error(`ENOENT: ${p.replace(/\\/g,"/")}`)}},async transform(o,r){t.sourcefile=r,t.loader=r.endsWith(".json")?"json":t.loader;let{code:n,map:i}=await(0,Pe.transform)(o,t);return i?{code:n,map:i}:n}}}function ho(e,t,o="development"){let r=[(0,ke.default)()];r.push(Q({mode:o,sourcemap:o==="development",minify:o!=="development",target:"es2018",jsx:"transform",jsxFactory:"AppsUI.createElement",jsxFragment:"AppsUI.Fragment"}));let n={input:e,plugins:r},i={file:t,format:"es",sourcemap:o==="development"};return{inputOptions:n,outputOptions:i}}async function $(e){let{fileName:t,inputDir:o,outputDir:r,mode:n="development"}=e,i=J.default.join(o,`${t}.ts`);try{await Oe.default.promises.access(i)}catch{console.error(`${i} is not exist`);return}let p=J.default.join(r,`${t}.js`),{inputOptions:a,outputOptions:c}=ho(i,p,n);await(await(0,Te.rollup)(a)).write(c)}var Se=s(require("ora")),d=async(e,t)=>{var r,n;let o=(0,Se.default)(e.start).start();try{let i=await t();return o.succeed(e.succeed),i}catch(i){throw o.fail(`${e.error}: ${((n=(r=i==null?void 0:i.response)==null?void 0:r.data)==null?void 0:n.message)||i.message}`),i}};var Ce=s(require("path")),De=require("@giteeteam/apps-manifest"),Re=s(require("fs-extra")),b=async()=>{let e=Ce.default.resolve("manifest.yml"),t=await Re.default.readFile(e);return new De.Manifest(t.toString())};var Ve=s(require("path")),He=s(require("webpack")),qe=s(require("webpack-merge"));var I=async()=>(await Promise.resolve().then(()=>(Be(),Ge))).default;var ze=async({appKey:e,webpackConfig:t})=>{let o=await I();return new Promise((r,n)=>{let i=o({environment:"production",appKey:e});if(t){let a=require(Ve.default.resolve(t));i=(0,qe.default)(i,a)}(0,He.default)(i).run((a,c)=>{if(a)return console.error(a),n(a);if(console.info(c==null?void 0:c.toString()),c!=null&&c.hasErrors())return n(new Error("build-ui-error"));r()})})};var Ke=s(require("path")),We=s(require("archiver")),Z=s(require("fs-extra")),Qe=async(e,t)=>{let o=Ke.default.resolve(t);return await Z.default.remove(o),new Promise((r,n)=>{let i=Z.default.createWriteStream(o),p=(0,We.default)("zip",{zlib:{level:9}});i.on("close",function(){r()}),p.on("warning",function(a){console.info(a),a.code==="ENOENT"||n(a)}),p.on("error",function(a){console.info(a),n(a)}),p.pipe(i),p.directory(e,!1),p.finalize()})};var Je=async e=>{let{manifest:t,mode:o,outputDir:r,inputDir:n}=e,p=t.getFunctionFiles().map(async a=>{await $({inputDir:n,fileName:a,outputDir:r,mode:o})});await Promise.all(p)};var U=s(require("path")),Xe=s(require("fs-extra"));var ee=s(require("path")),Ye=s(require("fs-extra")),N=async(e,t)=>{for(let o of t)try{let r=ee.default.resolve(o),n=ee.default.join(e,o);await Ye.default.copy(r,n)}catch(r){if(r.code==="ENOENT"&&o==="locales")continue;throw r}};var Ze=async({outputDir:e,manifest:t,filesToCopy:o})=>{let{resources:r}=t;if(r)for(let{key:n,path:i}of r){let p=U.default.resolve(U.default.join("./",i)),a=U.default.join(e,n);await Xe.default.copy(p,a)}await N(e,o)};var tt=async({outputDir:e,inputDir:t,prod:o,filesToCopy:r,zip:n,ui:i,webpackConfig:p})=>{let a=await b(),{version:c,key:m}=a.app;if(!m){console.error("manifest app key is required");return}if(!c){console.error("manifest app version is required");return}console.info(`App key: ${j.default.bold.green(m)}`),console.info(`App version: ${j.default.bold.green(c)}
|
|
3
|
+
`);let{pass:l,errors:u}=a.validate();if(!l){if(u!=null&&u.length){let{message:g,path:f}=u[0];console.error(`Manifest valid error: Path '${f}', ${g}`)}else console.error("Manifest valid error");return}if(await et.default.emptyDir(e),i&&await d({start:"start build ui",error:"build ui failed",succeed:"build ui success"},()=>ze({appKey:m,webpackConfig:p})),await d({start:"start bundle",error:"bundle failed",succeed:"bundle success"},()=>Je({outputDir:e,inputDir:t,manifest:a,mode:o?"production":"development"})),await d({start:"start package",error:"package failed",succeed:"package success"},()=>Ze({outputDir:e,manifest:a,filesToCopy:r})),n){let g=`${m}_${c}.zip`;await d({start:"start archive",error:"archive failed",succeed:"archive success"},()=>Qe(e,g)),console.info(`
|
|
4
|
+
The output file of the build is ${j.default.bold.green(g)}`)}};var ot=async e=>{let{input:t="functions",output:o="package",prod:r,dev:n,copy:i=[],zip:p,ui:a,webpack:c}=e;await tt({outputDir:te.default.resolve(o),inputDir:te.default.resolve(t),prod:r??!n,filesToCopy:[...L,...i],zip:p,ui:!!a,webpackConfig:c}).catch(()=>{})};var ft=s(require("fs")),dt=s(require("chalk"));var rt=s(require("path")),nt=s(require("lowdb")),it=s(require("lowdb/adapters/FileSync"));var oe,re=()=>{if(!oe){let e=rt.default.join(__dirname,"user.json"),t=new it.default(e);oe=(0,nt.default)(t)}return oe},st=()=>{let e=re(),t=e.get("version").value();(!t||t!==k)&&e.defaults({version:k,user:{}}).write()},ne=e=>{st(),re().set("user",e).write()},S=()=>(st(),re().get("user").value());var pt=s(require("fs")),ct=s(require("path")),mt=s(require("form-data"));var at=s(require("axios"));var v={GET:"GET",POST:"POST",PUT:"PUT",DELETE:"DELETE"},E=async({url:e,method:t,data:o,headers:r})=>{let{domain:n,cookie:i}=S();return(await(0,at.default)({method:t,baseURL:n,url:e,data:o,headers:{...r,cookie:i}})).data};var lt=async(e,t)=>{let o=new mt.default;o.append("environmentKey",t),o.append("package",pt.default.createReadStream(ct.default.resolve(e))),await E({method:v.POST,url:"/apps/api/v1/apps/deploy",data:o,headers:{...o.getHeaders()}})};var ut=s(require("chalk")),To=ut.default.bold.red,w={error:e=>{console.info(To(e))}};var gt=(r=>(r.DEVELOPMENT="development",r.STAGING="staging",r.PRODUCTION="production",r))(gt||{}),ht=async(e,t)=>{let{domain:o}=S(),{environment:r="development"}=t;if(!Object.values(gt).includes(r)){w.error("Only support development, staging, production environment.");return}if(!o){w.error("Please login in first!");return}if(!ft.default.existsSync(e)){w.error(`File:${e} is not exist`);return}console.info(`Deploying to ${dt.default.bold.green(o)}`),await d({start:"start deploy",error:"deploy failed",succeed:"deploy success"},()=>lt(e,r)).catch(()=>{})};var C=s(require("path")),D=s(require("fs-extra")),pe=s(require("inquirer"));var wt=s(require("readline")),yt=require("chalk"),vt=s(require("execa")),So=e=>{if(!yt.supportsColor){e.write("\r");return}wt.default.cursorTo(e,0)},Co=(e,t)=>{let o=Math.min(Math.max(e/t,0),1),r=` ${e}/${t}`,n=Math.max(0,process.stderr.columns-r.length-3),i=Math.min(t,n),p=Math.round(i*o),a="#".repeat(p),c="-".repeat(i-p);So(process.stderr),process.stderr.write(`[${a}${c}]${r}`)},Do=(e,t,o,r)=>new Promise((n,i)=>{var a;let p=(0,vt.default)(e,t,{cwd:o,stdio:["inherit","inherit","pipe"],env:r});(a=p.stderr)==null||a.on("data",c=>{let m=c.toString();if(/warning/.test(m))return;let l=m.match(/\[.*] (\d+)\/(\d+)/);if(l){Co(parseFloat(l[1]),parseFloat(l[2]));return}process.stderr.write(c)}),p.on("close",c=>{if(c!==0){i(new Error(`command failed: ${e} ${t.join(" ")}`));return}n()})}),bt={executeCommand:Do};var ie=s(require("fs-extra")),se=s(require("simple-git")),xt=async e=>{await(0,se.default)(e).init()},Pt=async(e,t)=>{await ie.default.pathExists(t)||await ie.default.mkdir(t),await(0,se.default)(t).clone(e,t)};var F=s(require("fs-extra")),Et="https://github.com/moriahq/apps-template.git",ae=(o=>(o.micro="micro",o.uikit="uikit",o))(ae||{}),Ot=async(e,t)=>{if(!await F.default.pathExists(e))return;let o=await F.default.readFile(e,{encoding:"utf-8"});await F.default.writeFile(e,o.replace(/{{(\w+)}}/g,(r,n)=>typeof t[n]=="string"?t[n]:r))};var Ao=async()=>(await pe.default.createPromptModule()({type:"input",name:"App Name",message:"Please enter an app name",validate:o=>!!o}))["App Name"],_o=async()=>(await pe.default.createPromptModule()({type:"input",name:"App key",message:"Please enter a valid app key",validate:o=>/^[a-z][a-z0-9_]*$/.test(o)?!0:(console.info(""),console.info("only supports letters, numbers, underscores and starts with letters"),!1)}))["App key"],Lo=async(e,t)=>{await d({start:"Start clone repository",error:"Clone repository failed!",succeed:"Clone repository success!"},()=>Pt(e,t))},$o=async e=>{await d({start:"Start install dependencies",error:"Install dependencies failed!",succeed:"Install dependencies success!"},()=>bt.executeCommand("yarn",["install"],e))},kt=async e=>{let{cwd:t}=e,o="micro",r=await Ao(),n=await _o(),i=C.default.join(t,n);if(await D.default.pathExists(i)){console.error(`Project path already exists: ${i}`);return}await Lo(Et,i),await D.default.copy(C.default.join(i,o),i),await Promise.all(Object.values(ae).map(a=>D.default.remove(C.default.join(i,a)))),await D.default.remove(C.default.join(i,"./.git"));let p=["./manifest.yml","./package.json","./webpack.config.js","./public/index.html","./src/App.tsx","./src/index.tsx","./static/App.tsx","./static/index.tsx"];await Promise.all(p.map(a=>Ot(C.default.join(i,a),{appName:r,appKey:n}))),await $o(i),await xt(i),console.info("Project init success!"),console.info("Project path:"+i)};var Tt=async()=>{let e=process.cwd();await kt({cwd:e})};var G=s(require("inquirer"));var ce=s(require("axios"));var St=async({baseUrl:e,username:t,password:o})=>{var r;try{return{cookie:(r=(await(0,ce.default)({method:v.POST,url:`${e}/api/gateway/login`,data:{username:t,password:o}})).headers)==null?void 0:r["set-cookie"]}}catch(n){return console.error("Login error:",n==null?void 0:n.message),{cookie:""}}},Ct=async e=>{try{return await(0,ce.default)({method:v.GET,url:`${e}/apps/api/v1/tenants`}),!1}catch{return!0}};var Dt=e=>{try{return new URL(e).origin}catch{return e}};var Rt=s(require("crypto"));var At=e=>{try{let t=Rt.default.createCipheriv(xe,be,ve),o=t.update(e,"utf8","base64");return o+=t.final("base64"),o.toString()}catch(t){return console.error(`Encryption error: ${t}`),null}};var Mo=async()=>(await G.default.createPromptModule()({type:"input",name:"Domain",message:"Please enter the domain address",validate:o=>{try{return new URL(o),!0}catch{return"Please enter a valid domain name"}}})).Domain,Io=async()=>(await G.default.createPromptModule()({type:"input",name:"Username",message:"Please enter username",validate:o=>!!o})).Username,No=async()=>(await G.default.createPromptModule()({type:"password",name:"Password",message:"Please enter password",validate:o=>!!o})).Password,_t=async({domain:e,username:t,password:o})=>{if(e||(e=await Mo()),e=Dt(e),await Ct(e)){t||(t=await Io()),o||(o=await No());let{cookie:n}=await St({baseUrl:e,username:t,password:At(o)||o});n?(ne({domain:e,username:t,cookie:n}),console.info("Login success!")):console.error("Login failed!")}else ne({domain:e}),console.info("Login success!")};var Lt=async e=>{await _t(e)};var q=s(require("path"));var Kt=s(require("path")),H=s(require("chalk")),Wt=s(require("debug")),le=s(require("fs-extra"));var $t=async()=>{var t;return((t=(await E({method:v.GET,url:"/apps/api/v1/config"}).catch(o=>{var r,n;console.info(`getRuntimeConfig error ${((n=(r=o==null?void 0:o.response)==null?void 0:r.data)==null?void 0:n.message)||(o==null?void 0:o.message)}`)})).data)==null?void 0:t.runtime)||{}};var B=require("child_process"),R=class{constructor(t,o){this.imageName=t,this.containerName=o}async downloadImage(){console.info(`Downloading image(${this.imageName}) ...`),await this.execPromise(`docker pull ${this.imageName}`),console.info(`Download image(${this.imageName}) success!`)}async runContainer({port:t,env:o,volume:r=[]}){await this.removeContainer();let n=Object.keys(o).filter(a=>o[a]!==void 0).map(a=>`-e ${a}=${o[a]}`).join(" "),i=r==null?void 0:r.map(a=>`-v ${a}`).join(" "),p=`docker run -d -p ${t}:${t} ${n} ${i} --name ${this.containerName} ${this.imageName}`;await this.execPromise(p)}async removeContainer(){await this.execPromise(`docker rm -f ${this.containerName}`).catch(()=>{})}logs(){let t=(0,B.spawn)("docker",["logs","-f",this.containerName]);t.stdout.on("data",o=>{console.info(`${o}`)}),t.stderr.on("data",o=>{console.info(`${o}`)})}execPromise(t){return new Promise((o,r)=>{(0,B.exec)(t,(n,i,p)=>{if(n)return r(n);o({stdout:i,stderr:p})})})}};var Mt=s(require("localtunnel"));var It=async({appKey:e,runtimeHost:t,resources:o,resourcePort:r})=>{o!=null&&o.length&&o.forEach(n=>{n.path=`http://127.0.0.1:${r}`}),await E({method:v.POST,url:`/apps/api/v1/apps/tunnel/${e}`,data:{resources:o,runtimeHost:t}}).catch(n=>{var i,p;console.info(`addTunnel error ${((p=(i=n==null?void 0:n.response)==null?void 0:i.data)==null?void 0:p.message)||(n==null?void 0:n.message)}`)})},Nt=async e=>{await E({method:"DELETE",url:`/apps/api/v1/apps/tunnel/${e}`}).catch(()=>{})},Ut=async e=>{var t,o;try{return(await(0,Mt.default)({port:e,host:((t=process.env)==null?void 0:t.TUNNEL_HOST)==="OFFICIAL"?void 0:((o=process.env)==null?void 0:o.TUNNEL_HOST)||"http://tunnel.gitee.work:1777"})).url}catch(r){return console.info("runTunnel error",r==null?void 0:r.message),""}};var me=s(require("path")),jt=s(require("cors")),Ft=s(require("express")),Gt=s(require("webpack")),Bt=s(require("webpack-dev-middleware")),Vt=require("webpack-merge");var V=async({appKey:e,webpackConfig:t})=>{let r=(await I())({environment:"development",appKey:e});if(t){let c=require(me.default.resolve(t));r=(0,Vt.merge)(r,c)}let n=(0,Gt.default)(r),i=(0,Ft.default)(),p=Number(process.env.UI_PORT)||8e3,a=(0,Bt.default)(n);i.use((0,jt.default)()),i.use(a),i.get("*",(c,m)=>{var l,u;(u=n.outputFileSystem)==null||u.readFile(me.default.join(((l=r.output)==null?void 0:l.path)||"","index.html"),(g,f)=>{if(g||!f){m.sendStatus(404);return}m.send(f.toString())})}),i.listen(p,"0.0.0.0",()=>{console.info(`The React app is listening on port ${p}!
|
|
5
|
+
`)})};var qt=s(require("chokidar"));var Ht=(e,t,o)=>{for(let r of e)$({inputDir:t,outputDir:o,fileName:r,mode:"development"})},zt=async e=>{let{inputDir:t,outputDir:o,watchFilePaths:r}=e,i=(await b()).getFunctionFiles();Ht(i,t,o);let p,a=[t,...r],c=qt.default.watch(a);console.info(`watch: ${a.join(", ")}`),c.on("change",m=>{clearTimeout(p),p=setTimeout(()=>{console.info(`${m} has change`),Ht(i,t,o)},1e3)})};var Uo=(0,Wt.default)("cli:tunnel"),jo=async()=>{let e=await $t(),t=process.env.RUNTIME_IMAGE||e.image||"docker-hub.gitee.work/gitee-prod/proxima-apps-runtime-server:4.4.0-alpha-86",o=Number(process.env.CONTAINER_PORT)||8455,r=process.env.CONTAINER_NAME||"cli-dev-apps-runtime-server",n=process.env.PULL_IMAGE!=="false",i={PORT:o,APPS_DIR:"/usr/src/app/apps",LRU_TTL:1,FS_MODE:"local",DEBUG:process.env.DEBUG||"runtime*",LOG_LEVEL:process.env.LOG_LEVEL,APPS_DEFAULT_LOCALE:process.env.APPS_DEFAULT_LOCALE||"zh-CN",PARSE_PUBLIC_SERVER_URL:process.env.PARSE_PUBLIC_SERVER_URL||e.parsePublicServerUrl,PARSE_SERVER_MASTER_KEY:process.env.PARSE_SERVER_MASTER_KEY||e.parseServerMasterKey,PROXIMA_CORE_URL:process.env.PROXIMA_CORE_URL||e.proximaCoreUrl,APPS_SERVER_URL:process.env.APPS_SERVER_URL||e.appsServerUrl,APPS_PARSE_SERVER_URL:process.env.APPS_PARSE_SERVER_URL||e.appsParseServerUrl,PGSQL_CLIENT_HOST:process.env.PGSQL_CLIENT_HOST,PGSQL_CLIENT_PORT:process.env.PGSQL_CLIENT_PORT,PGSQL_CLIENT_USER:process.env.PGSQL_CLIENT_USER,PGSQL_CLIENT_PASSWORD:process.env.PGSQL_CLIENT_PASSWORD,APPS_RUNTIME_IOREDIS_OPTIONS:process.env.APPS_RUNTIME_IOREDIS_OPTIONS?`'${process.env.APPS_RUNTIME_IOREDIS_OPTIONS}'`:void 0};return{runtimeImage:t,containerPort:o,containerName:r,containerEnv:i,pullImage:n}},Qt=async e=>{var he,we,ye;let{inputDir:t,outputDir:o,server:r,filesToCopy:n,resourcePort:i,ui:p,webpackConfig:a,noProxy:c,watchFilePaths:m=[]}=e;await le.default.emptyDir(o);let l=await b(),u=l.app.key,g=l.app.version,f=l.getFunctionFiles(),fe=l.resources||[];if(!u){w.error("appKey is required!");return}if(!g){w.error("version is required!");return}console.info(`App key: ${H.default.bold.green(u)}`),console.info(`App version: ${H.default.bold.green(g)}
|
|
6
|
+
`);let{domain:y}=S();if(!y){w.error("Please login in first!");return}console.info(`Tunneling to ${H.default.bold.green(y)}`);let A=[],z=async O=>{O instanceof Error&&console.error(O);try{await Promise.all(A.map(P=>P()))}catch(P){console.error("other error:",P)}process.exit()};process.on("SIGINT",z),process.on("uncaughtException",z),process.on("unhandledRejection",z),p&&V({appKey:u,webpackConfig:a});let eo=`${`/${u}/development/${g}`}/server-side`,de=Kt.default.join(o,eo);await N(de,n),await zt({inputDir:t,outputDir:de,watchFilePaths:m}),A.push(()=>le.default.remove(o));let K="",ge;if(r&&f.length>0){let{runtimeImage:O,containerPort:P,containerEnv:to,containerName:oo,pullImage:ro}=await jo();ge=P;let _=new R(O,oo);ro&&await _.downloadImage(),await _.runContainer({port:P,env:to,volume:[`${o}:/usr/src/app/apps`]}),A.push(()=>_.removeContainer()),c||(K=await d({start:"start tunnel",error:"tunnel failed",succeed:"tunnel success"},()=>Ut(P)),Uo("runtimeHost",K)),_.logs()}if(c){console.info(`\u4EE3\u7406\u5173\u95ED \u274C\uFF1A\u8BF7\u628A\u8BF7\u6C42\u6307\u5411localhost:${ge}`);return}if(await It({appKey:u,runtimeHost:K,resources:fe,resourcePort:i}),A.push(()=>Nt(u)),r&&((ye=(we=(he=l.getManifest())==null?void 0:he.modules)==null?void 0:we.webtrigger)!=null&&ye.length)){console.info("You can use this url for test:");let O=`${y}/apps/api/v1/:tenant/apps/${u}/environments/development/webtriggers/:webtriggerKey`;console.info(`POST ${O}`)}};var Jt=async e=>{let{copy:t=[],input:o="functions",output:r="cache",server:n=!0,resourcePort:i,ui:p,webpack:a,proxy:c,watch:m=[]}=e;await Qt({outputDir:q.default.resolve(r),inputDir:q.default.resolve(o),filesToCopy:[...L,...t],server:n,resourcePort:Number(i)||8e3,ui:!!p,webpackConfig:a,noProxy:!c,watchFilePaths:m.map(l=>q.default.resolve(l))})};var Fo=async({webpackConfig:e})=>{let t=await b(),{key:o}=t.app;if(!o){w.error("manifest app key is required");return}V({appKey:o,webpackConfig:e})},Yt=Fo;var Xt=async e=>{let{webpack:t}=e;await Yt({webpackConfig:t})};var Go=`v${k}`;console.info(`GiteeTeam Apps Cli ${ue.default.bold.green(Go)}`);console.info(`Node.js ${ue.default.bold.green(process.version)}
|
|
7
|
+
`);var x=new Zt.Command;x.version(k,"-v -V --vers").description("Giteeteam Apps Cli");x.command("build").option("--prod","build in production").option("--dev","build in development").option("--no-zip","no archive").option("-c --copy [letters...]","copy files").option("-i --input [dir]","input dir").option("-o --output [dir]","output dir").option("--ui","build ui").option("-w --webpack [file]","build ui webpack config file").action(ot);x.command("init").action(Tt);x.command("login").option("--domain [domain]","login domain").option("-u --username [username]","login username").option("-p --password [password]","login user password").action(Lt);x.command("tunnel").option("-c --copy [letters...]","copy files").option("-i --input [dir]","input dir").option("-o --output [dir]","output dir,default cache").option("--no-server","no server").option("--resourcePort [number]","resource port").option("--ui","build ui").option("-w --webpack [file]","build ui webpack config file").option("--no-proxy","no proxy").option("-w --watch [paths...]","watch files change").action(Jt);x.command("deploy [filename]").option("-e --environment [environment]","app environment").action(ht);x.command("ui-dev").option("-w --webpack [file]","build ui webpack config file").action(Xt);x.parse(process.argv);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@giteeteam/apps-cli",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.18",
|
|
4
4
|
"description": "Giteeteam Apps cli",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -20,8 +20,6 @@
|
|
|
20
20
|
"lint": "npx eslint .",
|
|
21
21
|
"type-check": "tsc --pretty --noEmit",
|
|
22
22
|
"precommit": "pnpm i && lint-staged && pnpm type-check",
|
|
23
|
-
"prepublishOnly": "pnpm build",
|
|
24
|
-
"prepublish": "pnpm build",
|
|
25
23
|
"publish:alpha": "npm publish --tag alpha",
|
|
26
24
|
"prepack": "pnpm build",
|
|
27
25
|
"unlink": "yarn unlink",
|
|
@@ -40,12 +38,14 @@
|
|
|
40
38
|
"registry": "https://registry.npmjs.org/"
|
|
41
39
|
},
|
|
42
40
|
"dependencies": {
|
|
41
|
+
"@ant-design/compatible": "^5.1.2",
|
|
43
42
|
"@giteeteam/apps-manifest": "0.8.7",
|
|
43
|
+
"@giteeteam/apps-team-theme": "^0.2.0",
|
|
44
44
|
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.10",
|
|
45
45
|
"@rollup/plugin-commonjs": "^22.0.0",
|
|
46
46
|
"archiver": "^5.3.1",
|
|
47
47
|
"autoprefixer": "^10.4.20",
|
|
48
|
-
"axios": "^1.
|
|
48
|
+
"axios": "^1.13.6",
|
|
49
49
|
"chalk": "^4.1.2",
|
|
50
50
|
"chokidar": "^3.5.3",
|
|
51
51
|
"clean-webpack-plugin": "^4.0.0",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"dotenv": "^16.3.1",
|
|
57
57
|
"esbuild": "^0.18.11",
|
|
58
58
|
"execa": "5.1.1",
|
|
59
|
-
"express": "4.
|
|
59
|
+
"express": "4.21.2",
|
|
60
60
|
"form-data": "^4.0.0",
|
|
61
61
|
"fs-extra": "^11.2.0",
|
|
62
62
|
"hasha": "^5.2.2",
|
|
@@ -69,22 +69,22 @@
|
|
|
69
69
|
"rollup": "^3.29.4",
|
|
70
70
|
"simple-git": "^3.19.1",
|
|
71
71
|
"webpack": "^5.88.1",
|
|
72
|
-
"webpack-bundle-analyzer": "^
|
|
72
|
+
"webpack-bundle-analyzer": "^5.2.0",
|
|
73
73
|
"webpack-dev-middleware": "^6.1.1",
|
|
74
74
|
"webpack-merge": "^6.0.1"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
77
|
"@types/archiver": "^5.3.1",
|
|
78
78
|
"@types/cors": "^2.8.17",
|
|
79
|
-
"@types/debug": "^4.1.
|
|
79
|
+
"@types/debug": "^4.1.12",
|
|
80
80
|
"@types/express": "^4.17.17",
|
|
81
81
|
"@types/fs-extra": "^11.0.4",
|
|
82
82
|
"@types/inquirer": "^8.2.9",
|
|
83
83
|
"@types/localtunnel": "2.0.1",
|
|
84
84
|
"@types/lowdb": "1.0.11",
|
|
85
|
-
"@types/node": "^
|
|
85
|
+
"@types/node": "^20",
|
|
86
86
|
"esbuild-node-tsc": "^2.0.5",
|
|
87
|
-
"typescript": "^5.
|
|
87
|
+
"typescript": "^5.9.3"
|
|
88
88
|
},
|
|
89
89
|
"peerDependencies": {
|
|
90
90
|
"@ant-design/compatible": "^5.1.1",
|
package/dist/index.js.LEGAL.txt
DELETED
|
File without changes
|