@winner-fed/winner-deploy
Version:
Generate a publication deployed by the See platform
8 lines (7 loc) • 13.2 kB
JavaScript
/** build time: Tue Apr 15 2025 15:38:30 GMT+0800 (China Standard Time), build version 4.3.1 **/
var $e=Object.create;var R=Object.defineProperty;var he=Object.getOwnPropertyDescriptor;var xe=Object.getOwnPropertyNames,Y=Object.getOwnPropertySymbols,be=Object.getPrototypeOf,te=Object.prototype.hasOwnProperty,Oe=Object.prototype.propertyIsEnumerable;var ee=(o,e,n)=>e in o?R(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n,K=(o,e)=>{for(var n in e||(e={}))te.call(e,n)&&ee(o,n,e[n]);if(Y)for(var n of Y(e))Oe.call(e,n)&&ee(o,n,e[n]);return o};var ke=(o,e)=>{for(var n in e)R(o,n,{get:e[n],enumerable:!0})},ne=(o,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of xe(e))!te.call(o,s)&&s!==n&&R(o,s,{get:()=>e[s],enumerable:!(i=he(e,s))||i.enumerable});return o};var S=(o,e,n)=>(n=o!=null?$e(be(o)):{},ne(e||!o||!o.__esModule?R(n,"default",{value:o,enumerable:!0}):n,o)),Te=o=>ne(R({},"__esModule",{value:!0}),o);var Fe={};ke(Fe,{generateSeePackageZip:()=>Ae});module.exports=Te(Fe);var ge=S(require("chalk"),1),de=S(require("path"),1),O=S(require("fs-extra"),1);var $=S(require("fs-extra"),1),Z=require("rimraf");var Q=S(require("path"),1),M=S(require("fs-extra"),1),re=S(require("archiver"),1),J=S(require("xml"),1);var q=process.cwd(),L=function(e){let n={""":'"',"'":"'","<":"<",">":">"},i=/(")|(')|(<)|(>)/g;return e&&e.replace?e.replace(i,function(s){return n[s]}):e},j=function(e,n){let i=n||"",s=Q.default.resolve(q,e,i,"sysconfig.js");return M.default.pathExistsSync(s)},U=function(e){let n=Q.default.resolve(q,e,"config.local.js");return M.default.pathExistsSync(n)},D=function(e,n,i,s){let r=Q.default.join(q,n);n!=="/"&&M.default.ensureDirSync(r);let t=M.default.createWriteStream(`${n==="/"?".":r}/${e}.zip`);t.on("close",function(){setTimeout(function(){s&&s()})});let l=(0,re.default)("zip",{zlib:{level:9}});l.on("error",function(c){console.error(),console.error(c.stack||c),c.details&&console.error(c.details)}),l.pipe(t),l.directory(i,!1),l.finalize()},C=function(e,n,i){let{type:s,label:r,name:t,tooltip:l="",visible:c="true",required:p="false",fixed:y="false",fold:f="false",options:a="",validate:m="",upgrade:u="false"}=e,k=e.default;if(i==="form"){let T=(0,J.default)({form:[{_attr:{name:t,tooltip:l,visible:c,required:p,fixed:y,fold:f,options:a,validate:m,upgrade:u}},n]});return L(T)}let g=s==="complexSelect"?{default:e.default}:{},P=(0,J.default)({field:[{_attr:K({type:s,label:r,name:t,tooltip:l,visible:c,required:p,fixed:y,fold:f,options:a,validate:m,upgrade:u},g)},n||k]});return L(P)},oe=function(e){let i=e.children.map(s=>{let t=s.children.map(l=>C(l)).join("");return C(s,t,"form")}).join("");return C(e,i)},V=function o(e,n,i="",s=""){for(let r=0;r<e.length;r++){let t=e[r];if(t.type==="complexSelect"?(t.fullName=`${t.name}`,t.fullPath=`${t.type}`):(t.fullName=`${i===""?"":i+"."}${t.name}`,t.fullPath=`${s===""?"":s+"-"}${t.type}`),n(t))return t;if(t.children&&t.children.length>0){let l=o(t.children,n,t.fullName,t.fullPath);if(l)return l}}return null};function ie(o="python"){return o==="python"?"py":"sh"}var N=S(require("fs-extra"),1),se=S(require("path"),1),w=S(require("lodash.template"),1),le=S(require("xml"),1),ce=S(require("@babel/core"),1);var Pe=["input","editor","select","switch","smallfile","table","mselect","switchForm","complexSelect","division"],E=o=>se.default.resolve(__dirname,`../templates/see/${o}`),z=o=>{let e=o.type;if(!Pe.includes(e))return"";let{label:n,name:i,tooltip:s="",visible:r="true",required:t="false",fixed:l="false",fold:c="false",options:p="",validate:y="",upgrade:f="false"}=o,a=o.default;if(e==="table"){let k=o.keys||[];a=(o.columns||k).map(P=>z(P)).join(`
`)}else if(e==="switchForm"||e==="division")a=o.children.map(g=>z(g)).join(`
`);else{if(e==="complexSelect")return oe(o);e==="editor"?a=typeof a=="object"?[JSON.stringify(a)]:[a]:a=[a]}let m=e==="switchForm"?{default:o.default}:{},u=(0,le.default)({field:[{_attr:K({type:e,label:n,name:i,tooltip:s,visible:r,required:t,fixed:l,fold:c,options:p,validate:y,upgrade:f},m)},...Array.isArray(a)?a:[a]]});return L(u)},ae=function({system:e,type:n,name:i,appType:s,appName:r,group:t,version:l,configFileName:c="config.local",variables:p=[],description:y,scriptsType:f="python"}){let a=N.default.readFileSync(E(`${f}/deploy.xml`)).toString();return(0,w.default)(a,{interpolate:/{{([\s\S]+?)}}/g})({system:e,type:n,name:i,appName:r,appType:s,group:t,version:l,configFileName:c,variables:(()=>p.map(m=>z(m)).join(`
`))(),description:y})},X=function(e,n){let i=N.default.readFileSync(E(`${n.scriptsType}/scripts/${e}.${n.scriptsType==="python"?"py":"sh"}`)).toString();return(0,w.default)(i,{interpolate:/{{([\s\S]+?)}}/g})(n)},_=function(e,n=[]){let{code:i}=ce.default.transformFileSync(e,{babelrc:!1,plugins:[function(){return{visitor:{Literal(r){if(r.parentPath.isProperty()){let t=r.parentPath.get("key").node,l=t.name;t.type==="StringLiteral"&&(t.type="Identifier",t.name=t.value,l=t.value);let c=V(n,p=>l===p.name);if(c){if(c.fullPath.includes("complexSelect")&&(c.name=c.fullName),r.isStringLiteral()){r.node.value=`$!{${c.name}}`;return}if(r.isNumericLiteral()){r.node.value=`$!{${c.name}}`;return}if(r.isBooleanLiteral()){if(r.node.type="StringLiteral",c.fullPath.includes("complexSelect")){r.node.value=`$!{${c.fullName}}`;return}r.node.value=`[NO_QUOTATION_MARKS]\${${c.name}}[NO_QUOTATION_MARKS]`}}}},ArrayExpression(r){if(r.parentPath.isProperty()){let t=V(n,l=>r.parentPath.get("key").node.name===l.name);if(t){if(t.fullPath.includes("editor")){r.node.type="StringLiteral",r.node.value=`[NO_QUOTATION_MARKS]\${${t.name}}[NO_QUOTATION_MARKS]`;return}t.fullPath.includes("complexSelect")&&(t.name=t.fullName);let l="",c=t.keys||[],p=t.columns||c;if(t.options){l=`[NO_QUOTATION_MARKS][#foreach($row in $${t.name}) '$row' , #end][NO_QUOTATION_MARKS]`,r.node.type="StringLiteral",r.node.value=l;return}p&&p.length&&p.forEach(f=>{l+=`${f.name}: '$!{row.${f.name}}',`}),r.node.type="StringLiteral",r.node.value=`[NO_QUOTATION_MARKS][#foreach($row in $${t.name}) {${l}}, #end][NO_QUOTATION_MARKS]`}}},ObjectExpression(r){if(r.parentPath.isProperty()){let t=r.parentPath.get("key").node,l=t.name;if(t){let c=V(n,p=>l===p.name);if(c){if(r.node.type="StringLiteral",c.fullPath.includes("editor")){r.node.value=`[NO_QUOTATION_MARKS]\${${c.name}}[NO_QUOTATION_MARKS]`;return}r.node.value=`[NO_QUOTATION_MARKS]\${${c.name}}[NO_QUOTATION_MARKS]`;return}}}}}}}],retainLines:!0});return i.replace(/"\[NO_QUOTATION_MARKS](.*)\[NO_QUOTATION_MARKS]"/g,"$1")},pe=function({system:e,type:n,name:i,appName:s,appType:r,version:t,group:l,configFileName:c="config.local",variables:p=[],description:y,web_app_web_service_name:f,dockerImage:a}){let m=N.default.readFileSync(E("docker/deploy.xml")).toString();return(0,w.default)(m,{interpolate:/{{([\s\S]+?)}}/g})({system:e,type:n,name:i,appName:s,appType:r,version:t,group:l,configFileName:c,variables:(()=>p.map(u=>z(u)).join(`
`))(),description:y,web_app_web_service_name:f,dockerImage:a})},fe=function(e){let n=N.default.readFileSync(E("docker/k8s-deploy-res.yaml")).toString();return(0,w.default)(n,{interpolate:/{{([\s\S]+?)}}/g})(e)},me=function(e){let n=N.default.readFileSync(E("docker/Dockerfile")).toString();return(0,w.default)(n)(e)};var d="tmp",ue=function(e,n,i){let{system:s,type:r,name:t,appType:l,appName:c,group:p,version:y,template:f,variables:a=[],configName:m,outputName:u="dist",description:k,scriptsType:g,seePackagePath:P,tplPath:T}=n;$.default.ensureDirSync(d),$.default.ensureDirSync(`${d}/scripts`),$.default.ensureDirSync(`${d}/template`);let F=ie(g);g==="python"&&$.default.outputFileSync(`./${d}/scripts/${t}/utils.${F}`,X("utils",{scriptsType:g})),$.default.outputFileSync(`./${d}/scripts/${t}/install.${F}`,X("install",{name:t,type:r,scriptsType:g})),$.default.outputFileSync(`./${d}/scripts/${t}/afterInstall.${F}`,X("afterInstall",{name:t,scriptsType:g})),$.default.outputFileSync(`./${d}/scripts/${t}/uninstall.${F}`,X("uninstall",{name:t,type:r,scriptsType:g}));let I=!1,v=!1;if(T&&Object.keys(T).length>0)for(let[h,A]of Object.entries(T))h==="deploy.xml"?($.default.copyFileSync(A,`./${d}/deploy.xml`),I=!0):$.default.copyFileSync(A,`./${d}/template/${h}`),(h==="sysconfig.js"||h==="config.local.js")&&(v=!0);I||$.default.outputFileSync(`./${d}/deploy.xml`,ae({system:s,type:r,name:t,appType:l,appName:c,group:p,version:y,configFileName:m,variables:a,description:k,scriptsType:g})),v||(U(u)?$.default.outputFileSync(`./${d}/template/config.local.js`,f?_(f,a):""):j(u)||j(u,t)?(m="sysconfig",$.default.outputFileSync(`./${d}/template/sysconfig.js`,f?_(f,a):"")):m&&$.default.outputFileSync(`./${d}/template/${m}.js`,f?_(f,a):"")),i?i(h=>{D(e,P,d,()=>{Z.rimraf.sync(d),typeof h=="function"&&h()})}):D(e,P,d,()=>{Z.rimraf.sync(d)})};var B=S(require("path"),1),b=S(require("fs-extra"),1),W=require("rimraf");var x="tmp",ye=function(e,n,i){let{system:s,type:r,name:t,appType:l,appName:c,version:p,group:y,template:f,variables:a,configName:m,outputName:u,description:k,seePackagePath:g,dockerImage:P=p.indexOf("-")>0?`isee1.0-docker-dev-local/${t}`:`isee1.0-docker-release-local/${t}`}=n;b.default.ensureDirSync(x),b.default.ensureDirSync("docker"),b.default.pathExistsSync(B.default.resolve(process.cwd(),"docker/Dockerfile"))||b.default.outputFileSync(B.default.resolve(process.cwd(),"docker/Dockerfile"),me({name:t,type:r})),b.default.ensureDirSync(`${x}/scripts`),b.default.ensureDirSync(`${x}/template`),U(u)?b.default.outputFileSync(`./${x}/template/${t}/config.local.js`,f?_(f,a):""):j(u)||j(u,t)?(m="sysconfig",b.default.outputFileSync(`./${x}/template/${t}/sysconfig.js`,f?_(f,a):"")):m&&b.default.outputFileSync(`./${x}/template/${t}/${m}.js`,f?_(f,a):""),b.default.outputFileSync(`./${x}/template/k8s-deploy-res.yaml`,fe({configFileName:m})),b.default.outputFileSync(`./${x}/deploy.xml`,pe({system:s,type:r,name:t,appName:c,appType:l,version:p,group:y,configFileName:m,variables:a,description:k,web_app_web_service_name:`${t}-web`,dockerImage:P})),i?i(T=>{D(e,g,x,()=>{W.rimraf.sync(x),typeof T=="function"&&T()})}):D(e,g,x,()=>{W.rimraf.sync(x)})};var ve=process.cwd();function _e(o,e,n){let i="",s;if(o==="bizframe"){i=O.default.readdirSync(`./${n}`).find(r=>/manifest\.[0-9]+\.json/.test(r));try{s=O.default.readJsonSync(`./${n}/${i}`)}catch(r){console.error(`${n} \u76EE\u5F55\u4E0B\u7684 manifest.xxx.json \u89E3\u6790\u5931\u8D25\uFF01\u8BF7\u786E\u8BA4\u6B64\u6587\u4EF6\u662F\u5426\u5B58\u5728\u3002\u6216\u53EF\u4EE5\u5C06 scriptsType \u8BBE\u7F6E\u4E3A bash \u8BD5\u8BD5\u770B\u3002`),process.exit(0)}}return o==="subsystem"&&(i=O.default.readdirSync(`./${n}/${e}`).find(r=>/manifest\.[0-9]+\.json/.test(r)),s=O.default.readJsonSync(`./${n}/${e}/${i}`)),{manifest:i,manifestJson:s}}var Ae=function({system:e="winner-front",type:n="bizframe",name:i,appType:s,appName:r,group:t="bizframe",version:l,configName:c="config.local",outputName:p="dist",templateFunc:y,variablesFunc:f,copyFiles:a,description:m,seePackageName:u,seePackagePath:k="package",seePackageType:g="web",dockerImage:P,scriptsType:T="python",tplPath:F={}},I){if(!i||!l)throw new Error("\u5E94\u7528\u540D\u79F0\u548C\u5E94\u7528\u7248\u672C\u4E0D\u80FD\u7F3A\u5931~");if(i=i.replace(/@/gi,"").replace(/\//gi,"-"),typeof u=="string"&&u&&(u=u.replace(/@/gi,"").replace(/\//gi,"-")),s=s||i,r=r||i,f=f||function(){try{let{variables:v}=require(de.default.resolve(ve,"build","package","./variables.js"));return v||[]}catch(v){return console.error(v),[]}},y=y||function(){return n==="bizframe"?`./${p}/config.local.js`:`./${p}/${i}/sysconfig.js`},g==="docker"){ye(u||`${e}-${i}-${l}`,{system:e,type:n,name:i,appType:s,appName:r,group:t,version:l,configName:c,outputName:p,template:y(),variables:f(),seePackagePath:k,description:m,dockerImage:P},v=>{console.log(),console.log("docker \u5BB9\u5668\u5316\u90E8\u7F72\u7684 SEE \u53D1\u5E03\u7269\u5236\u4F5C\u5B8C\u6210\uFF0C\u60A8\u53EF\u4EE5\u5728 SEE \u5E73\u53F0\u4E0A\u4F20\u5E76\u90E8\u7F72\u5E94\u7528\u3002"),v(I)});return}ue(u||`${e}-${i}-${l}`,{system:e,type:n,name:i,group:t,appType:s,appName:r,version:l,configName:c,outputName:p,template:y(),variables:f(),seePackagePath:k,description:m,scriptsType:T,tplPath:F},v=>{if(T==="python"){let{manifest:h,manifestJson:A}=_e(n,i,p);for(let G in A)if(A.hasOwnProperty(G)){let{path:H,dir:Se}=A[G];O.default.ensureDirSync(`./tmp/source/${Se}`),O.default.copyFileSync(`./${p}/${H}`,`./tmp/source/${H}`)}O.default.outputJSONSync(`./tmp/scripts/${i}/conf/${h}`,A)}else O.default.ensureDirSync("./tmp/source"),O.default.copySync(`./${p}`,"./tmp/source");Array.isArray(a)&&a.length&&a.forEach(h=>{O.default.ensureFileSync(`./tmp/source/${i}/${h}`),O.default.copyFileSync(`./${p}/${i}/${h}`,`./tmp/source/${i}/${h}`)}),console.log(),console.log(`\u53D1\u5E03\u7269\u5236\u4F5C\u5B8C\u6210\uFF0C\u60A8\u53EF\u4EE5\u5728 SEE \u5E73\u53F0\u4E0A\u4F20\u5E76\u90E8\u7F72\u5E94\u7528\u3002\u6CE8\u610F\uFF1A${ge.default.yellow("\u5B50\u7CFB\u7EDF\u53D1\u5E03\u7269\u7684\u5B89\u88C5\u76EE\u5F55\u9700\u8981\u6307\u5B9A\u5230\u5177\u4F53\u7684\u5E94\u7528\u76EE\u5F55")}\u3002\u6BD4\u5982/home/hsiar/hsiar-green/html/\u3002
`),v(I)})};0&&(module.exports={generateSeePackageZip});