UNPKG

@northflank/cli

Version:

Provides a command-line interface to the Northflank platform.

1 lines 13.1 kB
'use strict';function a15B(I,B){const J=a15I();return a15B=function(C,G){C=C-0x17e;let F=J[C];return F;},a15B(I,B);}const a15g=a15B;(function(I,B){const x=a15B,J=I();while(!![]){try{const C=-parseInt(x(0x188))/0x1*(parseInt(x(0x1d6))/0x2)+-parseInt(x(0x1a3))/0x3+parseInt(x(0x1b0))/0x4*(parseInt(x(0x1f0))/0x5)+parseInt(x(0x19c))/0x6+-parseInt(x(0x17f))/0x7*(-parseInt(x(0x1dd))/0x8)+-parseInt(x(0x196))/0x9*(parseInt(x(0x1fb))/0xa)+-parseInt(x(0x1d4))/0xb;if(C===B)break;else J['push'](J['shift']());}catch(G){J['push'](J['shift']());}}}(a15I,0x1c739));function a15I(){const I2=['Connection\x20error\x20occurred\x20when\x20forwarding\x20\x27','getOwnPropertyNames','configurable','Failed:\x20','--skipHostnames','--service\x20--serviceId\x20[NAME]','portName','getCurrentProjectName','forEach','Services:','then','default','__createBinding','Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.','create','hosts','bold','warning','Cleaning\x20up\x20open\x20connections\x20failed:\x20','\x20flag\x20or\x20manually\x20append\x20following\x20entry\x20to\x20your\x20hosts\x20file\x20(','assertContextExisting','getCurrentServiceName','service','groupBy','action','../utils','printHostsFileHint','hostnames','chalk','ApiClient','\x20with\x20these\x20hostnames:','error','Forwarding\x20addon\x20','189123TguOAi','\x20mode:\x20the\x20locally\x20forwarded\x20port\x20differs\x20from\x20the\x20actual\x20port\x20on\x20the\x20forwarded\x20service/addon.','132428dFxfhi','\x20\x20If\x20you\x20have\x20added\x20entries\x20to\x20your\x20hosts\x20file,\x20it\x20is\x20recommended\x20to\x20remove\x20them\x20again\x20now.','apiClient','Please\x20ensure\x20the\x20','length','askForProject','addCommand','152GyYuhq','Only\x20expose\x20on\x20IP\x20address,\x20not\x20on\x20hostnames.\x20With\x20this\x20option,\x20no\x20root\x20permissions\x20are\x20required.','data','forwarding','value','--project\x20--projectId\x20[NAME]','__setModuleDefault','\x20-\x20','@northflank/js-client','skipHostnamesText','Addons:','stop','\x20to\x20','with\x20hostname:\x20','flatMap','uniqBy','Error\x20occured\x20while\x20trying\x20to\x20forward\x20','name','\x20is\x20exposed\x20on\x20','1215bPnGSK','success','Project\x20for\x20forwarding','tunnel-close','__importDefault','get','option','HTTP','data.id','addon','\x20with\x20multiple\x20ports:','30vtHQTx','\x20service\x20ports','forwardService','green','win32','ports','__importStar','forwardProject','SIGINT','log','22267ambKzd','\x20is\x20running\x20and\x20reachable\x20and\x20that\x20a\x20port\x20is\x20defined\x20on\x20the\x20networking\x20section.','Service\x20to\x20forward','greenBright','project\x20for\x20forwarding','InquirerHelper','capitalize','CliPortForward','Forwarding\x20service\x20','2TgifMt','No\x20services\x20and\x20addons\x20to\x20forward\x20found\x20in\x20project\x20','next','port','__esModule','Port-forwarding\x20for\x20all\x20services\x20and\x20addons\x20in\x20the\x20given\x20project','protocol','getProxyForwarder','\x20\x20-\x20port\x20','address','prototype','description','skipHostnames','darwin','273303myLXUh','join','\x20mode.\x20If\x20hostname\x20forwarding\x20is\x20required,\x20remove\x20','\x27:\x20\x22','\x20in\x20project\x20','Running\x20in\x20','1336194PHFaFO','type','map','printForwardingInfo','throw','filter','defineProperty','358650nUpVIf','portFwdCmd','getCommand','hasOwnProperty','noDefaultsText','message','all','Addon\x20to\x20forward','askForService','forwardAddon','fwd','--noDefaults','reset','3188trvhUT','\x20and\x20','C:/Windows/System32/drivers/etc/hosts'];a15I=function(){return I2;};return a15I();}var __createBinding=this&&this[a15g(0x1bf)]||(Object[a15g(0x1c1)]?function(I,B,J,C){const o=a15g;if(C===undefined)C=J;var G=Object['getOwnPropertyDescriptor'](B,J);(!G||(o(0x1f5)in G?!B['__esModule']:G['writable']||G[o(0x1b5)]))&&(G={'enumerable':!![],'get':function(){return B[J];}}),Object['defineProperty'](I,C,G);}:function(I,B,J,C){if(C===undefined)C=J;I[C]=B[J];}),__setModuleDefault=this&&this[a15g(0x1e3)]||(Object[a15g(0x1c1)]?function(I,B){const O=a15g;Object[O(0x1a2)](I,O(0x1be),{'enumerable':!![],'value':B});}:function(I,B){const p=a15g;I[p(0x1be)]=B;}),__importStar=this&&this[a15g(0x201)]||(function(){var I=function(B){const w=a15B;return I=Object[w(0x1b4)]||function(J){const Z=w;var C=[];for(var G in J)if(Object[Z(0x192)][Z(0x1a6)]['call'](J,G))C[C['length']]=G;return C;},I(B);};return function(B){const z=a15B;if(B&&B[z(0x18c)])return B;var J={};if(B!=null){for(var C=I(B),G=0x0;G<C[z(0x1da)];G++)if(C[G]!==z(0x1be))__createBinding(J,B,C[G]);}return __setModuleDefault(J,B),J;};}()),__awaiter=this&&this['__awaiter']||function(I,B,J,C){function G(F){return F instanceof J?F:new J(function(A){A(F);});}return new(J||(J=Promise))(function(F,A){function H(X){const Q=a15B;try{d(C[Q(0x18a)](X));}catch(S){A(S);}}function t(X){const c=a15B;try{d(C[c(0x1a0)](X));}catch(S){A(S);}}function d(X){const l=a15B;X['done']?F(X[l(0x1e1)]):G(X[l(0x1e1)])[l(0x1bd)](H,t);}d((C=C['apply'](I,B||[]))['next']());});},__importDefault=this&&this[a15g(0x1f4)]||function(I){const n=a15g;return I&&I[n(0x18c)]?I:{'default':I};};Object[a15g(0x1a2)](exports,'__esModule',{'value':!![]}),exports[a15g(0x186)]=void 0x0;const js_client_1=require(a15g(0x1e5)),chalk_1=__importDefault(require(a15g(0x1cf))),utils_1=require(a15g(0x1cc)),inquirer_helper_1=require('../inquirer-helper'),os=__importStar(require('os')),lodash_1=require('lodash'),{EOL}=require('os');class CliPortForward{constructor(I,B){const m=a15g;this[m(0x1a7)]=m(0x1c0),this['skipHostnamesText']=m(0x1de),this[m(0x1d8)]=new js_client_1[(m(0x1d0))](I,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':utils_1['customUserAgent'],'agent':B});const J=new inquirer_helper_1[(m(0x184))](this[m(0x1d8)]);this[m(0x1a4)]=(0x0,utils_1['getCommand'])()['name']('forward')['alias'](m(0x1ad))[m(0x193)]('Port-forwarding\x20for\x20Northflank\x20services\x20and\x20addons.');const C=(0x0,utils_1[m(0x1a5)])(!![])[m(0x1ee)](m(0x1a9))[m(0x193)](m(0x18d))[m(0x1f6)](m(0x1e2),m(0x183))[m(0x1f6)](m(0x1ae),this['noDefaultsText'],![])[m(0x1f6)]('--skipHostnames',this[m(0x1e6)],![])['action'](A=>__awaiter(this,[A],void 0x0,function*({noDefaults:H,projectId:t,skipHostnames:d}){const E=m;(0x0,utils_1[E(0x1c7)])(this[E(0x1d8)]);const X=this[E(0x18f)](d),S=H?undefined:I[E(0x1ba)](),f=t||S||(yield J[E(0x1db)]());try{const {services:v,addons:a}=yield X[E(0x202)]({'projectId':f},d);if(v['length']+a[E(0x1da)]<=0x0)(0x0,utils_1[E(0x1c4)])(E(0x189)+chalk_1[E(0x1be)][E(0x1c3)](f));else{const V=v[E(0x1a1)](K=>K['length']>0x0)[E(0x1da)],r=a['filter'](K=>K[E(0x1da)]>0x0)[E(0x1da)],s=E(0x19a)+chalk_1[E(0x1be)][E(0x1c3)](f);console['log']('Forwarding\x20'+chalk_1[E(0x1be)][E(0x1fe)][E(0x1c3)](V+E(0x1fc))+E(0x1b1)+chalk_1[E(0x1be)][E(0x1fe)]['bold'](r+'\x20addon\x20ports')+s),console['log'](),console[E(0x17e)](chalk_1[E(0x1be)][E(0x1c3)](E(0x1bc))),v[E(0x1bb)](K=>{const j=E;if(K[j(0x1da)]>=0x1&&!K[0x0]['error'])this[j(0x19f)](K,{'type':'service','name':K[0x0][j(0x1df)]['id']},d);}),console[E(0x17e)](chalk_1[E(0x1be)]['bold'](E(0x1e7))),a['forEach'](K=>{const U=E;if(K['length']>=0x1&&!K[0x0][U(0x1d2)])this[U(0x19f)](K,{'type':U(0x1f9),'name':K[0x0][U(0x1df)]['id']},d);}),this[E(0x1cd)]([...v['flat'](),...a['flat']()],d);}}catch(K){(0x0,utils_1[E(0x1d2)])(E(0x1b6)+K[E(0x1a8)]);}})),G=(0x0,utils_1[m(0x1a5)])(!![])[m(0x1ee)](m(0x1c9))[m(0x193)]('Port-forwarding\x20for\x20the\x20specified\x20service')[m(0x1f6)]('--project\x20--projectId\x20[NAME]',m(0x1f2))[m(0x1f6)](m(0x1b8),m(0x181))['option'](m(0x1ae),this['noDefaultsText'],![])['option'](m(0x1b7),this['skipHostnamesText'],![])[m(0x1cb)](A=>__awaiter(this,[A],void 0x0,function*({noDefaults:H,projectId:t,serviceId:d,skipHostnames:X}){const D=m;(0x0,utils_1['assertContextExisting'])(this[D(0x1d8)]);const S=this['getProxyForwarder'](X),f=H?undefined:I[D(0x1ba)](),v=t||f||(yield J[D(0x1db)]()),a=H?undefined:I[D(0x1c8)](),V=d||a||(yield J[D(0x1ab)](v)());console[D(0x17e)](D(0x187)+chalk_1[D(0x1be)][D(0x1c3)](V)+'\x20in\x20project\x20'+chalk_1[D(0x1be)][D(0x1c3)](v));try{const r=yield S[D(0x1fd)]({'projectId':v,'serviceId':V},X);this[D(0x19f)](r,{'name':V,'type':'service'},X),this[D(0x1cd)](r,X);}catch(s){(0x0,utils_1[D(0x1d2)])(D(0x1b6)+s[D(0x1a8)]);}})),F=(0x0,utils_1[m(0x1a5)])(!![])[m(0x1ee)]('addon')[m(0x193)]('Port-forwarding\x20for\x20the\x20specified\x20addon')[m(0x1f6)](m(0x1e2),'Project\x20for\x20forwarding')['option']('--addon\x20--addonId\x20[NAME]',m(0x1aa))[m(0x1f6)](m(0x1b7),this[m(0x1e6)],![])[m(0x1cb)](A=>__awaiter(this,[A],void 0x0,function*({noDefaults:H,projectId:t,addonId:d,skipHostnames:X}){const M=m;(0x0,utils_1['assertContextExisting'])(this[M(0x1d8)]);const S=this['getProxyForwarder'](X),f=H?undefined:I[M(0x1ba)](),v=t||f||(yield J['askForProject']()),a=d||(yield J['askForAddon'](v)());console['log'](M(0x1d3)+chalk_1['default'][M(0x1c3)](a)+M(0x19a)+chalk_1[M(0x1be)]['bold'](v));try{const V={'projectId':v,'addonId':a},r=yield S[M(0x1ac)](V,X);this[M(0x19f)](r,{'name':a,'type':'addon'},X),this['printHostsFileHint'](r,X);}catch(s){(0x0,utils_1[M(0x1d2)])(M(0x1b6)+s[M(0x1a8)]);}}));this['portFwdCmd'][m(0x1dc)](C),this[m(0x1a4)][m(0x1dc)](G),this[m(0x1a4)][m(0x1dc)](F);}['getProxyForwarder'](I=![]){const R=a15g,B=this[R(0x1d8)][R(0x1e0)];if(!I){const J=B['canExecuteWithHostnames']();if(J[R(0x1d2)])throw new Error(J[R(0x1a8)]);}return B['on'](R(0x1f3),(C,G)=>{const Y=R,F=chalk_1['default']['bold'](G[Y(0x19d)]+'\x20\x27'+G['id']+'\x27'),A=G['hostnames'][Y(0x1da)]>0x0;(0x0,utils_1['warning'])('Stop\x20forwarding\x20traffic\x20from\x20'+G[Y(0x191)]+':'+G[Y(0x18b)]+Y(0x1e9)+F),I&&A&&(0x0,utils_1[Y(0x1c4)])(Y(0x1d7));}),B['on']('connection-error',(C,G,F)=>{const P=R;(0x0,utils_1[P(0x1c4)])(P(0x1b3)+G[P(0x191)]+':'+G[P(0x18b)]+P(0x199)+(F===null||F===void 0x0?void 0x0:F[P(0x1a8)])+'\x22');}),process['on'](R(0x203),()=>__awaiter(this,void 0x0,void 0x0,function*(){const k=R;try{yield B[k(0x1e8)]();}catch(C){(0x0,utils_1[k(0x1d2)])(k(0x1c5)+C[k(0x1a8)]);}finally{process['exit']();}})),B;}[a15g(0x19f)](I,B,J=![]){const L=a15g,{type:C,name:G}=B;if(I[L(0x1da)]<=0x0){const t=L(0x1d9)+B[L(0x19d)]+L(0x180);(0x0,utils_1[L(0x1c4)])('\x20\x20\x20No\x20running\x20container\x20found\x20for\x20'+C+'\x20'+chalk_1[L(0x1be)][L(0x1c3)](G)+'.\x20'+t);return;}const F=(0x0,lodash_1[L(0x1ca)])(I,L(0x1f8)),A=d=>'\x20('+(d[L(0x1b9)]?d[L(0x1b9)]+L(0x1e4):'')+d[L(0x18e)]+')';function H(d,X=0x2){const N=L;if(!J){const S=d[N(0x18e)]===N(0x1f7)?'http://':'';d[N(0x1ce)]['forEach'](f=>{const T=N;console[T(0x17e)]((0x0,lodash_1['repeat'])('\x20',X)+'-\x20'+S+f+':'+d[T(0x18b)]);});}}Object['entries'](F)[L(0x1bb)](([d,X])=>{const y=L;var S,f;const v='>\x20'+(0x0,lodash_1[y(0x185)])(C)+'\x20\x27'+chalk_1[y(0x1be)][y(0x182)][y(0x1c3)](d)+'\x27';if(C===y(0x1f9)){if(X[y(0x1da)]===0x1){const a=X[0x0];if(a['error']){(0x0,utils_1['error'])(y(0x1ed)+d+':\x20'+a[y(0x1d2)][y(0x1a8)]);return;}const V=a[y(0x1df)],r=!J?'\x20'+chalk_1[y(0x1be)][y(0x1af)](y(0x1ea)+V[y(0x1ce)][y(0x197)](',')):'';(0x0,utils_1[y(0x1f1)])(v+y(0x1ef)+V[y(0x191)]+':'+V[y(0x18b)]+A(V)+r);}else{const s=(0x0,lodash_1[y(0x1ec)])(X,K=>{const e=y;var b,W;return(W=(b=K===null||K===void 0x0?void 0x0:K[e(0x1df)])===null||b===void 0x0?void 0x0:b['hostnames'])===null||W===void 0x0?void 0x0:W[e(0x197)](',');})[y(0x1da)]>0x1;(0x0,utils_1['success'])(v+'\x20is\x20exposed\x20with\x20multiple\x20'+(s?y(0x1c2):y(0x200))+':'),X['forEach'](K=>{const i=y;if(K[i(0x1d2)]){(0x0,utils_1[i(0x1d2)])(i(0x1ed)+d+':\x20'+K[i(0x1d2)][i(0x1a8)]);return;}const b=K['data'],W=!J?',\x20hostname:\x20'+b[i(0x1ce)][i(0x197)](','):'';console[i(0x17e)]('\x20\x20-\x20Address:\x20'+b['address']+':'+b[i(0x18b)]+A(b)+W);});}}if(C===y(0x1c9)){if(X[y(0x1da)]===0x1){const K=X[0x0];if(K[y(0x1d2)]){(0x0,utils_1[y(0x1d2)])(y(0x1ed)+d+':\x20'+K['error'][y(0x1a8)]);return;}const b=K['data'],W=!J?y(0x1d1):':',u=b[y(0x191)]+':'+b[y(0x18b)]+A(b);(0x0,utils_1['success'])(v+y(0x1ef)+u+W),H(b);}else(0x0,utils_1[y(0x1f1)])(v+y(0x1ef)+((f=(S=X[0x0])===null||S===void 0x0?void 0x0:S[y(0x1df)])===null||f===void 0x0?void 0x0:f[y(0x191)])+y(0x1fa)),X[y(0x1bb)](h=>{const I0=y;if(h[I0(0x1d2)]){(0x0,utils_1[I0(0x1d2)])(I0(0x1ed)+d+':\x20'+h['error'][I0(0x1a8)]);return;}const q=h[I0(0x1df)];(0x0,utils_1['success'])(I0(0x190)+q[I0(0x18b)]+A(q)),H(q,0x4);});}});}[a15g(0x1cd)](I,B=![]){const I1=a15g;if(B){const J=I[I1(0x1eb)](X=>X['data'])[I1(0x1a1)](X=>X!==undefined),C=(process===null||process===void 0x0?void 0x0:process['platform'])===I1(0x1ff),G=os['platform']()===I1(0x195),F=C?I1(0x1b2):'/etc/hosts',A=chalk_1[I1(0x1be)][I1(0x1c3)](I1(0x194)),H=G?EOL+'Running\x20on\x20macOS\x20in\x20'+A+I1(0x1d5):undefined;let t=I1(0x19b)+A+I1(0x198)+I1(0x1b7)+I1(0x1c6)+F+'):';H!==undefined&&(0x0,utils_1[I1(0x1c4)])(H!==null&&H!==void 0x0?H:'');(0x0,utils_1[I1(0x1c4)])(t);const d=J[I1(0x19e)](X=>X[I1(0x191)]+'\x20\x20\x20\x20\x20\x20\x20\x20\x20'+X[I1(0x1ce)]['join']('\x20'));console['log']((0x0,lodash_1['uniq'])(d)['join'](EOL)),console[I1(0x17e)]();}}}exports[a15g(0x186)]=CliPortForward;