@winner-fed/winner-deploy
Version:
Generate a publication deployed by the See platform
8 lines (7 loc) • 13.5 kB
JavaScript
/** build time: Thu Jul 24 2025 16:55:53 GMT+0800 (中国标准时间), build version 4.3.5 **/
var $e=Object.create;var M=Object.defineProperty;var he=Object.getOwnPropertyDescriptor;var xe=Object.getOwnPropertyNames,Y=Object.getOwnPropertySymbols,Oe=Object.getPrototypeOf,te=Object.prototype.hasOwnProperty,be=Object.prototype.propertyIsEnumerable;var ee=(o,e,n)=>e in o?M(o,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[e]=n,L=(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))be.call(e,n)&&ee(o,n,e[n]);return o};var Te=(o,e)=>{for(var n in e)M(o,n,{get:e[n],enumerable:!0})},ne=(o,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let l of xe(e))!te.call(o,l)&&l!==n&&M(o,l,{get:()=>e[l],enumerable:!(i=he(e,l))||i.enumerable});return o};var h=(o,e,n)=>(n=o!=null?$e(Oe(o)):{},ne(e||!o||!o.__esModule?M(n,"default",{value:o,enumerable:!0}):n,o)),ke=o=>ne(M({},"__esModule",{value:!0}),o);var je={};Te(je,{generateSeePackageZip:()=>Fe});module.exports=ke(je);var de=h(require("chalk"),1),ge=h(require("path"),1),_=h(require("fs-extra"),1);var O=h(require("fs-extra"),1),B=require("rimraf");var U=h(require("path"),1),R=h(require("fs-extra"),1),re=h(require("archiver"),1),Z=h(require("xml"),1);var q=process.cwd(),Q=function(e){let n={""":'"',"'":"'","<":"<",">":">"},i=/(")|(')|(<)|(>)/g;return e&&e.replace?e.replace(i,function(l){return n[l]}):e},v=function(e,n){let i=n||"",l=U.default.resolve(q,e,i,"sysconfig.js");return R.default.pathExistsSync(l)},V=function(e){let n=U.default.resolve(q,e,"config.local.js");return R.default.pathExistsSync(n)},N=function(e,n,i,l){let r=U.default.join(q,n);n!=="/"&&R.default.ensureDirSync(r);let t=R.default.createWriteStream(`${n==="/"?".":r}/${e}.zip`);t.on("close",function(){setTimeout(function(){l&&l()})});let s=(0,re.default)("zip",{zlib:{level:9}});s.on("error",function(c){console.error(),console.error(c.stack||c),c.details&&console.error(c.details)}),s.pipe(t),s.directory(i,!1),s.finalize()},J=function(e,n,i){let{type:l,label:r,name:t,tooltip:s="",visible:c="true",required:a="false",fixed:g="false",fold:p="false",options:f="",validate:m="",upgrade:u="false"}=e,P=e.default;if(i==="form"){let b=(0,Z.default)({form:[{_attr:{name:t,tooltip:s,visible:c,required:a,fixed:g,fold:p,options:f,validate:m,upgrade:u}},n]});return Q(b)}let $=l==="complexSelect"?{default:e.default}:{},y=(0,Z.default)({field:[{_attr:L({type:l,label:r,name:t,tooltip:s,visible:c,required:a,fixed:g,fold:p,options:f,validate:m,upgrade:u},$)},n||P]});return Q(y)},oe=function(e){let i=e.children.map(l=>{let t=l.children.map(s=>J(s)).join("");return J(l,t,"form")}).join("");return J(e,i)},C=function o(e,n,i="",l=""){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=`${l===""?"":l+"-"}${t.type}`),n(t))return t;if(t.children&&t.children.length>0){let s=o(t.children,n,t.fullName,t.fullPath);if(s)return s}}return null};function ie(o="python"){return o==="python"?"py":"sh"}var w=h(require("fs-extra"),1),le=h(require("path"),1),I=h(require("lodash.template"),1),se=h(require("xml"),1),ce=h(require("@babel/core"),1);var Ae=["input","editor","select","switch","smallfile","table","mselect","switchForm","complexSelect","division","password","hidden"],E=o=>le.default.resolve(__dirname,`../templates/see/${o}`),z=o=>{let e=o.type;if(!Ae.includes(e))return"";let{label:n,name:i,tooltip:l="",visible:r="true",required:t="false",fixed:s="false",fold:c="false",options:a="",validate:g="",upgrade:p="false",expose:f="",algorithm:m="",merge:u="",isomeris:P="",old_name:$=""}=o,y=o.default;if(e==="table"){let d=o.keys||[];y=(o.columns||d).map(K=>z(K)).join(`
`)}else if(e==="switchForm"||e==="division"){let d=o.children;y=d?d.map(x=>z(x)).join(`
`):""}else{if(e==="complexSelect")return oe(o);e==="editor"?y=typeof y=="object"?[JSON.stringify(y)]:[y]:y=[y]}let b=e==="switchForm"?{default:o.default}:{},F=L({type:e,label:n,name:i,tooltip:l,visible:r,required:t,fixed:s,fold:c,options:a,validate:g,upgrade:p,expose:f,algorithm:m,merge:u,isomeris:P,old_name:$},b),D=Object.fromEntries(Object.entries(F).filter(([d,x])=>x!==""&&x!==null&&x!==void 0)),T=(0,se.default)({field:[{_attr:D},...Array.isArray(y)?y:[y]]});return Q(T)},ae=function({system:e,type:n,name:i,appType:l,appName:r,group:t,version:s,configFileName:c="config.local",variables:a=[],description:g,scriptsType:p="python"}){let f=w.default.readFileSync(E(`${p}/deploy.xml`)).toString();return(0,I.default)(f,{interpolate:/{{([\s\S]+?)}}/g})({system:e,type:n,name:i,appName:r,appType:l,group:t,version:s,configFileName:c,variables:a.map(m=>z(m)).join(`
`),description:g})},X=function(e,n){let i=w.default.readFileSync(E(`${n.scriptsType}/scripts/${e}.${n.scriptsType==="python"?"py":"sh"}`)).toString();return(0,I.default)(i,{interpolate:/{{([\s\S]+?)}}/g})(n)},j=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,s=t.name;t.type==="StringLiteral"&&(t.type="Identifier",t.name=t.value,s=t.value);let c=C(n,a=>s===a.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=C(n,s=>r.parentPath.get("key").node.name===s.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 s="",c=t.keys||[],a=t.columns||c;if(t.options){s=`[NO_QUOTATION_MARKS][#foreach($row in $${t.name}) '$row' , #end][NO_QUOTATION_MARKS]`,r.node.type="StringLiteral",r.node.value=s;return}a&&a.length&&a.forEach(p=>{s+=`${p.name}: '$!{row.${p.name}}',`}),r.node.type="StringLiteral",r.node.value=`[NO_QUOTATION_MARKS][#foreach($row in $${t.name}) {${s}}, #end][NO_QUOTATION_MARKS]`}}},ObjectExpression(r){if(r.parentPath.isProperty()){let t=r.parentPath.get("key").node,s=t.name;if(t){let c=C(n,a=>s===a.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:l,appType:r,version:t,group:s,configFileName:c="config.local",variables:a=[],description:g,web_app_web_service_name:p,dockerImage:f}){let m=w.default.readFileSync(E("docker/deploy.xml")).toString();return(0,I.default)(m,{interpolate:/{{([\s\S]+?)}}/g})({system:e,type:n,name:i,appName:l,appType:r,version:t,group:s,configFileName:c,variables:a.map(u=>z(u)).join(`
`),description:g,web_app_web_service_name:p,dockerImage:f})},fe=function(e){let n=w.default.readFileSync(E("docker/k8s-deploy-res.yaml")).toString();return(0,I.default)(n,{interpolate:/{{([\s\S]+?)}}/g})(e)},me=function(e){let n=w.default.readFileSync(E("docker/Dockerfile")).toString();return(0,I.default)(n)(e)};var S="tmp",ue=function(e,n,i){let{system:l,type:r,name:t,appType:s,appName:c,group:a,version:g,template:p,variables:f=[],configName:m,outputName:u="dist",description:P,scriptsType:$,seePackagePath:y,tplPath:b}=n;O.default.ensureDirSync(S),O.default.ensureDirSync(`${S}/scripts`),O.default.ensureDirSync(`${S}/template`);let F=ie($);$==="python"&&O.default.outputFileSync(`./${S}/scripts/${t}/utils.${F}`,X("utils",{scriptsType:$})),O.default.outputFileSync(`./${S}/scripts/${t}/install.${F}`,X("install",{name:t,type:r,scriptsType:$})),O.default.outputFileSync(`./${S}/scripts/${t}/afterInstall.${F}`,X("afterInstall",{name:t,scriptsType:$})),O.default.outputFileSync(`./${S}/scripts/${t}/uninstall.${F}`,X("uninstall",{name:t,type:r,scriptsType:$}));let D=!1,T=!1;if(b&&Object.keys(b).length>0)for(let[d,x]of Object.entries(b))d==="deploy.xml"?(O.default.copyFileSync(x,`./${S}/deploy.xml`),D=!0):O.default.copyFileSync(x,`./${S}/template/${d}`),(d==="sysconfig.js"||d==="config.local.js")&&(T=!0);D||O.default.outputFileSync(`./${S}/deploy.xml`,ae({system:l,type:r,name:t,appType:s,appName:c,group:a,version:g,configFileName:m,variables:f,description:P,scriptsType:$})),T||(V(u)?O.default.outputFileSync(`./${S}/template/config.local.js`,p?j(p,f):""):v(u)||v(u,t)?(m="sysconfig",O.default.outputFileSync(`./${S}/template/sysconfig.js`,p?j(p,f):"")):m&&O.default.outputFileSync(`./${S}/template/${m}.js`,p?j(p,f):"")),i?i(d=>{N(e,y,S,()=>{B.rimraf.sync(S),typeof d=="function"&&d()})}):N(e,y,S,()=>{B.rimraf.sync(S)})};var W=h(require("path"),1),A=h(require("fs-extra"),1),G=require("rimraf");var k="tmp",ye=function(e,n,i){let{system:l,type:r,name:t,appType:s,appName:c,version:a,group:g,template:p,variables:f,configName:m,outputName:u,description:P,seePackagePath:$,dockerImage:y=a.indexOf("-")>0?`isee1.0-docker-dev-local/${t}`:`isee1.0-docker-release-local/${t}`}=n;A.default.ensureDirSync(k),A.default.ensureDirSync("docker"),A.default.pathExistsSync(W.default.resolve(process.cwd(),"docker/Dockerfile"))||A.default.outputFileSync(W.default.resolve(process.cwd(),"docker/Dockerfile"),me({name:t,type:r})),A.default.ensureDirSync(`${k}/scripts`),A.default.ensureDirSync(`${k}/template`),V(u)?A.default.outputFileSync(`./${k}/template/${t}/config.local.js`,p?j(p,f):""):v(u)||v(u,t)?(m="sysconfig",A.default.outputFileSync(`./${k}/template/${t}/sysconfig.js`,p?j(p,f):"")):m&&A.default.outputFileSync(`./${k}/template/${t}/${m}.js`,p?j(p,f):""),A.default.outputFileSync(`./${k}/template/k8s-deploy-res.yaml`,fe({configFileName:m})),A.default.outputFileSync(`./${k}/deploy.xml`,pe({system:l,type:r,name:t,appName:c,appType:s,version:a,group:g,configFileName:m,variables:f,description:P,web_app_web_service_name:`${t}-web`,dockerImage:y})),i?i(b=>{N(e,$,k,()=>{G.rimraf.sync(k),typeof b=="function"&&b()})}):N(e,$,k,()=>{G.rimraf.sync(k)})};var _e=process.cwd();function Pe(o,e,n){let i="",l;if(o==="bizframe"){i=_.default.readdirSync(`./${n}`).find(r=>/manifest\.[0-9]+\.json/.test(r));try{l=_.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=_.default.readdirSync(`./${n}/${e}`).find(r=>/manifest\.[0-9]+\.json/.test(r)),l=_.default.readJsonSync(`./${n}/${e}/${i}`)),{manifest:i,manifestJson:l}}var Fe=function({system:e="winner-front",type:n="bizframe",name:i,appType:l,appName:r,group:t="bizframe",version:s,configName:c="config.local",outputName:a="dist",templateFunc:g,variablesFunc:p,copyFiles:f,description:m,seePackageName:u,seePackagePath:P="package",seePackageType:$="web",dockerImage:y,scriptsType:b="python",tplPath:F={}},D){if(!i||!s)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,"-")),l=l||i,r=r||i,p=p||function(){try{let{variables:T}=require(ge.default.resolve(_e,"build","package","./variables.js"));return T||[]}catch(T){return console.error(T),[]}},g=g||function(){return n==="bizframe"?`./${a}/config.local.js`:`./${a}/${i}/sysconfig.js`},$==="docker"){ye(u||`${e}-${i}-${s}`,{system:e,type:n,name:i,appType:l,appName:r,group:t,version:s,configName:c,outputName:a,template:g(),variables:p(),seePackagePath:P,description:m,dockerImage:y},T=>{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"),T(D)});return}ue(u||`${e}-${i}-${s}`,{system:e,type:n,name:i,group:t,appType:l,appName:r,version:s,configName:c,outputName:a,template:g(),variables:p(),seePackagePath:P,description:m,scriptsType:b,tplPath:F},T=>{if(b==="python"){let{manifest:d,manifestJson:x}=Pe(n,i,a);for(let K in x)if(x.hasOwnProperty(K)){let{path:H,dir:Se}=x[K];_.default.ensureDirSync(`./tmp/source/${Se}`),_.default.copyFileSync(`./${a}/${H}`,`./tmp/source/${H}`)}_.default.outputJSONSync(`./tmp/scripts/${i}/conf/${d}`,x)}else _.default.ensureDirSync("./tmp/source"),_.default.copySync(`./${a}`,"./tmp/source");Array.isArray(f)&&f.length&&f.forEach(d=>{_.default.ensureFileSync(`./tmp/source/${i}/${d}`),_.default.copyFileSync(`./${a}/${i}/${d}`,`./tmp/source/${i}/${d}`)}),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${de.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
`),T(D)})};0&&(module.exports={generateSeePackageZip});