@northflank/cli 0.11.3 → 0.11.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api-helpers.js +1 -1
- package/dist/cli.js +1 -1
- package/dist/context/contextCommands.js +1 -1
- package/dist/copy/index.js +1 -1
- package/dist/defaults.js +1 -1
- package/dist/exec/index.js +1 -1
- package/dist/formatting/command-overview.js +1 -1
- package/dist/formatting/console-format-helpers.js +1 -1
- package/dist/formatting/terminal-chart.js +1 -1
- package/dist/inquirer-helper.js +1 -1
- package/dist/login/browser-login.js +1 -1
- package/dist/logs/index.js +1 -1
- package/dist/logs/log-formatter.js +1 -1
- package/dist/metrics/index.js +1 -1
- package/dist/pagination/inquirer-pagination-prompt.js +1 -1
- package/dist/port-forward/index.js +1 -1
- package/dist/ssh/index.js +1 -1
- package/dist/utils.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a14B=a14h;(function(Z,h){const d=a14h,T=Z();while(!![]){try{const P=parseInt(d(0x110))/0x1*(-parseInt(d(0x129))/0x2)+-parseInt(d(0x112))/0x3+parseInt(d(0x10e))/0x4+-parseInt(d(0x12a))/0x5*(-parseInt(d(0x125))/0x6)+parseInt(d(0x115))/0x7+parseInt(d(0x11f))/0x8+-parseInt(d(0x11d))/0x9;if(P===h)break;else T['push'](T['shift']());}catch(f){T['push'](T['shift']());}}}(a14Z,0x5f621));import a14T from'inquirer/lib/prompts/list.js';import a14P from'inquirer/lib/objects/choice.js';import a14f from'chalk';function incrementListIndex(Z,h,T){const U=a14h,P=T['choices'][U(0x111)],f=U(0x126)in T?Boolean(T[U(0x126)]):!![];if(h==='up'){if(Z>0x0)return Z-0x1;return f?P-0x1:Z;}if(h===U(0x11a)){if(Z<P-0x1)return Z+0x1;return f?0x0:Z;}throw new Error(U(0x113));}function a14h(Z,h){const T=a14Z();return a14h=function(P,f){P=P-0x10b;let V=T[P];return V;},a14h(Z,h);}export class DynamicReloadPaginationPrompt extends a14T{[a14B(0x11e)]=a14f[a14B(0x11c)](a14B(0x11b));['pagOpt'];[a14B(0x10b)]=![];['nextPageCursor'];constructor(Z,h,T){const q=a14B;super(Z,h,T),this['pagOpt']=this[q(0x10d)],this[q(0x123)]=this[q(0x116)]['nextPageCursor'],this[q(0x123)]!==undefined&&this[q(0x10d)][q(0x127)][q(0x120)](new a14P(this['reloadText'],this[q(0x11e)]));}[a14B(0x10f)](){const w=a14B;if(this['loading'])return;this[w(0x128)]=incrementListIndex(this[w(0x128)],'up',this['opt']),this[w(0x10c)]();}async['onDownKey'](){const M=a14B;if(this[M(0x10b)])return;this[M(0x128)]=incrementListIndex(this[M(0x128)],'down',this[M(0x10d)]),await this['handleDynamicPageLoad'](),this[M(0x10c)]();}async['handleDynamicPageLoad'](){const S=a14B;if(this['selected']>=this[S(0x10d)][S(0x127)][S(0x124)]-0x1){if(this[S(0x123)]===undefined)return;this[S(0x10b)]=!![];let Z=0x0;const h=setInterval(()=>{const z=S,V=['⠋','⠙','⠹','⠸','⠼','⠴','⠦','⠧','⠇','⠏'],x=a14f['italic'](V[Z%V[z(0x124)]]+z(0x118));this['opt'][z(0x127)][z(0x127)][this[z(0x128)]][z(0x117)]=''+x,Z+=0x1,this['render']();},0x50),{elements:T,nextPageCursor:P}=await this[S(0x116)][S(0x119)]({'nextPageCursor':this[S(0x123)]})[S(0x121)](()=>({'elements':[],'nextPageCursor':undefined}));this[S(0x123)]=P;const f=T[S(0x122)](V=>new a14P(V,V));this[S(0x10d)][S(0x127)][S(0x127)][S(0x114)](this[S(0x128)],0x1),this['opt'][S(0x127)][S(0x120)](...f),P!==undefined&&this[S(0x10d)]['choices'][S(0x120)](new a14P(this[S(0x11e)],this[S(0x11e)])),clearInterval(h),this[S(0x10b)]=![];}}}function a14Z(){const H=['7670376KVwQtA','reloadText','3327480lsXBjx','push','catch','map','nextPageCursor','length','3810756MKPTjY','loop','choices','selected','118aqBUQs','5gJsmkz','loading','render','opt','2286644lkMNyY','onUpKey','6067qwaeER','realLength','1888014LwVYnN','dir\x20must\x20be\x20up\x20or\x20down','splice','4252654nNBVRv','pagOpt','name','\x20Loading\x20more\x20options','loadMore','down','..\x20Load\x20more\x20options\x20..','italic'];a14Z=function(){return H;};return a14Z();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a15m=a15A;(function(Q,A){const T=a15A,N=Q();while(!![]){try{const t=-parseInt(T(0x158))/0x1+parseInt(T(0x17a))/0x2+-parseInt(T(0x151))/0x3+parseInt(T(0x14d))/0x4*(parseInt(T(0x152))/0x5)+-parseInt(T(0x172))/0x6+parseInt(T(0x16b))/0x7+-parseInt(T(0x187))/0x8*(-parseInt(T(0x15b))/0x9);if(t===A)break;else N['push'](N['shift']());}catch(a){N['push'](N['shift']());}}}(a15Q,0xd6f15));import{ApiClient}from'@northflank/js-client';import a15N from'chalk';import{assertContextExisting,customUserAgent,error,getCommand,success,warning}from'../utils.js';function a15Q(){const q=['portName','message','Port-forwarding\x20for\x20Northflank\x20services\x20and\x20addons.','Forwarding\x20service\x20','\x20-\x20','\x20in\x20project\x20','join','description','askForProjectContext','protocol','101514aCubVu','http://','getProxyForwarder','/etc/hosts','--service\x20--serviceId\x20[NAME]','type','skipHostnamesText','7137120tMPYIi',',\x20hostname:\x20','tunnel-close','--skipHostnames','address','Service\x20to\x20forward','Stop\x20forwarding\x20traffic\x20from\x20','getTokenScope','511404JKVFTV','Project\x20for\x20forwarding','portFwdCmd','hostnames','ports','\x27:\x20\x22','addon','action','bold','forwardProject','addCommand','--noDefaults','flatMap','864iEYcNQ','forwardAddon','Forwarding\x20addon\x20','>\x20Instance\x20\x27','greenBright','getCurrentServiceName','forEach','map','\x20mode.\x20If\x20hostname\x20forwarding\x20is\x20required,\x20remove\x20','log','org','data','HTTP','service','Cleaning\x20up\x20open\x20connections\x20failed:\x20','skipHostnames','\x20flag\x20or\x20manually\x20append\x20following\x20entry\x20to\x20your\x20hosts\x20file\x20(','\x20mode:\x20the\x20locally\x20forwarded\x20port\x20differs\x20from\x20the\x20actual\x20port\x20on\x20the\x20forwarded\x20service/addon.','entries','apiClient','Error\x20occured\x20while\x20trying\x20to\x20forward\x20','green','\x20\x20\x20\x20\x20\x20\x20\x20\x20','length','Instance\x20to\x20forward','getCurrentProjectName','Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.','filter','platform','\x20and\x20','alias','port','error','Port-forwarding\x20for\x20the\x20specified\x20addon','forward','connection-error','\x27\x20of\x20','\x20is\x20exposed\x20on\x20','Please\x20ensure\x20the\x20','forwardService','\x20service\x20ports','contextProvider','canExecuteWithHostnames','name','reset','Only\x20expose\x20on\x20IP\x20address,\x20not\x20on\x20hostnames.\x20With\x20this\x20option,\x20no\x20root\x20permissions\x20are\x20required.','Port-forwarding\x20for\x20all\x20services\x20and\x20addons\x20in\x20the\x20given\x20project','Failed:\x20','exit','SIGINT','forwarding','--addon\x20--addonId\x20[NAME]','getBaseCommand','C:/Windows/System32/drivers/etc/hosts','4404856zuelLW','\x20\x20\x20No\x20running\x20container\x20found\x20for\x20','Running\x20in\x20','printForwardingInfo','2997249SbFASZ','5bceuNb','printHostsFileHint','\x20addon\x20ports','Running\x20on\x20macOS\x20in\x20','--team\x20--teamId\x20[TEAMID]','Port-forwarding\x20for\x20the\x20specified\x20service','394262fdRfhy','option','noDefaultsText','174321gyZLSd','\x20with\x20these\x20hostnames:','all','\x20to\x20','\x20is\x20running\x20and\x20reachable\x20and\x20that\x20a\x20port\x20is\x20defined\x20on\x20the\x20networking\x20section.','hosts'];a15Q=function(){return q;};return a15Q();}import{InquirerHelper}from'../inquirer-helper.js';import*as a15t from'os';function a15A(Q,A){const N=a15Q();return a15A=function(t,a){t=t-0x13b;let p=N[t];return p;},a15A(Q,A);}import{uniqBy,uniq,repeat,groupBy,capitalize}from'lodash-es';import{EOL}from'os';export class CliPortForward{[a15m(0x17c)];[a15m(0x19a)];[a15m(0x15a)]=a15m(0x1a1);[a15m(0x171)]=a15m(0x144);constructor(Q,A){const n=a15m;this[n(0x19a)]=new ApiClient(Q,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':A});const N=new InquirerHelper(this[n(0x19a)]);this['portFwdCmd']=getCommand()[n(0x142)](n(0x1a9))[n(0x1a5)]('fwd')[n(0x168)](n(0x163));const t=this['getBaseCommand']()[n(0x142)](n(0x15d))[n(0x168)](n(0x145))[n(0x159)](n(0x185),this['noDefaultsText'],![])[n(0x159)](n(0x175),this[n(0x171)],![])[n(0x181)](async({noDefaults:P,teamId:l,projectId:X,skipHostnames:S})=>{const R=n;assertContextExisting(this[R(0x19a)]);const g=this[R(0x16d)](S),d=P?undefined:Q[R(0x1a0)](),{projectId:Z,teamId:M}=await this[R(0x169)](Q,N,l,X,d);try{const {services:k,addons:B}=await g[R(0x183)]({'teamId':M,'projectId':Z},S);if(k['length']+B[R(0x19e)]<=0x0)warning('No\x20services\x20and\x20addons\x20to\x20forward\x20found\x20in\x20project\x20'+a15N[R(0x182)](Z));else{const w=k[R(0x1a2)](E=>E[R(0x19e)]>0x0)[R(0x19e)],x=B[R(0x1a2)](E=>E[R(0x19e)]>0x0)['length'],Y='\x20in\x20project\x20'+a15N[R(0x182)](Z);console['log']('Forwarding\x20'+a15N[R(0x19c)][R(0x182)](w+R(0x13f))+R(0x1a4)+a15N[R(0x19c)][R(0x182)](x+R(0x154))+Y),console[R(0x190)](),console[R(0x190)](a15N[R(0x182)]('Services:')),k['forEach'](E=>{const u=R;if(E[u(0x19e)]>=0x1&&!E[0x0]['error'])this[u(0x150)](E,{'type':u(0x194),'name':E[0x0]['data']['id']},S);}),console['log'](a15N['bold']('Addons:')),B[R(0x18d)](E=>{const V=R;if(E['length']>=0x1&&!E[0x0][V(0x1a7)])this['printForwardingInfo'](E,{'type':'addon','name':E[0x0][V(0x192)]['id']},S);}),this[R(0x153)]([...k['flat'](),...B['flat']()],S);}}catch(E){error(R(0x146)+E['message']);}}),a=this[n(0x14b)]()[n(0x142)](n(0x194))[n(0x168)](n(0x157))[n(0x159)](n(0x16f),n(0x177))['option']('--instance\x20--instanceId\x20[NAME]',n(0x19f))['option'](n(0x185),this[n(0x15a)],![])['option'](n(0x175),this[n(0x171)],![])['action'](async({noDefaults:P,teamId:l,projectId:X,serviceId:S,instanceId:g,skipHostnames:d})=>{const U=n;assertContextExisting(this[U(0x19a)]);const Z=this[U(0x16d)](d),M=P?undefined:Q[U(0x1a0)](),{projectId:k,teamId:B}=await this[U(0x169)](Q,N,X,l,M),w=P?undefined:Q[U(0x18c)](),x=S||w||await N['askForService'](k,B)();console['log'](U(0x164)+a15N[U(0x182)](x)+U(0x166)+a15N['bold'](k));try{const Y=await Z[U(0x13e)]({'teamId':B,'projectId':k,'serviceId':x,'instanceId':g},d);this[U(0x150)](Y,{'name':x,'type':U(0x194),'instanceId':g},d),this[U(0x153)](Y,d);}catch(E){error(U(0x146)+E[U(0x162)]);}}),p=this[n(0x14b)]()[n(0x142)]('addon')[n(0x168)](n(0x1a8))[n(0x159)](n(0x14a),'Addon\x20to\x20forward')[n(0x159)](n(0x175),this[n(0x171)],![])[n(0x181)](async({noDefaults:P,teamId:l,projectId:X,addonId:S,skipHostnames:g})=>{const L=n;assertContextExisting(this['apiClient']);const d=this[L(0x16d)](g),Z=P?undefined:Q[L(0x1a0)](),{projectId:M,teamId:k}=await this[L(0x169)](Q,N,X,l,Z),B=S||await N['askForAddon'](M,k)();console[L(0x190)](L(0x189)+a15N[L(0x182)](B)+'\x20in\x20project\x20'+a15N[L(0x182)](M));try{const w={'teamId':k,'projectId':M,'addonId':B},x=await d[L(0x188)](w,g);this[L(0x150)](x,{'name':B,'type':L(0x180)},g),this[L(0x153)](x,g);}catch(Y){error('Failed:\x20'+Y[L(0x162)]);}});this['portFwdCmd'][n(0x184)](t),this[n(0x17c)][n(0x184)](a),this['portFwdCmd'][n(0x184)](p);}[a15m(0x14b)]=()=>{const h=a15m,Q=getCommand(!![])[h(0x159)]('--project\x20--projectId\x20[NAME]',h(0x17b));return this[h(0x19a)][h(0x140)]['getTokenScope']()==='org'&&Q[h(0x159)](h(0x156),'Team\x20for\x20forwarding'),Q;};[a15m(0x16d)](Q=![]){const O=a15m,A=this[O(0x19a)][O(0x149)];if(!Q){const N=A[O(0x141)]();if(N[O(0x1a7)])throw new Error(N[O(0x162)]);}return A['on'](O(0x174),(t,a)=>{const I=O,p=a15N[I(0x182)](a[I(0x170)]+'\x20\x27'+a['id']+'\x27'),P=a[I(0x17d)][I(0x19e)]>0x0;warning(I(0x178)+a['address']+':'+a[I(0x1a6)]+I(0x15e)+p),Q&&P&&warning('\x20\x20If\x20you\x20have\x20added\x20entries\x20to\x20your\x20hosts\x20file,\x20it\x20is\x20recommended\x20to\x20remove\x20them\x20again\x20now.');}),A['on'](O(0x1aa),(t,a,p)=>{const z=O;warning('Connection\x20error\x20occurred\x20when\x20forwarding\x20\x27'+a[z(0x176)]+':'+a[z(0x1a6)]+z(0x17f)+p?.[z(0x162)]+'\x22');}),process['on'](O(0x148),async()=>{const F=O;try{await A['stop']();}catch(t){error(F(0x195)+t[F(0x162)]);}finally{process[F(0x147)]();}}),A;}[a15m(0x150)](Q,A,N=![]){const f=a15m,{type:t,name:a,instanceId:p}=A;if(Q[f(0x19e)]<=0x0){const S=f(0x13d)+A['type']+f(0x15f);warning(f(0x14e)+t+'\x20'+a15N[f(0x182)](a)+'.\x20'+S);return;}const P=groupBy(Q,'data.id'),l=g=>'\x20('+(g[f(0x161)]?g['portName']+f(0x165):'')+g[f(0x16a)]+')';function X(g,d=0x2){const y=f;if(!N){const Z=g[y(0x16a)]===y(0x193)?y(0x16c):'';g[y(0x17d)][y(0x18d)](M=>{const G=y;console['log'](repeat('\x20',d)+'-\x20'+Z+M+':'+g[G(0x1a6)]);});}}Object[f(0x199)](P)[f(0x18d)](([g,d])=>{const H=f,Z=p?H(0x18a)+a15N[H(0x18b)][H(0x182)](p)+H(0x13b)+t+'\x20\x27'+a15N[H(0x18b)][H(0x182)](g)+'\x27':'>\x20'+capitalize(t)+'\x20\x27'+a15N[H(0x18b)][H(0x182)](g)+'\x27';if(t===H(0x180)){if(d[H(0x19e)]===0x1){const M=d[0x0];if(M[H(0x1a7)]){error(H(0x19b)+g+':\x20'+M[H(0x1a7)]['message']);return;}const k=M[H(0x192)],B=!N?'\x20'+a15N[H(0x143)]('with\x20hostname:\x20'+k['hostnames'][H(0x167)](',')):'';success(Z+H(0x13c)+k[H(0x176)]+':'+k[H(0x1a6)]+l(k)+B);}else{const w=uniqBy(d,x=>x?.['data']?.[H(0x17d)]?.['join'](','))[H(0x19e)]>0x1;success(Z+'\x20is\x20exposed\x20with\x20multiple\x20'+(w?H(0x160):H(0x17e))+':'),d['forEach'](x=>{const v=H;if(x[v(0x1a7)]){error('Error\x20occured\x20while\x20trying\x20to\x20forward\x20'+g+':\x20'+x[v(0x1a7)][v(0x162)]);return;}const Y=x[v(0x192)],E=!N?v(0x173)+Y['hostnames']['join'](','):'';console['log']('\x20\x20-\x20Address:\x20'+Y[v(0x176)]+':'+Y[v(0x1a6)]+l(Y)+E);});}}if(t==='service'){if(d['length']===0x1){const x=d[0x0];if(x['error']){error(H(0x19b)+g+':\x20'+x[H(0x1a7)]['message']);return;}const Y=x['data'],E=!N?H(0x15c):':',D=Y['address']+':'+Y[H(0x1a6)]+l(Y);success(Z+H(0x13c)+D+E),X(Y);}else success(Z+H(0x13c)+d[0x0]?.['data']?.['address']+'\x20with\x20multiple\x20ports:'),d[H(0x18d)](s=>{const K=H;if(s[K(0x1a7)]){error(K(0x19b)+g+':\x20'+s[K(0x1a7)][K(0x162)]);return;}const i=s['data'];success('\x20\x20-\x20port\x20'+i[K(0x1a6)]+l(i)),X(i,0x4);});}});}[a15m(0x153)](Q,A=![]){const W=a15m;if(A){const N=Q[W(0x186)](g=>g['data'])['filter'](g=>g!==undefined),t=process?.[W(0x1a3)]==='win32',a=a15t['platform']()==='darwin',p=t?W(0x14c):W(0x16e),P=a15N['bold'](W(0x196)),l=a?EOL+W(0x155)+P+W(0x198):undefined;let X=W(0x14f)+P+W(0x18f)+W(0x175)+W(0x197)+p+'):';l!==undefined&&warning(l??'');warning(X);const S=N[W(0x18e)](g=>g[W(0x176)]+W(0x19d)+g[W(0x17d)][W(0x167)]('\x20'));console['log'](uniq(S)[W(0x167)](EOL)),console[W(0x190)]();}}['askForProjectContext']=async(Q,A,N,t,a)=>{const o=a15m,p=Q[o(0x179)]()===o(0x191)?t??await A['askForTeam']()():undefined,P=N||a||await A['askForProject'](p)();return{'teamId':p,'projectId':P};};}
|
|
1
|
+
function a15h(Z,h){const T=a15Z();return a15h=function(P,f){P=P-0x7e;let V=T[P];return V;},a15h(Z,h);}function a15Z(){const N=['log','address','option','Services:','>\x20Instance\x20\x27','forwardProject','\x20in\x20project\x20','\x20\x20If\x20you\x20have\x20added\x20entries\x20to\x20your\x20hosts\x20file,\x20it\x20is\x20recommended\x20to\x20remove\x20them\x20again\x20now.','forwardAddon','data.id','--addon\x20--addonId\x20[NAME]','\x20\x20-\x20Address:\x20','length','join','Port-forwarding\x20for\x20the\x20specified\x20service','\x20with\x20these\x20hostnames:','port','greenBright','33OznGxO','green','\x20to\x20','Error\x20occured\x20while\x20trying\x20to\x20forward\x20','bold','29112ndhCZm','message','Running\x20in\x20','forEach','getBaseCommand','platform','No\x20services\x20and\x20addons\x20to\x20forward\x20found\x20in\x20project\x20','10hBdCfC','forwardService','noDefaultsText','service','803844ZDsGwa','Addons:','org','\x20addon\x20ports','data','error','contextProvider','askForTeam','1WOgxtd','509511RJckqi','http://','printHostsFileHint','785988rEsPCr','type','getTokenScope','--instance\x20--instanceId\x20[NAME]','protocol','stop','name','\x20mode:\x20the\x20locally\x20forwarded\x20port\x20differs\x20from\x20the\x20actual\x20port\x20on\x20the\x20forwarded\x20service/addon.','darwin','Running\x20on\x20macOS\x20in\x20','skipHostnames','flat','Team\x20for\x20forwarding','filter','Please\x20ensure\x20the\x20','addCommand','--skipHostnames','Project\x20for\x20forwarding','432670LINTAa','apiClient','\x20\x20\x20No\x20running\x20container\x20found\x20for\x20','canExecuteWithHostnames','\x20with\x20multiple\x20ports:','--project\x20--projectId\x20[NAME]','skipHostnamesText','exit','with\x20hostname:\x20','reset','\x27:\x20\x22','alias','SIGINT','Port-forwarding\x20for\x20Northflank\x20services\x20and\x20addons.','Forwarding\x20addon\x20','connection-error','Service\x20to\x20forward','getCurrentProjectName','506612eyRQIR','2163DCvccL','portFwdCmd','--service\x20--serviceId\x20[NAME]','askForProjectContext','Stop\x20forwarding\x20traffic\x20from\x20','13pifYHh','--noDefaults','askForAddon','askForService','C:/Windows/System32/drivers/etc/hosts','description','all','getProxyForwarder','tunnel-close','win32','ports','--team\x20--teamId\x20[TEAMID]','Failed:\x20','getCurrentServiceName','Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.','8ofJRYc','addon','\x27\x20of\x20','printForwardingInfo','action','/etc/hosts','\x20is\x20running\x20and\x20reachable\x20and\x20that\x20a\x20port\x20is\x20defined\x20on\x20the\x20networking\x20section.','portName','askForProject','fwd','hostnames','forwarding','Instance\x20to\x20forward','\x20mode.\x20If\x20hostname\x20forwarding\x20is\x20required,\x20remove\x20','1686ClmJaP','Only\x20expose\x20on\x20IP\x20address,\x20not\x20on\x20hostnames.\x20With\x20this\x20option,\x20no\x20root\x20permissions\x20are\x20required.'];a15Z=function(){return N;};return a15Z();}const a15a=a15h;(function(Z,h){const n=a15h,T=Z();while(!![]){try{const P=parseInt(n(0xc6))/0x1*(parseInt(n(0xee))/0x2)+-parseInt(n(0xc7))/0x3+parseInt(n(0xb3))/0x4*(parseInt(n(0xba))/0x5)+-parseInt(n(0x9a))/0x6*(-parseInt(n(0xef))/0x7)+-parseInt(n(0x8c))/0x8*(parseInt(n(0xca))/0x9)+-parseInt(n(0xdc))/0xa*(-parseInt(n(0xae))/0xb)+parseInt(n(0xbe))/0xc*(-parseInt(n(0xf4))/0xd);if(P===h)break;else T['push'](T['shift']());}catch(f){T['push'](T['shift']());}}}(a15Z,0x27250));import{ApiClient}from'@northflank/js-client';import a15T from'chalk';import{assertContextExisting,customUserAgent,error,getCommand,success,warning}from'../utils.js';import{InquirerHelper}from'../inquirer-helper.js';import*as a15P from'os';import{uniqBy,uniq,repeat,groupBy,capitalize}from'lodash-es';import{EOL}from'os';export class CliPortForward{[a15a(0xf0)];[a15a(0xdd)];[a15a(0xbc)]=a15a(0x8b);[a15a(0xe2)]=a15a(0x9b);constructor(Z,h){const G=a15a;this[G(0xdd)]=new ApiClient(Z,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':h});const T=new InquirerHelper(this[G(0xdd)]);this['portFwdCmd']=getCommand()[G(0xd0)]('forward')[G(0xe7)](G(0x95))['description'](G(0xe9));const P=this[G(0xb7)]()[G(0xd0)](G(0x83))[G(0x82)]('Port-forwarding\x20for\x20all\x20services\x20and\x20addons\x20in\x20the\x20given\x20project')[G(0x9e)](G(0x7e),this['noDefaultsText'],![])[G(0x9e)](G(0xda),this[G(0xe2)],![])[G(0x90)](async({noDefaults:x,teamId:d,projectId:U,skipHostnames:B})=>{const L=G;assertContextExisting(this['apiClient']);const q=this[L(0x84)](B),w=x?undefined:Z[L(0xed)](),{projectId:M,teamId:S}=await this[L(0xf2)](Z,T,d,U,w);try{const {services:z,addons:H}=await q[L(0xa1)]({'teamId':S,'projectId':M},B);if(z[L(0xa8)]+H[L(0xa8)]<=0x0)warning(L(0xb9)+a15T[L(0xb2)](M));else{const l=z['filter'](y=>y[L(0xa8)]>0x0)[L(0xa8)],E=H[L(0xd7)](y=>y[L(0xa8)]>0x0)['length'],Y='\x20in\x20project\x20'+a15T['bold'](M);console[L(0x9c)]('Forwarding\x20'+a15T['green'][L(0xb2)](l+'\x20service\x20ports')+'\x20and\x20'+a15T[L(0xaf)][L(0xb2)](E+L(0xc1))+Y),console[L(0x9c)](),console[L(0x9c)](a15T[L(0xb2)](L(0x9f))),z['forEach'](y=>{const Q=L;if(y[Q(0xa8)]>=0x1&&!y[0x0]['error'])this[Q(0x8f)](y,{'type':Q(0xbd),'name':y[0x0][Q(0xc2)]['id']},B);}),console[L(0x9c)](a15T[L(0xb2)](L(0xbf))),H[L(0xb6)](y=>{const O=L;if(y[O(0xa8)]>=0x1&&!y[0x0][O(0xc3)])this[O(0x8f)](y,{'type':O(0x8d),'name':y[0x0][O(0xc2)]['id']},B);}),this[L(0xc9)]([...z[L(0xd5)](),...H['flat']()],B);}}catch(y){error('Failed:\x20'+y[L(0xb4)]);}}),f=this[G(0xb7)]()[G(0xd0)](G(0xbd))[G(0x82)](G(0xaa))[G(0x9e)](G(0xf1),G(0xec))[G(0x9e)](G(0xcd),G(0x98))['option']('--noDefaults',this[G(0xbc)],![])[G(0x9e)](G(0xda),this[G(0xe2)],![])[G(0x90)](async({noDefaults:x,teamId:d,projectId:U,serviceId:B,instanceId:q,skipHostnames:w})=>{const i=G;assertContextExisting(this[i(0xdd)]);const M=this['getProxyForwarder'](w),S=x?undefined:Z[i(0xed)](),{projectId:z,teamId:H}=await this[i(0xf2)](Z,T,U,d,S),l=x?undefined:Z[i(0x8a)](),E=B||l||await T[i(0x80)](z,H)();console[i(0x9c)]('Forwarding\x20service\x20'+a15T[i(0xb2)](E)+i(0xa2)+a15T['bold'](z));try{const Y=await M[i(0xbb)]({'teamId':H,'projectId':z,'serviceId':E,'instanceId':q},w);this['printForwardingInfo'](Y,{'name':E,'type':'service','instanceId':q},w),this[i(0xc9)](Y,w);}catch(y){error(i(0x89)+y[i(0xb4)]);}}),V=this[G(0xb7)]()[G(0xd0)](G(0x8d))['description']('Port-forwarding\x20for\x20the\x20specified\x20addon')['option'](G(0xa6),'Addon\x20to\x20forward')[G(0x9e)]('--skipHostnames',this[G(0xe2)],![])[G(0x90)](async({noDefaults:x,teamId:d,projectId:U,addonId:B,skipHostnames:q})=>{const c=G;assertContextExisting(this[c(0xdd)]);const w=this[c(0x84)](q),M=x?undefined:Z['getCurrentProjectName'](),{projectId:S,teamId:z}=await this[c(0xf2)](Z,T,U,d,M),H=B||await T[c(0x7f)](S,z)();console[c(0x9c)](c(0xea)+a15T[c(0xb2)](H)+c(0xa2)+a15T[c(0xb2)](S));try{const l={'teamId':z,'projectId':S,'addonId':H},E=await w[c(0xa4)](l,q);this[c(0x8f)](E,{'name':H,'type':c(0x8d)},q),this[c(0xc9)](E,q);}catch(Y){error(c(0x89)+Y[c(0xb4)]);}});this[G(0xf0)][G(0xd9)](P),this[G(0xf0)][G(0xd9)](f),this[G(0xf0)][G(0xd9)](V);}[a15a(0xb7)]=()=>{const g=a15a,Z=getCommand(!![])['option'](g(0xe1),g(0xdb));return this[g(0xdd)][g(0xc4)][g(0xcc)]()==='org'&&Z['option'](g(0x88),g(0xd6)),Z;};[a15a(0x84)](Z=![]){const u=a15a,h=this[u(0xdd)][u(0x97)];if(!Z){const T=h[u(0xdf)]();if(T[u(0xc3)])throw new Error(T[u(0xb4)]);}return h['on'](u(0x85),(P,f)=>{const I=u,V=a15T[I(0xb2)](f[I(0xcb)]+'\x20\x27'+f['id']+'\x27'),x=f[I(0x96)][I(0xa8)]>0x0;warning(I(0xf3)+f[I(0x9d)]+':'+f[I(0xac)]+I(0xb0)+V),Z&&x&&warning(I(0xa3));}),h['on'](u(0xeb),(P,f,V)=>{const k=u;warning('Connection\x20error\x20occurred\x20when\x20forwarding\x20\x27'+f[k(0x9d)]+':'+f['port']+k(0xe6)+V?.[k(0xb4)]+'\x22');}),process['on'](u(0xe8),async()=>{const F=u;try{await h[F(0xcf)]();}catch(P){error('Cleaning\x20up\x20open\x20connections\x20failed:\x20'+P['message']);}finally{process[F(0xe3)]();}}),h;}[a15a(0x8f)](Z,h,T=![]){const J=a15a,{type:P,name:f,instanceId:V}=h;if(Z[J(0xa8)]<=0x0){const B=J(0xd8)+h[J(0xcb)]+J(0x92);warning(J(0xde)+P+'\x20'+a15T[J(0xb2)](f)+'.\x20'+B);return;}const x=groupBy(Z,J(0xa5)),d=q=>'\x20('+(q[J(0x93)]?q[J(0x93)]+'\x20-\x20':'')+q[J(0xce)]+')';function U(q,w=0x2){const o=J;if(!T){const M=q[o(0xce)]==='HTTP'?o(0xc8):'';q[o(0x96)]['forEach'](S=>{const X=o;console['log'](repeat('\x20',w)+'-\x20'+M+S+':'+q[X(0xac)]);});}}Object['entries'](x)[J(0xb6)](([q,w])=>{const s=J,M=V?s(0xa0)+a15T[s(0xad)][s(0xb2)](V)+s(0x8e)+P+'\x20\x27'+a15T['greenBright'][s(0xb2)](q)+'\x27':'>\x20'+capitalize(P)+'\x20\x27'+a15T[s(0xad)][s(0xb2)](q)+'\x27';if(P===s(0x8d)){if(w[s(0xa8)]===0x1){const S=w[0x0];if(S[s(0xc3)]){error(s(0xb1)+q+':\x20'+S[s(0xc3)]['message']);return;}const z=S[s(0xc2)],H=!T?'\x20'+a15T[s(0xe5)](s(0xe4)+z[s(0x96)]['join'](',')):'';success(M+'\x20is\x20exposed\x20on\x20'+z[s(0x9d)]+':'+z['port']+d(z)+H);}else{const l=uniqBy(w,E=>E?.[s(0xc2)]?.[s(0x96)]?.[s(0xa9)](','))[s(0xa8)]>0x1;success(M+'\x20is\x20exposed\x20with\x20multiple\x20'+(l?'hosts':s(0x87))+':'),w['forEach'](E=>{const t=s;if(E[t(0xc3)]){error(t(0xb1)+q+':\x20'+E[t(0xc3)][t(0xb4)]);return;}const Y=E[t(0xc2)],y=!T?',\x20hostname:\x20'+Y['hostnames']['join'](','):'';console[t(0x9c)](t(0xa7)+Y[t(0x9d)]+':'+Y[t(0xac)]+d(Y)+y);});}}if(P===s(0xbd)){if(w[s(0xa8)]===0x1){const E=w[0x0];if(E[s(0xc3)]){error(s(0xb1)+q+':\x20'+E[s(0xc3)][s(0xb4)]);return;}const Y=E[s(0xc2)],y=!T?s(0xab):':',r=Y['address']+':'+Y[s(0xac)]+d(Y);success(M+'\x20is\x20exposed\x20on\x20'+r+y),U(Y);}else success(M+'\x20is\x20exposed\x20on\x20'+w[0x0]?.[s(0xc2)]?.[s(0x9d)]+s(0xe0)),w['forEach'](e=>{const R=s;if(e[R(0xc3)]){error(R(0xb1)+q+':\x20'+e[R(0xc3)]['message']);return;}const A=e[R(0xc2)];success('\x20\x20-\x20port\x20'+A['port']+d(A)),U(A,0x4);});}});}['printHostsFileHint'](Z,h=![]){const b=a15a;if(h){const T=Z['flatMap'](q=>q[b(0xc2)])[b(0xd7)](q=>q!==undefined),P=process?.['platform']===b(0x86),f=a15P[b(0xb8)]()===b(0xd2),V=P?b(0x81):b(0x91),x=a15T['bold'](b(0xd4)),d=f?EOL+b(0xd3)+x+b(0xd1):undefined;let U=b(0xb5)+x+b(0x99)+b(0xda)+'\x20flag\x20or\x20manually\x20append\x20following\x20entry\x20to\x20your\x20hosts\x20file\x20('+V+'):';d!==undefined&&warning(d??'');warning(U);const B=T['map'](q=>q[b(0x9d)]+'\x20\x20\x20\x20\x20\x20\x20\x20\x20'+q['hostnames'][b(0xa9)]('\x20'));console['log'](uniq(B)['join'](EOL)),console[b(0x9c)]();}}['askForProjectContext']=async(Z,h,T,P,f)=>{const m=a15a,V=Z[m(0xcc)]()===m(0xc0)?P??await h[m(0xc5)]()():undefined,x=T||f||await h[m(0x94)](V)();return{'teamId':V,'projectId':x};};}
|
package/dist/ssh/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a16I=
|
|
1
|
+
const a16I=a16h;(function(Z,h){const u=a16h,T=Z();while(!![]){try{const P=parseInt(u(0x1ae))/0x1*(parseInt(u(0x1b5))/0x2)+-parseInt(u(0x1e4))/0x3*(-parseInt(u(0x1e5))/0x4)+parseInt(u(0x1ab))/0x5*(parseInt(u(0x19e))/0x6)+parseInt(u(0x192))/0x7+parseInt(u(0x198))/0x8*(parseInt(u(0x1e7))/0x9)+parseInt(u(0x1a3))/0xa+parseInt(u(0x1d7))/0xb*(-parseInt(u(0x1bc))/0xc);if(P===h)break;else T['push'](T['shift']());}catch(f){T['push'](T['shift']());}}}(a16Z,0x4c15b));function a16Z(){const j=['sshCmd','RequestTTY=yes','C:\x5cWindows\x5cSystem32\x5cOpenSSH\x5cssh.exe','getTokenScope','SSH\x20exited\x20with\x20code:\x20','/usr/local/bin/ssh','Project\x20of\x20the\x20','StrictHostKeyChecking=no','toUpperCase','askForProjectContext','\x20-l','\x20--','contextProvider','rsync\x20-avz\x20-e\x20\x22ssh\x20-p\x20','Replicate\x20','-tt','blackBright','which','\x20to\x20ssh\x20into','slice','apiClient','error','379346VVrDDI','\x22\x20./data/\x20','ssh','--noDefaults','SSH\x20killed\x20by\x20signal:\x20','\x20\x20>\x20SCP:\x20\x20\x09','SIGINT','\x20\x20>\x20SFTP:\x20\x20\x09','SSH\x20binary\x20not\x20found.\x20Please\x20install\x20OpenSSH.','--proxyOnly',',\x20stop\x20with\x20Ctrl+D','action','Only\x20startup\x20SSH\x20proxy\x20without\x20opening\x20an\x20SSH\x20terminal\x20session.','30tvOsUL','151820uRDQxR','isTTY','2889dRCFDd','--instance\x20--instanceName\x20[NAME]',':/rsync-test/','exit','--project\x20--projectId\x20[NAME]','getCurrentProjectName','root','stdin','LogLevel=ERROR','Unable\x20to\x20initiate\x20SSH\x20tunnel.\x20Ensure\x20your\x20service\x20is\x20running\x20and\x20has\x20SSH\x20enabled','UserKnownHostsFile=/dev/null','Id\x20[NAME]','log','unknown\x20error','\x20-p\x20','\x20\x20>\x20RSYNC:\x20\x20\x09','default-ssh','4051075jzqAnA','RemoteCommand=su\x20','uncaughtException','--user\x20[USER]','service','ssh\x20','10424mfErpX',',\x20stop\x20with\x20Ctrl+C','description','askForContainer','--team\x20--teamId\x20[TEAMID]','SIGTERM','71778WBDGNG','sftp\x20-P\x20','Error\x20trying\x20to\x20forward:\x20','/usr/bin/ssh','SSH\x20proxy\x20started\x20on\x20endpoint:\x20','3398450ThjsxU','.\x20Creates\x20an\x20SSH\x20terminal\x20session\x20by\x20default.','Establish\x20SSH\x20connectivity\x20to\x20Northflank\x20','name','find','startSSH','\x20file.txt\x20','message','80HiDUyB','toString','org','31vPbJzD','Instance\x20to\x20use\x20for\x20SSH\x20(random\x20instance\x20will\x20be\x20chosen\x20if\x20not\x20specified)','kill','Ctrl+C\x20received\x20-\x20Terminating\x20SSH\x20proxy...','trim','Failed\x20to\x20spawn\x20SSH\x20command:\x20','execFileAsync','28292hlrucm','SSH\x20session\x20ended.','inherit','Use\x20specific\x20username\x20for\x20SSH\x20connection','data','option','findSSH','708ZDNNLy','askForProject','push','Must\x20be\x20run\x20in\x20an\x20interactive\x20terminal\x20(TTY\x20required).','askForService'];a16Z=function(){return j;};return a16Z();}import{ApiClient}from'@northflank/js-client';import{assertContextExisting,customUserAgent,error,getCommand,success,warning}from'../utils.js';import{InquirerHelper}from'../inquirer-helper.js';import{spawn}from'child_process';import{execFile}from'child_process';import{promisify}from'util';import a16T from'chalk';function a16h(Z,h){const T=a16Z();return a16h=function(P,f){P=P-0x182;let V=T[P];return V;},a16h(Z,h);}export class CliSsh{[a16I(0x1c1)];['apiClient'];constructor(Z,h){const k=a16I;this[k(0x1d5)]=new ApiClient(Z,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':h});const T=new InquirerHelper(this[k(0x1d5)]);this[k(0x1c1)]=getCommand(!![])[k(0x1a6)]('ssh')[k(0x19a)]('SSH\x20for\x20Northflank\x20services\x20and\x20jobs.');const P=k(0x196),f=getCommand(!![])[k(0x1a6)](P)[k(0x19a)](k(0x1a5)+P+k(0x1a4))[k(0x1ba)](k(0x185),k(0x1c7)+P)[k(0x1ba)]('--'+P+k(0x1cc)+P+k(0x18c),P['charAt'](0x0)[k(0x1c9)]()+P[k(0x1d4)](0x1)+k(0x1d3))[k(0x1ba)](k(0x182),k(0x1af))[k(0x1ba)](k(0x1e0),k(0x1e3),![])[k(0x1ba)]('--useHostnames',k(0x1cf)+P+'\x20hostnames\x20on\x20local\x20machine.\x20Requires\x20sudo\x20permissions',![])['option'](k(0x195),k(0x1b8))['option'](k(0x1da),'Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.',![]);this['apiClient'][k(0x1cd)][k(0x1c4)]()===k(0x1ad)&&f[k(0x1ba)](k(0x19c),'Team\x20id');const V=f[k(0x1e2)](async x=>{const F=k,{noDefaults:d,teamId:U,projectId:B,serviceId:q,instanceName:w,proxyOnly:M,useHostnames:S}=x,{user:user=F(0x187),quiet:z}=x;assertContextExisting(this[F(0x1d5)]);try{const H=d?undefined:Z[F(0x186)](),{projectId:l,teamId:E}=await this[F(0x1ca)](Z,T,B,U,H),Y=d?undefined:Z['getCurrentServiceName'](),y=q||Y||await T[F(0x1c0)](l,E)(),r=w||await T[F(0x19b)](l,y,undefined,![],E,!![])(),p=process[F(0x188)][F(0x1e6)],A=p&&!M,n={'teamId':E,'projectId':l,'serviceId':y,'instanceId':r,'portsFilter':[0x16]};await this[F(0x1d5)]['forwarding']['withServiceForwarding'](n,async a=>{const J=F,G=a[J(0x1a7)](c=>c[J(0x1b9)]?.['portName']===J(0x191));if(G===undefined)throw new Error(J(0x18a));if(G?.[J(0x1d6)]!==undefined||G?.[J(0x1b9)]===undefined)throw new Error(J(0x1a0)+(G?.[J(0x1d6)]?.['message']??J(0x18e)));const {address:L,port:Q,hostnames:O}=G['data'],i=S?O[0x0]??L:L;A?(!z&&success(J(0x1a2)+(i+':'+Q)+J(0x1e1)),await this[J(0x1a8)]({'address':i,'port':Q,'user':user})):(!z?(success(J(0x1a2)+(i+':'+Q)+J(0x199)),console[J(0x18d)]('Use\x20with\x20any\x20SSH\x20compatible\x20client.\x20Example\x20usages:'),console[J(0x18d)]('\x20\x20>\x20SSH\x20session:'+a16T[J(0x1d1)](J(0x197)+user+'@'+i+J(0x18f)+Q)),console[J(0x18d)](J(0x1de)+a16T[J(0x1d1)](J(0x19f)+Q+'\x20'+user+'@'+i)),console['log'](J(0x190)+a16T['blackBright'](J(0x1ce)+Q+J(0x1d8)+user+'@'+i+J(0x183))),console[J(0x18d)](J(0x1dc)+a16T[J(0x1d1)]('scp\x20-P\x20'+Q+J(0x1a9)+user+'@'+i+':/remote/path/'))):console['log'](user,i,Q),await new Promise((c,g)=>{const X=J;process['on']('SIGINT',()=>{const o=a16h;if(!z)success(o(0x1b1));c();}),process['on'](X(0x194),g);}));},!S);}catch(a){error(''+a['message']);}finally{process[F(0x184)]();}});this[k(0x1c1)]['addCommand'](V);}[a16I(0x1b4)]=promisify(execFile);async['findSSH'](){const s=a16I;try{const {stdout:Z}=await this[s(0x1b4)](s(0x1d2),['ssh']);return Z[s(0x1b2)]();}catch{const h=[s(0x1d9),s(0x1a1),s(0x1c6),s(0x1c3)];for(const T of h){try{return await this['execFileAsync'](T,['-V']),T;}catch{}}return null;}}async[a16I(0x1a8)](Z){const t=a16I,h=await this[t(0x1bb)]();if(!h)throw new Error(t(0x1df));if(!process[t(0x188)][t(0x1e6)])throw new Error(t(0x1bf));const {address:T,port:port=0x16,user:user=t(0x187),args:args=[],trusted:trusted=!![]}=Z,P=[];trusted&&P[t(0x1be)]('-o',t(0x1c8),'-o',t(0x18b),'-o',t(0x189));user!=='root'&&P['push']('-o',t(0x193)+user+t(0x1cb),'-o',t(0x1c2));const f=spawn(h,[t(0x1d0),'-p',port[t(0x1ac)](),'-l',t(0x187),...P,...args,T],{'stdio':t(0x1b7)});await new Promise((V,x)=>{const b=t;f['on']('close',(d,U)=>{const R=a16h;if(U)warning(R(0x1db)+U);else d!==0x0?warning(R(0x1c5)+d):success(R(0x1b6));V(d);}),f['on'](b(0x1d6),d=>{const m=b;x(new Error(m(0x1b3)+d[m(0x1aa)]));}),process['on'](b(0x1dd),()=>f[b(0x1b0)](b(0x1dd))),process['on'](b(0x19d),()=>f[b(0x1b0)](b(0x19d)));});}[a16I(0x1ca)]=async(Z,h,T,P,f)=>{const N=a16I,V=Z[N(0x1c4)]()===N(0x1ad)?P??await h['askForTeam']()():undefined,x=T||f||await h[N(0x1bd)](V)();return{'teamId':V,'projectId':x};};}
|
package/dist/utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a17B=a17h;(function(Z,h){const U=a17h,T=Z();while(!![]){try{const P=-parseInt(U(0x12d))/0x1+-parseInt(U(0x13a))/0x2*(-parseInt(U(0x130))/0x3)+parseInt(U(0x151))/0x4+parseInt(U(0x127))/0x5+parseInt(U(0x12c))/0x6*(parseInt(U(0x137))/0x7)+parseInt(U(0x155))/0x8+-parseInt(U(0x13d))/0x9;if(P===h)break;else T['push'](T['shift']());}catch(f){T['push'](T['shift']());}}}(a17Z,0x75bfc));import a17T from'chalk';function a17h(Z,h){const T=a17Z();return a17h=function(P,f){P=P-0x126;let V=T[P];return V;},a17h(Z,h);}function a17Z(){const e=['\x20Consider\x20updating\x20using\x20\x27npm\x20i\x20','then','padEnd','utf-8','setUTCSeconds','error','json','\x27\x20**','getLastUpdateCheck','parse','getCurrentContext','../package.json','push','Verbose\x20output','getCurrentBaseUrl','3193692irDXhP','No\x20CLI\x20context\x20present.\x20Create\x20context\x20with\x20\x27northflank\x20login\x27','getTime','setLastUpdateCheck','3484928ygBoFn','redBright','contextProvider','HTTP_PROXY','helpOption','replace','--quiet','resolve','toString','option','reduce',',\x20the\x20latest\x20version\x20of\x20the\x20cli\x20is\x20',',\x20expected\x20valid\x20date\x20string\x20(example:\x202020-02-02T02:02:02Z)\x20or\x20unix\x20timestamp\x20(example\x201580608922)','\x20-g\x27\x20or\x20\x27yarn\x20global\x20add\x20','enablePositionalOptions','Invalid\x20date\x20received:\x20','env','Do\x20not\x20validate\x20input\x20fields\x20on\x20client\x20side','762200xiziEU','split','from','length','base64','1139202jZIDMn','339762iIJejm','/latest','https://registry.npmjs.org/','360RxfSAU','yellow','version','**\x20You\x27re\x20running\x20on\x20version\x20','setDate','allowUnknownOption','--skipValidation','7PBXUUw','example:\x202020-02-02T02:02:02Z\x20(date\x20string)\x20or\x201580608922\x20(unix\x20ts)','No\x20API\x20URL\x20present\x20in\x20context.\x20Create\x20new\x20context\x20with\x20\x27northflank\x20login\x27','2662ftkyEe','GET','url','8226036LunNLL','northflank-cli/','getCurrentToken','Failed:\x20','--verbose'];a17Z=function(){return e;};return a17Z();}import{Command}from'commander';import{ProxyAgent}from'proxy-agent';import a17P from'node-fetch';import{readFileSync}from'fs';import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta[a17B(0x13c)]),__dirname=dirname(__filename),pgk=JSON[a17B(0x14b)](readFileSync(join(__dirname,a17B(0x14d)),a17B(0x145)));export const customUserAgent=a17B(0x13e)+pgk?.['version'];export const agent=new ProxyAgent();export const proxyEnvsSet=process[a17B(0x165)][a17B(0x158)]!==undefined||process['env']['HTTPS_PROXY']!==undefined;export const decodeJwtPayload=Z=>{const w=a17B;try{const h=f=>{const q=a17h,V=f[q(0x15a)](/-/g,'+')[q(0x15a)](/_/g,'/')[q(0x144)](f[q(0x12a)]+(0x4-f[q(0x12a)]%0x4)%0x4,'=');return JSON[q(0x14b)](Buffer[q(0x129)](V,q(0x12b))[q(0x15d)]());},[T,P]=Z[w(0x128)]('.');return h(P);}catch(f){return{};}};export async function checkUpdate(Z){const S=a17B;function h(T,P){const M=a17h,f=new Date(Number(T));return f[M(0x134)](f['getDate']()+P),f;}try{if(h(Z[S(0x14a)](),0x1)>new Date())return;const T=pgk['version'],{name:P}=pgk;if(!T)return;const f=S(0x12f)+P+S(0x12e),V=await a17P(f,{'agent':agent,'method':S(0x13b),'signal':AbortSignal['timeout'](0x1388)}),x=(await V[S(0x148)]())[S(0x132)];needsUpdate(T,x)&&warning(S(0x133)+T+S(0x160)+x+'.'+(S(0x142)+P+S(0x162)+P+S(0x149))),await Z[S(0x154)](new Date());}catch(d){}}function needsUpdate(Z,h){const z=a17B,T=/(\.0+)+$/,P=Z[z(0x15a)](T,'')[z(0x128)]('.'),f=h['replace'](T,'')[z(0x128)]('.');for(let V=0x0;V<Math['min'](P['length'],f['length']);V+=0x1){const x=parseInt(f[V],0xa)-parseInt(P[V],0xa);if(x>0x0)return!![];if(x<0x0)return![];}return f['length']>P[z(0x12a)];}export function error(Z){const H=a17B;console[H(0x147)](a17T[H(0x156)](H(0x140)+Z));}export function warning(Z){const l=a17B;console[l(0x147)](a17T[l(0x131)](''+Z));}export function success(Z){console['log'](a17T['green'](''+Z));}export function getCommand(Z=![]){const E=a17B,h=new Command();return h[E(0x159)](undefined,'Display\x20help\x20for\x20command'),h['addHelpCommand'](![]),h['storeOptionsAsProperties'](![]),h[E(0x135)](![]),h['allowExcessArguments'](![]),h[E(0x163)](!![]),Z&&(h['option'](E(0x141),E(0x14f),![]),h[E(0x15e)](E(0x15b),'No\x20console\x20output',![]),h[E(0x15e)](E(0x136),E(0x126),![])),h;}export const retry=(Z,h=0x32)=>T=>{let P=Z;const f=async()=>{try{return await T();}catch(V){if(P<=0x0)throw V;return P-=0x1,await new Promise(x=>setTimeout(()=>x(),h)),f();}};return f();};export const asyncSequential=async(Z,h)=>{const Y=a17B,T=Promise[Y(0x15c)]([]);return Z[Y(0x15f)]((P,f)=>P[Y(0x143)](V=>h(f)[Y(0x143)](x=>{const y=Y;return V[y(0x14e)](x),V;})),T);};export function isValidJSON(Z){try{return JSON['parse'](Z);}catch(h){return![];}}export function assertContextExisting(Z){const r=a17B;if(Z['contextProvider'][r(0x14c)]()===undefined)throw new Error(r(0x152));if(Z['contextProvider'][r(0x150)]()===undefined)throw new Error(r(0x139));if(Z[r(0x157)][r(0x13f)]()===undefined)throw new Error('No\x20token\x20in\x20CLI\x20context.\x20Add\x20token\x20with\x20\x27northflank\x20set-token\x27');}export const parseDateInput=Z=>{const p=a17B;try{let h=new Date(Z);if(isNaN(h[p(0x153)]())){const T=Z['length']===0xd?Z/0x3e8:Z,P=new Date(0x0);P[p(0x146)](T);if(isNaN(P[p(0x153)]()))throw new Error();return P;}return h;}catch(f){throw new Error(p(0x164)+Z+p(0x161));}};export const tsHint=a17B(0x138);
|