UNPKG

cirruswave-j2m

Version:
56 lines (55 loc) 26.9 kB
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(c,g,A){c!=Array.prototype&&c!=Object.prototype&&(c[g]=A.value)};$jscomp.getGlobal=function(c){return"undefined"!=typeof window&&window===c?c:"undefined"!=typeof global&&null!=global?global:c};$jscomp.global=$jscomp.getGlobal(this);$jscomp.SYMBOL_PREFIX="jscomp_symbol_"; $jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.Symbol=function(){var c=0;return function(g){return $jscomp.SYMBOL_PREFIX+(g||"")+c++}}(); $jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var c=$jscomp.global.Symbol.iterator;c||(c=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[c]&&$jscomp.defineProperty(Array.prototype,c,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(c){var g=0;return $jscomp.iteratorPrototype(function(){return g<c.length?{done:!1,value:c[g++]}:{done:!0}})}; $jscomp.iteratorPrototype=function(c){$jscomp.initSymbolIterator();c={next:c};c[$jscomp.global.Symbol.iterator]=function(){return this};return c};$jscomp.makeIterator=function(c){$jscomp.initSymbolIterator();$jscomp.initSymbol();$jscomp.initSymbolIterator();var g=c[Symbol.iterator];return g?g.call(c):$jscomp.arrayIterator(c)}; $jscomp.iteratorFromArray=function(c,g){$jscomp.initSymbolIterator();c instanceof String&&(c+="");var A=0,v={next:function(){if(A<c.length){var C=A++;return{value:g(C,c[C]),done:!1}}v.next=function(){return{done:!0,value:void 0}};return v.next()}};v[Symbol.iterator]=function(){return v};return v}; $jscomp.polyfill=function(c,g,A,v){if(g){A=$jscomp.global;c=c.split(".");for(v=0;v<c.length-1;v++){var C=c[v];C in A||(A[C]={});A=A[C]}c=c[c.length-1];v=A[c];g=g(v);g!=v&&null!=g&&$jscomp.defineProperty(A,c,{configurable:!0,writable:!0,value:g})}};$jscomp.polyfill("Array.prototype.keys",function(c){return c?c:function(){return $jscomp.iteratorFromArray(this,function(c){return c})}},"es6","es3"); $jscomp.polyfill("Array.prototype.values",function(c){return c?c:function(){return $jscomp.iteratorFromArray(this,function(c,A){return A})}},"es8","es3"); (function(){function c(c,g){C[c]||(v[c]={exports:{},loaded:!1},C[c]=!0,0===c&&"function"===typeof require?require.main=v[0]:v[c].parent=v[g],A[c].call(this,v[c],v[c].exports),v[c].loaded=!0);return v[c].exports}function g(c){return require("path").resolve(__dirname+"/"+c+"/../")}var A={},v={},C={};A[0]=function(c,v){function A(a){a=a.replace(/\./g,"_");return H[a]?H[a].javainstance:null}function C(a){a=a.replace(/\./g,"_");if(0<=a.search(/[\[][\]]( )*$/)){var b={java:a,javascript:"array"};a=a.replace(/[\[][\]]/, "").trim();H[a]?(b.itemtype=H[a].javascript,b.itemjavatype=H[a].java):(b.itemtype=null,b.itemjavatype=a);return b}return H[a]}function D(a){return Object.keys(a).length}function K(a,b,q,n,e){if(!b.length)return e;if(a&&a.ctors){var d={};K(null,a.ctors,0,d,e);Object.keys(d).length&&(n.__ctorParams=d)}1<b.length&&(n.__anyOf=[]);for(q in b){if(n.__anyOf)var c={};a=$jscomp.makeIterator(b[q].args);for(d=a.next();!d.done;d=a.next())if(d=d.value,!d.an_name&&!d.an_pname){var x=d.type;var h=C(x);if(!h)h={javascript:"object"}, h.java=x;else if("array"==h.javascript&&null==h.itemtype){x={};e=K(null,d.argsigns,d.pasigindex,x,e);h=n;d=d.an_name?d.an_name:d.name;x=[x,x];h.__anyOf?c[d]=x:h[d]=x;continue}"object"==h.javascript?(x={},e=K(null,d.argsigns,d.pasigindex,x,e),h=n,d=d.an_name?d.an_name:d.name,h.__anyOf?c[d]=x:h[d]=x):(h=L[h.javascript].default(e,h.itemtype),e++,x=n,d=d.an_name?d.an_name:d.name,x.__anyOf?c[d]=h:x[d]=h)}n.__anyOf&&n.__anyOf.push(c)}return e}function Y(a,b){var q={};q=I[a];var n=M.getWorksheet(a+"-API"), e=0,d=0,c="Route Method ParamName ParamType PayloadName PayloadType ParamExample PayloadExample RouteDescription ParamJavaType PayloadJavaType JavaClass JavaFunction JavaMethodInfo JavaParameterInfo JCInfoSize".split(" ");if(void 0==n){n=M.addWorksheet(a+"-API");n.addRow(c);a=n.getRow(1);var x=a.values}else a=n.getRow(1),x=a.values,e=x.length-c.length;c=[];var h=null,m=null,f=[],y=[],p=[],k=[],l=[],r={},t;for(t in q){var g=0;r.r=q[t];var z=[];if(h!=r.r.route||m!=r.r.method){h=r.r.route;m=r.r.method; f=[];y=[];var v=[];p=[];k=[];l=[];for(var w=t;w<q.length&&h==q[w].route&&m==q[w].method;w++)if(q[w].paramtype&&(f.push(q[w].paramtype),y.push(q[w].paramname),q[w].queryparam?v.push(!0):v.push(!1)),q[w].payloadtype){p.push(q[w].payloadtype);k.push(q[w].payloadname);var S="";"array"==q[w].payloadtype&&q[w].itemtype&&(S=q[w].itemtype);l.push(S)}}z.push(r.r.route);z.push(r.r.method);void 0!=r.r.paramname?z.push(r.r.paramname):z.push(null);void 0!=r.r.paramtype?z.push(r.r.paramtype):z.push(null);void 0!= r.r.payloadname?z.push(r.r.payloadname):z.push(null);void 0!=r.r.payloadtype?z.push(r.r.payloadtype):z.push(null);p=r.r.route;k="";l=0;for(var A in f)w=f[A],l=L[w].default(g),(v[A]?0:L[w].addtoroute)?p=p.replace(/\/:[a-z0-9A-Z.%\-_,;:()*?@'!]+/,"/"+l):(""!=k&&(k+="&"),k+=y[A]+"="+l),g++;""!=k&&(p+="?"+k);z.push(p);p="";"post"!=r.r.method&&"put"!=r.r.method||!r.r.javaparameterinfo.argsigns.length||(p={},g=K(r.r.javaclassinfo,r.r.javaparameterinfo.argsigns,r.r.javaparameterinfo.pasigindex,p,g),p=JSON.stringify(p)); z.push(p);z.push(r.r.method+" method for route "+r.r.route);void 0!=r.r.paramjavatype?z.push(r.r.paramjavatype):z.push(null);void 0!=r.r.payloadjavatype?z.push(r.r.payloadjavatype):z.push(null);void 0!=r.r.javaclass?z.push(r.r.javaclass):z.push(null);void 0!=r.r.javafunction?z.push("___"+r.r.javafunction):z.push(null);void 0!=r.r.javamethodinfo?z.push(r.r.javamethodinfo):z.push(null);void 0!=r.r.javaparameterinfo?z.push(r.r.javaparameterinfo):z.push(null);if(void 0!=r.r.javaclassinfo){g=JSON.stringify(r.r.javaclassinfo); z.push(g.length);g=E.SplitString(g,32E3);for(var u in g)z.push(g[u]);d<g.length&&(d=g.length)}else z.push(0),z.push(null);var B=!0;n.eachRow({includeEmpty:!1},function(a){return function(d,b){d.values[1]==a.r.route&&(B=!1)}}(r));B&&c.push(z);r={r:r.r}}if(d){for(u=e;u<d;u++)x.push("JavaClassInfo"+u);a.values=x}n.addRows(c);b()}function aa(a){for(var b in G)for(var q in G[b]){a=G[b][q];for(var n in a)for(var e in a[n]){var d=a[n][e],c={},x;for(x in d.methods){var h=d.methods[x];h.argsigns[0].returnType= h.returnType;h.an_route&&(h.argsigns[0].an_route=h.an_route);if("function"!=typeof c[h.name])if(c[h.name]){var m=c[h.name]-1;d.methods[m].argsigns=d.methods[m].argsigns.concat(h.argsigns);h.deletethis=!0}else c[h.name]=parseInt(x)+1}d.methods=d.methods.filter(function(a){return!a.deletethis})}}}function ba(a,b,q){aa(a);for(var c in a){var e=c,d;for(d in a[c]){var k=a[c][d],x;for(x in k)for(var h in k[x]){var m=k[x][h];if(!m.isAbstract){m.an_classroute&&(e=m.an_classroute[0].replace(/^\//,""));for(var f in m.methods){var y= m.methods[f];if(!y.isAbstract){var p="/"+e;0<b.length&&(p+="/"+b);var g="/"+m.classname+y.name;void 0==I[c]&&(I[c]=[]);var l={};l.javaclass=m.classname;l.javafunction=y.name;l.javaclassinfo=JSON.parse(JSON.stringify(m));delete l.javaclassinfo.methods;l.route=p;l.method=y.an_method?y.an_method:y.methodtype;l.javamethodinfo=JSON.parse(JSON.stringify(y));delete l.javamethodinfo.argsigns;if(0<y.argsigns.length)for(var r in y.argsigns){var t=y.argsigns[r],v=p+g,z=l.method.toLowerCase();if(t.an_route)v= p+t.an_route[0];else if("get"==z||"delete"==z)if(!y.pasigindex&&0<r||y.pasigindex&&y.pasigindex!=r)v+="ol"+r;for(var A=$jscomp.makeIterator(t.args),w=A.next();!w.done;w=A.next()){w=w.value;var u=C(w.type);void 0!=u&&(u=u.javascript,w.an_pname?v+="/:"+w.an_pname:w.an_name||("get"==z||"delete"==z)&&L[u].addtoroute&&(v+="/:"+w.name))}l.route=v;t=$jscomp.makeIterator(t.args);for(w=t.next();!w.done;w=t.next()){w=w.value;l.javaparameterinfo={pasigindex:r,argsigns:JSON.parse(JSON.stringify(y.argsigns))}; switch(z){case "get":case "delete":u=C(w.type);void 0!=u?(l.paramjavatype=u.java,l.paramtype=u.javascript):(l.paramjavatype=w.type,l.paramtype="object");w.an_pname?l.paramname=w.an_pname:w.an_name?(l.queryparam=!0,l.paramname=w.an_name):l.paramname=w.name;break;case "put":case "post":v=!1,w.an_pname?(l.paramname=w.an_pname,v=!0):w.an_name?(l.queryparam=!0,l.paramname=w.an_name,v=!0):l.payloadname=w.name,u=C(w.type),v?void 0!=u?(l.paramjavatype=u.java,l.paramtype=u.javascript):(l.paramjavatype=w.type, l.paramtype="object"):(l.payloadjavatype=void 0!=u?u.java:w.type,void 0!=u?(l.payloadtype=u.javascript,"array"==u.javascript&&u.itemtype&&(l.itemtype=u.itemtype)):l.payloadtype="object")}I[c].push(JSON.parse(JSON.stringify(l)))}}else I[c].push(JSON.parse(JSON.stringify(l)))}}}}}}q()}function T(a,b,c){O({input:a,output:null,sheet:b},function(a,b){if(!a){for(var d in b)F[b[d].Type]=b[d].Description;F.ProjectName=F.ProjectName.replace(/ /g,"");c()}})}function U(a,b,c){O({input:a,output:null,sheet:b}, function(a,b){if(!a){for(var d in b)0<D(b[d].Name.replace(/ /g,""))&&(B[b[d].Name.replace(/ /g,"")]={},B[b[d].Name.replace(/ /g,"")].description=b[d].Description,B[b[d].Name.replace(/ /g,"")].jarfile=b[d].JarFile,B[b[d].Name.replace(/ /g,"")].port=b[d].Port,B[b[d].Name.replace(/ /g,"")].classpath=b[d].classpath);c()}})}function ca(a,b){var c=require("java");c.asyncOptions={asyncSuffix:"Async",syncSuffix:"",promiseSuffix:"Promise",promisify:require("util").promisify};c.options.push("-Djava.awt.headless=true"); c.options.push("-Xmx1024m");c.classpath.push(k.resolve(g("java2microservices.js"),"java/classes/cirruswave-l2m-1.0.0.jar"));for(var n in a)if(c.classpath.push(k.resolve(process.cwd(),a[n].jarfile)),a[n].classpath){var e=a[n].classpath.split(":");e=$jscomp.makeIterator(e);for(var d=e.next();!d.done;d=e.next())d=d.value,c.classpath.push(k.resolve(process.cwd(),d))}for(n in a)e=c.import("com.cirruswave.l2m.CirrusWaveDiscover"),e=JSON.parse(e.reflectJarFile(a[n].jarfile)),d={},void 0==G[n]&&(G[n]=[]), d[a[n].jarfile]=e,G[n].push(d);b()}function da(a,b){var c=["ProjectInfo","JavaServiceList"];T(a,c[0],function(){U(a,c[1],function(){ca(B,function(){ba(G,F.Version,function(){M.xlsx.readFile(a).then(function(){for(var a in B)Y(a,function(){})}).then(function(){M.xlsx.writeFile(a).then(function(){console.log("finished writing to file");b()})})})})})})}function ea(a,b,c){var q=b+"-API";O({input:a,output:null,sheet:q},function(e,d){if(e)console.log("error in excel err="+JSON.stringify(e,0,2));else{var n= [],x;for(x in d){e=d[x];for(var h in e)""==e[h]&&delete e[h];n.push(e)}d=!1;for(var m in n)(h=n[m])&&Object.keys(h).length&&(d=!0);d||(console.log("\nError -- "+q+" not found in "+a+" may be you don't have any service APIs or forgot to run step 2 createapilist\n"),process.exit(1));P[b]=JSON.parse(JSON.stringify(n));m=[];m=N.chain(n).groupBy("Route","Method").toPairs().map(function(a){return N.zipObject(["Route","Methods"],a)}).value();for(var f in m)for(var y in m[f].Methods)delete m[f].Methods[y].Route; n=[];n=m;for(x in n){var p=[];p=N.chain(m[x].Methods).groupBy("Method").toPairs().map(function(a){return N.zipObject(["Method","Parameters"],a)}).value();n[x].Methods=p;for(var k in p){f={Body:{},JavaBody:{},Params:{},JavaParams:{},ParamDescriptions:{},BodyDescriptions:{},paramexamples:{},bodyexamples:{},RouteDescriptions:""};for(var l in p[k].Parameters){d=p[k].Parameters[l];h=d.ParamName;e=d.PayloadName;var r=d.ParamExample;y=d.PayloadExample;for(var g=parseInt(d.JCInfoSize)/32E3,t="",u=0;u<g;u++)t+= d["JavaClassInfo"+u];p[k].JavaClassInfo=JSON.parse(t);p[k].JavaMethodInfo=JSON.parse(d.JavaMethodInfo);g=d.RouteDescription;d.JavaParameterInfo&&(f.JavaParameterInfo=JSON.parse(d.JavaParameterInfo));delete p[k].Parameters[l].Method;void 0!=h&&(f.Params[h]=d.ParamType,f.JavaParams[h]=d.ParamJavaType,d.ParamDescriptions&&(f.ParamDescriptions[h]=d.ParamDescriptions));void 0!=e&&(f.Body[e]=p[k].Parameters[l].PayloadType,f.JavaBody[e]=p[k].Parameters[l].PayloadJavaType,d.BodyDescriptions&&(f.BodyDescriptions[e]= d.BodyDescriptions));void 0!=r&&(f.paramexamples[l]=r);if(void 0!=y){d={};try{d=JSON.parse(y)}catch(oa){console.log("Warning: Ignoring payload example. Invalid json -- "+y)}f.bodyexamples[l]=d}void 0!=g&&(f.RouteDescription=g)}1>D(f.Body)&&delete f.Body;1>D(f.JavaBody)&&delete f.JavaBody;1>D(f.Params)&&delete f.Params;1>D(f.JavaParams)&&delete f.JavaParams;1>D(f.paramexamples)&&delete f.paramexamples;1>D(f.bodyexamples)&&delete f.bodyexamples;""==!f.RouteDescription&&(f.RouteDescription=g);p[k].Parameters= f;1>D(p[k].Parameters)&&delete p[k].Parameters}}n[x].Methods=p}V[b]=n;c()})}function fa(a){a={notice:{},about:{name:a,faviconurl:"/images/"+a+".png",imageurl:"/images/"+a+".png",url:"/documentation",description:"Project Description goes here",projectname:a},services:{}};a.notice=E.CopyRightNotice(!1);t.writeFileSync(k.resolve(u,"appserviceconfig.json"),JSON.stringify(a,null,2))}function ha(a,b,c){b=k.resolve(u,"package.json");if(t.existsSync(b)){b=require(b);if(b.dependencies){if(b.dependencies.cirruswave)return}else b.dependencies= {};b.dependencies.cirruswave="^1.0.69";b.dependencies.java="^0.12.0"}else b={},b.name=a,b.version="1.0.0",b.description=c,b.main="index.js",b.author="",b.license="ISC",a={cirruswave:"^1.0.69",java:"^0.12.0"},b.dependencies=a;t.writeFileSync(k.resolve(u,"package.json"),JSON.stringify(b,null,2))}function ia(){var a=k.resolve(process.cwd(),F.ProjectName);t.existsSync(a)||t.mkdirSync(a,484);u=a;var b=k.resolve(a,"images"),c=k.resolve(a,"certs");a=k.resolve(a,"classes");t.existsSync(b)||t.mkdirSync(b, 484);t.existsSync(c)||t.mkdirSync(c,484);t.existsSync(a)||t.mkdirSync(a,484);b=k.resolve(u,"cr.json");t.existsSync(b)||t.copyFileSync(k.resolve(g("java2microservices.js"),"examples/cr.json"),b);b=k.resolve(u,"sys_keymgr_index.js");t.existsSync(b)||t.copyFileSync(k.resolve(g("java2microservices.js"),"examples/keymgr_index.js"),b);b=k.resolve(u,"keymgrinitoptions.json");t.existsSync(b)||t.copyFileSync(k.resolve(g("java2microservices.js"),"examples/keymgrinitoptions.json"),b);b=k.resolve(u,"sys_connector_index.js"); t.existsSync(b)||t.copyFileSync(k.resolve(g("java2microservices.js"),"examples/connector_index.js"),b);b=k.resolve(u,"connectionInitOptions.json");t.existsSync(b)||t.copyFileSync(k.resolve(g("java2microservices.js"),"examples/connectionInitOptions.json"),b);for(var n in B)b=k.resolve(process.cwd(),B[n].jarfile),c=k.resolve(a,k.basename(B[n].jarfile)),t.copyFileSync(b,c);fa(F.ProjectName);ha(F.ProjectName,F.Version,F.Description);ja("npm install",{cwd:u},function(a,b,c){a?console.error("exec error: "+ a):console.log("stdout: "+b)})}function Q(a,b,c,n,e){if(b.length)for(var d in b){""!=e.strJI&&(e.strJI+=" else ");if(b[d].args.length){var q=n,k={},h=b[d].args.map(function(a){var b=a.name;q=n;a.an_name&&(q="req.query.",b=a.an_name);a.an_pname&&(q="req.params.",b=a.an_pname);k[q]||(k[q]=!0);return"("+q+b+" !== undefined)"}),m;for(m in k)h.unshift(m.replace(/(\.)$/,""));h=h.join("&&");e.strJI+="if("+h+") {"}else h=n.replace(/(\.)$/,""),e.strJI+="if(!"+h+" || Object.keys("+h+").length == 0) {";e.paramlist= "";h=$jscomp.makeIterator(b[d].args);for(var f=h.next();!f.done;f=h.next()){f=f.value;var y=f.type,p=C(y);p||(p={javascript:"object"},p.java=y);y=n;var g=f.name;f.an_name?(y="req.query.",g=f.an_name):f.an_pname&&(y="req.params.",g=f.an_pname);var l=g+"_"+c;if("array"==p.javascript)e.strJI=p.itemtype?e.strJI+("var "+l+" = java.newArray('"+p.itemjavatype+"',"+y+g+");"):e.strJI+("var "+l+" = java.newArray('"+p.itemjavatype+");");else switch(p.java){case "java.lang.Float":case "float":e.strJI+="var "+ l+" = java.newFloat(parseFloat("+y+g+"));";break;case "java.lang.Double":case "double":e.strJI+="var "+l+" = java.newDouble(parseFloat("+y+g+"));";break;case "java.lang.Short":case "short":e.strJI+="var "+l+" = java.newShort(parseInt("+y+g+"));";break;case "java.lang.Integer":case "int":e.strJI+="var "+l+" = java.newInstanceSync('java.lang.Integer',"+y+g+");";break;case "java.lang.Long":case "long":e.strJI+="var "+l+" = java.newLong(parseInt("+y+g+"));";break;case "java.lang.Object":e.strJI+= "var "+l+" = java.newInstanceSync('"+p.java;e.strJI+="');";break;case "java.lang.String":e.strJI+="var "+l+" = java.newInstanceSync('"+p.java+"',"+y+g+");";break;default:if(f.argsigns&&f.argsigns.length){var r={strJI:"",paramlist:""};Q("var "+l+" = java.newInstanceSync('"+p.java+"',PARAMLIST);",f.argsigns,c,y+g+".",r);e.strJI+=r.strJI}else e.strJI+="var "+l+" = java.newInstanceSync('"+p.java+"',"+y+g+");"}e.paramlist.length&&(e.paramlist+=",");e.paramlist+=l}a&&(e.strJI+=a.replace(/PARAMLIST/g, e.paramlist));e.strJI+="}"}}function ka(a,b,c,n,e,d,k){var q=" \n",h="",m="";if(e&&e.isStatic)m+=' java.callStaticMethod("'+a+'","'+b+'",PARAMLIST, function (err, result) { \n';else{if(n&&n.ctors){var f={strJI:"",paramlist:""};Q(' var CLASSUNDERSCORENAME = java.import("CLASSNAME"); \n var p_CLASSUNDERSCORENAME = new CLASSUNDERSCORENAME(PARAMLIST);',n.ctors,"ctor","req.body.__ctorParams.",f);h+=f.strJI}m+=" p_CLASSUNDERSCORENAME.METHODNAMEAsync(PARAMLIST, function (err, result) { \n"}m+=' if(err) res.status(422).json({"message":err.message}); else res.status(200).json({ "result": serializeResult(result) })});'; q+="TRYBLOCK PARAMINSTANTIATIONCATCHBLOCK";n="";e="get"!=e.methodtype&&"delete"!=e.methodtype;if(void 0!=c)if(e)d&&d.argsigns&&(f={strJI:"",paramlist:""},Q(m,d.argsigns,b,"req.body.",f),h+=f.strJI,n+=f.paramlist);else if(void 0!=c.JavaParams){d=d.argsigns[d.pasigindex].args;for(var g in c.JavaParams){f=d.filter(function(a){return a.an_name&&a.an_name==g}).length?"req.query.":"req.params.";switch(A(c.JavaParams[g])){case "java.lang.Float":case "float":h+="var "+g+" = java.newFloat(parseFloat("+f+ g+"));";break;case "java.lang.Double":case "double":h+="var "+g+" = java.newDouble(parseFloat("+f+g+"));";break;case "java.lang.Short":case "short":h+="var "+g+" = java.newShort(parseInt("+f+g+"));";break;case "java.lang.Integer":case "int":h+="var "+g+" = java.newInstanceSync('java.lang.Integer',"+f+g+");";break;case "java.lang.Long":case "long":h+="var "+g+" = java.newLong(parseInt("+f+g+"));";break;case "java.lang.String":h+="var "+g+" = java.newInstanceSync('"+A(c.JavaParams[g])+"',req.params."+ g+");"}n.length&&(n+=",");n+=g}e||(q+=m)}q=h?q.replace(/TRYBLOCK/g,"try{\n").replace("PARAMINSTANTIATION"," "+h+"\n").replace(/CATCHBLOCK/g,'}\ncatch(e){res.status(500).json({"message": e.message});return;}\n'):q.replace(/TRYBLOCK/g,"").replace("PARAMINSTANTIATION","\n").replace(/CATCHBLOCK/g,"");q=q.replace(/CLASSNAME/g,a);q=q.replace(/CLASSUNDERSCORENAME/g,a.replace(/\./g,"_"));q=q.replace(/METHODNAME/g,b);q=q.replace(/PARAMLIST/g,n);k(q)}function R(a,b){if(a){if(a.__anyOf){var c=a.__anyOf;c.length> b.max&&(b.max=c.length);for(var g in c)"object"==typeof c[g]&&R(c[g],b)}if("object"==typeof a)for(g in a)R(a[g],b)}}function W(a,b){if(a){if(a.__anyOf){var c=b;a.__anyOf.length<b&&(c=0);c=a.__anyOf[c];delete a.__anyOf;for(var g in c)a[g]=c[g]}if("object"==typeof a)for(g in a)W(a[g],b)}}function J(a){if(a.properties)for(var b in a.properties)switch(b){case "__anyOf":var c=a.properties.__anyOf.items.anyOf;delete a.properties;delete a.type;a.anyOf=c;for(var g in c)c[g].additionalProperties=!1;break; default:J(a.properties[b]),a.additionalProperties=!1,a.required||(a.required=[]),a.required.push(b)}else if(a.patternProperties&&"object"==a.patternProperties.type)for(b in a.patternProperties)a.patternProperties[b].properties&&a.patternProperties[b].properties.__anyOf&&(a.patternProperties[b]=a.patternProperties[b].properties.__anyOf,J(a.patternProperties[b]));if("array"==a.type)for(var e in a.items)J(a.items[e]);if(a.anyOf)for(e in a.anyOf)J(a.anyOf[e])}function la(a,b,c){var n={notice:{},loglevel:"trace", servicename:a,routes:[]};n.notice=E.CopyRightNotice(!1);var e=E.CopyRightNotice(!0);e+='var java = require("java");\njava.asyncOptions = { asyncSuffix: "Async",\nsyncSuffix: "",\npromiseSuffix: "Promise",\npromisify: require("util").promisify };\nconst path=require("path");\nconst fs=require("fs");\n';var d='java.classpath.push("REPLACEWITHJARPATH");'.replace(/REPLACEWITHJARPATH/g,"classes/"+k.basename(B[a].jarfile));e+=t.readFileSync(k.resolve(g("java2microservices.js"),"examples/templatecwj2mutil.js")); e+=d+"exports.initialize = function(){";if(b.classpath)for(b=b.classpath.split(":"),b=$jscomp.makeIterator(b),d=b.next();!d.done;d=b.next()){d=d.value;try{t.symlinkSync(k.resolve(process.cwd(),d),k.resolve(u,"classes",d))}catch(Z){console.log("warning e="+JSON.stringify(Z,0,2))}e+='addDirJarsToClassPath("./classes/'+d+'");'}e+="}";n.routes.push({route:"/images",type:"static",configured:!0,routeclass:"./images",description:"app specific images are served from the directory ./images under "});for(var q in c){b= "";b=c[q].Route;b=b.replace(/:/g,"");b=b.replace(/ /g,"");b=b.replace(/\//g," ");E.camelize(b);for(var x in c[q].Methods){var h=d="",m=c[q].Methods[x].Method,f=c[q].Route,y;for(y in P[a]){var p={};p=P[a][y];var v=!1;p.Route!=f||v||(d=p.JavaClass,h=p.JavaFunction.replace(/^___/,""),v=!0)}m+=" "+b;m=E.camelize(m);m=m.replace(/\./g,"_");var l="exports.REPLACEWITHFUNCNAME = function(req,res){ /* Body = JAVAPAYLOAD */ /* Params = JAVAPARAMS */ FUNCTIONCODEHERE }";l=l.replace("REPLACEWITHFUNCNAME",m); f=c[q].Methods[x].Parameters;void 0!=f&&void 0!=f.Body&&(l=l.replace("JAVAPAYLOAD",JSON.stringify(f.JavaBody,null,2)));void 0!=f&&void 0!=f.Params&&(l=l.replace("JAVAPARAMS",JSON.stringify(f.JavaParams,null,2)));ka(d,h,f,c[q].Methods[x].JavaClassInfo,c[q].Methods[x].JavaMethodInfo,c[q].Methods[x].Parameters.JavaParameterInfo,function(a){l=l.replace(/FUNCTIONCODEHERE/g,a)});e+=l;d={};d.route=c[q].Route;d.type=c[q].Methods[x].Method.toLowerCase();d.configured=!0;d.routeclass=a+".js";d.routefunction= m;d.description=f.RouteDescription;(m=c[q].Methods[x].JavaMethodInfo.hints)&&0<m.length&&(d.hints=m);f&&(f.Params&&(d.paramschema=E.SchemaFromParamOrBody(f.Params,f.ParamDescriptions,f.ParamExample)),f.Body&&(m=E.SchemaFromParamOrBody(f.Body,f.BodyDescriptions,f.bodyexamples),J(m),d.bodyschema=m));h=p=null;m=[];for(var r in f.paramexamples)h={},f.paramexamples[r]&&(p=f.paramexamples[r]),p&&(h.param=p),m.push(h);if("put"==d.type||"post"==d.type){h=f.bodyexamples[0];f={max:1};R(h,f);for(p=0;p<f.max;p++)v= JSON.parse(JSON.stringify(h)),W(v,p),m.length>p?m[p].payload=v:m.push({param:m[0].param,payload:v});for(;p<m.length;p++)m[p].payload=m[0].payload}d.examples=m;n.routes.push(d)}}t.writeFileSync(k.resolve(u,a+".js"),X(e,{indent_size:4,space_in_empty_paren:!0}),"utf-8");t.writeFileSync(k.resolve(u,a+"_appconfig.json"),JSON.stringify(n,null,2),"utf-8")}function ma(a,c){var b=["ProjectInfo","JavaServiceList"],n=0;T(a,b[0],function(){U(a,b[1],function(){for(var b in B)ea(a,b,function(){n++;if(n==D(B)){ia(); for(var a in B){var b=a,e=B[a],h=b,m=require(k.resolve(u,"appserviceconfig.json")),f={};f.port=B[h].port;f.description=B[h].description;f.hostname="localhost";f.protocol="https";f.certPath="./certs/"+h;f.configfilepath="./"+h+"_appconfig.json";f.init={"class":h+".js","function":"initialize"};m.services[h]=f;t.writeFileSync(k.resolve(u,"appserviceconfig.json"),JSON.stringify(m,null,2),"utf-8");h=b;m=E.CopyRightNotice(!0);m=m+"var app = require('cirruswave') \napp.startservice('"+(h+"', __dirname, './")+ "appserviceconfig.json')";t.writeFileSync(k.resolve(u,h+"_index.js"),X(m,{indent_size:2,space_in_empty_paren:!0}));h=b;m=h+".crt";t.copyFileSync(k.resolve(g("java2microservices.js"),"./security/keymgr.crt"),k.resolve(u,"certs",m));m=h+".key";t.copyFileSync(k.resolve(g("java2microservices.js"),"./security/keymgr.key"),k.resolve(u,"certs",m));la(b,e,V[b])}console.log("Project generation and installing cirruswave may take a few seconds");c()}})})})}var O=require("xlsx-to-json"),na=require("exceljs"), k=require("path"),t=require("fs"),E=require("./cwcommonutil.js"),N=require("lodash"),X=require("js-beautify").js,M=new na.Workbook,u="",ja=require("child_process").exec,H={"byte":{java:"java.lang.Byte",javainstance:"java.lang.Byte",javascript:"integer"},java_lang_Byte:{java:"java.lang.Byte",javainstance:"java.lang.Byte",javascript:"integer"},"int":{java:"int",javainstance:"java.lang.Integer",javascript:"integer"},java_lang_Integer:{java:"java.lang.Integer",javainstance:"java.lang.Integer",javascript:"integer"}, "short":{java:"short",javainstance:"java.lang.Short",javascript:"integer"},java_lang_Short:{java:"java.lang.Short",javainstance:"java.lang.Short",javascript:"integer"},"long":{java:"long",javainstance:"java.lang.Long",javascript:"integer"},java_lang_Long:{java:"java.lang.Long",javainstance:"java.lang.Long",javascript:"integer"},"float":{java:"float",javainstance:"java.lang.Float",javascript:"number"},java_lang_Float:{java:"java.lang.Float",javainstance:"java.lang.Float",javascript:"number"},"double":{java:"double", javainstance:"java.lang.Double",javascript:"number"},java_lang_Double:{java:"java.lang.Double",javainstance:"java.lang.Double",javascript:"number"},java_lang_String:{java:"java.lang.String",javainstance:"java.lang.String",javascript:"string"},"boolean":{java:"java.lang.Boolean",javainstance:"java.lang.Boolean",javascript:"boolean"},java_lang_Boolean:{java:"java.lang.Boolean",javainstance:"java.lang.Boolean",javascript:"boolean"},java_util_Date:{java:"java.util.Date",javainstance:"java.util.Date", javascript:"date"}},L={number:{type:"number",addtoroute:!0,"default":function(a){return a+.01}},integer:{type:"integer",addtoroute:!0,"default":function(a){return a}},array:{type:"array",addtoroute:!0,"default":function(a,b){var c=[];switch(b){case "integer":c=[a+1,a+2,a+3];break;case "number":c=[a+1.01,a+2.1,a+3.2]}return c}},string:{type:"string",addtoroute:!0,"default":function(a){return"stringvalue_"+a}},"boolean":{type:"boolean",addtoroute:!0,"default":function(a){return 1==a%2}},date:{type:"string", addtoroute:!1,"default":function(a){return(new Date).toString()}},object:{type:"object",addtoroute:!1,"default":function(a){return{prop:"val"}}}},F={},B={},G={},V={},P={},I={};v.generateCirrusWaveProjectFromExcel=function(a,b){ma(a,function(){b()})};v.generateAPITabsfromExcel=function(a,b){da(a,b)};v.generateExcelTemplate=function(a){var b=k.resolve(process.cwd(),"examples");t.existsSync(b)||t.mkdirSync(b,484);b=k.resolve(b,"Calculate.jar");t.existsSync(b)||t.copyFileSync(k.resolve(g("java2microservices.js"), "examples/Calculate.jar"),b);t.copyFileSync(k.resolve(g("java2microservices.js"),"examples/samplejava2microservices.xlsx"),k.resolve(process.cwd(),"samplejava2microservices.xlsx"));console.log("samplejava2microservices.xlsx is created. You can edit this file to customize the java Migration to Microservices");a()};return c.exports};if("object"===typeof module)module.exports=c(0);else return c(0)})();