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