@northflank/cli 0.11.0 → 0.11.1
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 +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a14M=a14V;(function(e,V){const E=a14V,b=e();while(!![]){try{const G=parseInt(E(0x14b))/0x1*(-parseInt(E(0x13d))/0x2)+-parseInt(E(0x145))/0x3+-parseInt(E(0x139))/0x4*(parseInt(E(0x142))/0x5)+parseInt(E(0x13f))/0x6*(-parseInt(E(0x152))/0x7)+parseInt(E(0x147))/0x8+parseInt(E(0x14d))/0x9+parseInt(E(0x148))/0xa;if(G===V)break;else b['push'](b['shift']());}catch(a){b['push'](b['shift']());}}}(a14e,0xd7acb));function a14V(e,V){const b=a14e();return a14V=function(G,a){G=G-0x139;let m=b[G];return m;},a14V(e,V);}import a14b from'inquirer/lib/prompts/list.js';import a14G from'inquirer/lib/objects/choice.js';function a14e(){const z=['map','realLength','1210424ddxVIu','italic','onUpKey','down','200CIRFfG','name','6wSbZyb','opt','choices','15ztmKjL','dir\x20must\x20be\x20up\x20or\x20down','loading','969498NPEUHb','selected','5750880hJkweq','23570000EGhUGo','catch','nextPageCursor','11710dfGtEX','\x20Loading\x20more\x20options','7966476BPtCmT','render','push','pagOpt','length','4729459exoBLe','reloadText','handleDynamicPageLoad','..\x20Load\x20more\x20options\x20..','loadMore','loop'];a14e=function(){return z;};return a14e();}import a14a from'chalk';function incrementListIndex(e,V,b){const W=a14V,G=b['choices'][W(0x159)],a=W(0x157)in b?Boolean(b['loop']):!![];if(V==='up'){if(e>0x0)return e-0x1;return a?G-0x1:e;}if(V===W(0x13c)){if(e<G-0x1)return e+0x1;return a?0x0:e;}throw new Error(W(0x143));}export class DynamicReloadPaginationPrompt extends a14b{[a14M(0x153)]=a14a[a14M(0x13a)](a14M(0x155));[a14M(0x150)];[a14M(0x144)]=![];[a14M(0x14a)];constructor(e,V,b){const Q=a14M;super(e,V,b),this['pagOpt']=this[Q(0x140)],this[Q(0x14a)]=this['pagOpt'][Q(0x14a)],this[Q(0x14a)]!==undefined&&this[Q(0x140)][Q(0x141)]['push'](new a14G(this[Q(0x153)],this['reloadText']));}[a14M(0x13b)](){const k=a14M;if(this[k(0x144)])return;this['selected']=incrementListIndex(this['selected'],'up',this['opt']),this[k(0x14e)]();}async['onDownKey'](){const r=a14M;if(this[r(0x144)])return;this[r(0x146)]=incrementListIndex(this['selected'],r(0x13c),this[r(0x140)]),await this[r(0x154)](),this[r(0x14e)]();}async['handleDynamicPageLoad'](){const U=a14M;if(this['selected']>=this[U(0x140)][U(0x141)][U(0x151)]-0x1){if(this[U(0x14a)]===undefined)return;this[U(0x144)]=!![];let e=0x0;const V=setInterval(()=>{const S=U,m=['⠋','⠙','⠹','⠸','⠼','⠴','⠦','⠧','⠇','⠏'],O=a14a[S(0x13a)](m[e%m[S(0x151)]]+S(0x14c));this[S(0x140)][S(0x141)][S(0x141)][this['selected']][S(0x13e)]=''+O,e+=0x1,this[S(0x14e)]();},0x50),{elements:b,nextPageCursor:G}=await this['pagOpt'][U(0x156)]({'nextPageCursor':this[U(0x14a)]})[U(0x149)](()=>({'elements':[],'nextPageCursor':undefined}));this[U(0x14a)]=G;const a=b[U(0x158)](m=>new a14G(m,m));this[U(0x140)]['choices']['choices']['splice'](this['selected'],0x1),this[U(0x140)]['choices']['push'](...a),G!==undefined&&this[U(0x140)][U(0x141)][U(0x14f)](new a14G(this['reloadText'],this[U(0x153)])),clearInterval(V),this[U(0x144)]=![];}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a15B=a15e;(function(l,e){const F=a15e,s=l();while(!![]){try{const f=parseInt(F(0x11a))/0x1*(parseInt(F(0x168))/0x2)+-parseInt(F(0x166))/0x3+parseInt(F(0x14f))/0x4*(-parseInt(F(0x159))/0x5)+parseInt(F(0x129))/0x6*(parseInt(F(0x154))/0x7)+-parseInt(F(0x17b))/0x8+parseInt(F(0x17d))/0x9*(parseInt(F(0x152))/0xa)+parseInt(F(0x16f))/0xb;if(f===e)break;else s['push'](s['shift']());}catch(i){s['push'](s['shift']());}}}(a15l,0x7bb1a));function a15e(l,e){const s=a15l();return a15e=function(f,i){f=f-0x109;let c=s[f];return c;},a15e(l,e);}import{ApiClient}from'@northflank/js-client';import a15s from'chalk';import{assertContextExisting,customUserAgent,error,getCommand,success,warning}from'../utils.js';import{InquirerHelper}from'../inquirer-helper.js';import*as a15f from'os';function a15l(){const n=['address','service','askForAddon','--addon\x20--addonId\x20[NAME]','Forwarding\x20','forward','>\x20Instance\x20\x27','platform','connection-error','\x20\x20-\x20Address:\x20','askForProjectContext','name','Forwarding\x20service\x20','log','askForProject','--noDefaults','getCurrentServiceName','entries','noDefaultsText','flatMap','Forwarding\x20addon\x20','length','124KoSLfD','\x20is\x20exposed\x20on\x20','stop','890150NCenbc','action','133IUezIQ','askForService','\x20flag\x20or\x20manually\x20append\x20following\x20entry\x20to\x20your\x20hosts\x20file\x20(','forEach','\x27:\x20\x22','21355ZZpZJZ',',\x20hostname:\x20','Stop\x20forwarding\x20traffic\x20from\x20','greenBright','\x20with\x20these\x20hostnames:','option','win32','hosts','Project\x20for\x20forwarding','Failed:\x20','green','No\x20services\x20and\x20addons\x20to\x20forward\x20found\x20in\x20project\x20','--instance\x20--instanceId\x20[NAME]','1471299ljtwLC','skipHostnames','5418iGgFMb','\x20in\x20project\x20','data','Team\x20for\x20forwarding','/etc/hosts','description','\x20and\x20','5211019yvOEhT','\x20mode:\x20the\x20locally\x20forwarded\x20port\x20differs\x20from\x20the\x20actual\x20port\x20on\x20the\x20forwarded\x20service/addon.','tunnel-close','--skipHostnames','protocol','Services:','forwardProject','addCommand','bold','askForTeam','reset','Cleaning\x20up\x20open\x20connections\x20failed:\x20','8079744ZrxGHW','printForwardingInfo','9MkPDbQ','Port-forwarding\x20for\x20the\x20specified\x20service','fwd','alias','\x20addon\x20ports','\x20\x20-\x20port\x20','http://','--team\x20--teamId\x20[TEAMID]','\x20\x20\x20\x20\x20\x20\x20\x20\x20','Addons:','Connection\x20error\x20occurred\x20when\x20forwarding\x20\x27','getProxyForwarder','Service\x20to\x20forward','Addon\x20to\x20forward','forwardService','forwarding','contextProvider','portFwdCmd','skipHostnamesText','darwin','Error\x20occured\x20while\x20trying\x20to\x20forward\x20','331YfAVIa','addon','hostnames','portName','Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.','getBaseCommand','canExecuteWithHostnames','\x20with\x20multiple\x20ports:','\x20-\x20','SIGINT','\x20mode.\x20If\x20hostname\x20forwarding\x20is\x20required,\x20remove\x20','\x20\x20\x20No\x20running\x20container\x20found\x20for\x20','error','flat','Port-forwarding\x20for\x20all\x20services\x20and\x20addons\x20in\x20the\x20given\x20project','214746VhwbDs','getCurrentProjectName','port','apiClient','C:/Windows/System32/drivers/etc/hosts','--project\x20--projectId\x20[NAME]','Running\x20on\x20macOS\x20in\x20','filter','data.id','join','getTokenScope','Please\x20ensure\x20the\x20','message','org','printHostsFileHint','type'];a15l=function(){return n;};return a15l();}import{uniqBy,uniq,repeat,groupBy,capitalize}from'lodash-es';import{EOL}from'os';export class CliPortForward{['portFwdCmd'];[a15B(0x12c)];['noDefaultsText']=a15B(0x11e);[a15B(0x117)]='Only\x20expose\x20on\x20IP\x20address,\x20not\x20on\x20hostnames.\x20With\x20this\x20option,\x20no\x20root\x20permissions\x20are\x20required.';constructor(l,e){const k=a15B;this[k(0x12c)]=new ApiClient(l,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':e});const s=new InquirerHelper(this['apiClient']);this[k(0x116)]=getCommand()[k(0x144)](k(0x13e))[k(0x180)](k(0x17f))[k(0x16d)]('Port-forwarding\x20for\x20Northflank\x20services\x20and\x20addons.');const f=this['getBaseCommand']()[k(0x144)]('all')[k(0x16d)](k(0x128))['option'](k(0x148),this[k(0x14b)],![])[k(0x15e)]('--skipHostnames',this[k(0x117)],![])['action'](async({noDefaults:a,teamId:D,projectId:Y,skipHostnames:T})=>{const v=k;assertContextExisting(this['apiClient']);const b=this[v(0x110)](T),q=a?undefined:l[v(0x12a)](),{projectId:t,teamId:J}=await this['askForProjectContext'](l,s,D,Y,q);try{const {services:N,addons:Z}=await b[v(0x175)]({'teamId':J,'projectId':t},T);if(N[v(0x14e)]+Z['length']<=0x0)warning(v(0x164)+a15s[v(0x177)](t));else{const x=N[v(0x130)](o=>o['length']>0x0)[v(0x14e)],g=Z[v(0x130)](o=>o[v(0x14e)]>0x0)[v(0x14e)],S=v(0x169)+a15s[v(0x177)](t);console[v(0x146)](v(0x13d)+a15s[v(0x163)][v(0x177)](x+'\x20service\x20ports')+v(0x16e)+a15s[v(0x163)][v(0x177)](g+v(0x109))+S),console[v(0x146)](),console['log'](a15s[v(0x177)](v(0x174))),N[v(0x157)](o=>{const r=v;if(o[r(0x14e)]>=0x1&&!o[0x0][r(0x126)])this['printForwardingInfo'](o,{'type':r(0x13a),'name':o[0x0]['data']['id']},T);}),console[v(0x146)](a15s['bold'](v(0x10e))),Z[v(0x157)](o=>{const W=v;if(o[W(0x14e)]>=0x1&&!o[0x0][W(0x126)])this['printForwardingInfo'](o,{'type':'addon','name':o[0x0][W(0x16a)]['id']},T);}),this[v(0x137)]([...N[v(0x127)](),...Z[v(0x127)]()],T);}}catch(o){error('Failed:\x20'+o['message']);}}),i=this[k(0x11f)]()['name'](k(0x13a))[k(0x16d)](k(0x17e))[k(0x15e)]('--service\x20--serviceId\x20[NAME]',k(0x111))[k(0x15e)](k(0x165),'Instance\x20to\x20forward')[k(0x15e)](k(0x148),this['noDefaultsText'],![])['option'](k(0x172),this[k(0x117)],![])[k(0x153)](async({noDefaults:a,teamId:D,projectId:Y,serviceId:T,instanceId:b,skipHostnames:q})=>{const u=k;assertContextExisting(this[u(0x12c)]);const t=this[u(0x110)](q),J=a?undefined:l[u(0x12a)](),{projectId:N,teamId:Z}=await this[u(0x143)](l,s,Y,D,J),x=a?undefined:l[u(0x149)](),g=T||x||await s[u(0x155)](N,Z)();console[u(0x146)](u(0x145)+a15s[u(0x177)](g)+u(0x169)+a15s['bold'](N));try{const S=await t[u(0x113)]({'teamId':Z,'projectId':N,'serviceId':g,'instanceId':b},q);this[u(0x17c)](S,{'name':g,'type':'service','instanceId':b},q),this[u(0x137)](S,q);}catch(o){error(u(0x162)+o[u(0x135)]);}}),c=this['getBaseCommand']()[k(0x144)](k(0x11b))[k(0x16d)]('Port-forwarding\x20for\x20the\x20specified\x20addon')[k(0x15e)](k(0x13c),k(0x112))[k(0x15e)](k(0x172),this['skipHostnamesText'],![])[k(0x153)](async({noDefaults:a,teamId:D,projectId:Y,addonId:T,skipHostnames:b})=>{const V=k;assertContextExisting(this['apiClient']);const q=this[V(0x110)](b),t=a?undefined:l[V(0x12a)](),{projectId:J,teamId:N}=await this[V(0x143)](l,s,Y,D,t),Z=T||await s[V(0x13b)](J,N)();console['log'](V(0x14d)+a15s[V(0x177)](Z)+V(0x169)+a15s[V(0x177)](J));try{const x={'teamId':N,'projectId':J,'addonId':Z},g=await q['forwardAddon'](x,b);this[V(0x17c)](g,{'name':Z,'type':'addon'},b),this[V(0x137)](g,b);}catch(S){error(V(0x162)+S['message']);}});this[k(0x116)][k(0x176)](f),this[k(0x116)][k(0x176)](i),this[k(0x116)][k(0x176)](c);}['getBaseCommand']=()=>{const h=a15B,l=getCommand(!![])['option'](h(0x12e),h(0x161));return this[h(0x12c)][h(0x115)][h(0x133)]()===h(0x136)&&l[h(0x15e)](h(0x10c),h(0x16b)),l;};[a15B(0x110)](l=![]){const R=a15B,e=this[R(0x12c)][R(0x114)];if(!l){const s=e[R(0x120)]();if(s[R(0x126)])throw new Error(s[R(0x135)]);}return e['on'](R(0x171),(f,i)=>{const m=R,c=a15s[m(0x177)](i[m(0x138)]+'\x20\x27'+i['id']+'\x27'),a=i[m(0x11c)][m(0x14e)]>0x0;warning(m(0x15b)+i[m(0x139)]+':'+i[m(0x12b)]+'\x20to\x20'+c),l&&a&&warning('\x20\x20If\x20you\x20have\x20added\x20entries\x20to\x20your\x20hosts\x20file,\x20it\x20is\x20recommended\x20to\x20remove\x20them\x20again\x20now.');}),e['on'](R(0x141),(f,i,c)=>{const X=R;warning(X(0x10f)+i[X(0x139)]+':'+i[X(0x12b)]+X(0x158)+c?.['message']+'\x22');}),process['on'](R(0x123),async()=>{const j=R;try{await e[j(0x151)]();}catch(f){error(j(0x17a)+f[j(0x135)]);}finally{process['exit']();}}),e;}[a15B(0x17c)](l,e,s=![]){const d=a15B,{type:f,name:i,instanceId:c}=e;if(l[d(0x14e)]<=0x0){const T=d(0x134)+e['type']+'\x20is\x20running\x20and\x20reachable\x20and\x20that\x20a\x20port\x20is\x20defined\x20on\x20the\x20networking\x20section.';warning(d(0x125)+f+'\x20'+a15s[d(0x177)](i)+'.\x20'+T);return;}const a=groupBy(l,d(0x131)),D=b=>'\x20('+(b['portName']?b[d(0x11d)]+d(0x122):'')+b[d(0x173)]+')';function Y(b,q=0x2){const w=d;if(!s){const t=b[w(0x173)]==='HTTP'?w(0x10b):'';b[w(0x11c)][w(0x157)](J=>{const H=w;console[H(0x146)](repeat('\x20',q)+'-\x20'+t+J+':'+b[H(0x12b)]);});}}Object[d(0x14a)](a)[d(0x157)](([b,q])=>{const M=d,t=c?M(0x13f)+a15s[M(0x15c)]['bold'](c)+'\x27\x20of\x20'+f+'\x20\x27'+a15s[M(0x15c)][M(0x177)](b)+'\x27':'>\x20'+capitalize(f)+'\x20\x27'+a15s[M(0x15c)][M(0x177)](b)+'\x27';if(f===M(0x11b)){if(q[M(0x14e)]===0x1){const J=q[0x0];if(J['error']){error(M(0x119)+b+':\x20'+J['error'][M(0x135)]);return;}const N=J[M(0x16a)],Z=!s?'\x20'+a15s[M(0x179)]('with\x20hostname:\x20'+N[M(0x11c)][M(0x132)](',')):'';success(t+M(0x150)+N[M(0x139)]+':'+N[M(0x12b)]+D(N)+Z);}else{const x=uniqBy(q,g=>g?.['data']?.[M(0x11c)]?.[M(0x132)](','))[M(0x14e)]>0x1;success(t+'\x20is\x20exposed\x20with\x20multiple\x20'+(x?M(0x160):'ports')+':'),q['forEach'](g=>{const A=M;if(g[A(0x126)]){error(A(0x119)+b+':\x20'+g[A(0x126)][A(0x135)]);return;}const S=g[A(0x16a)],o=!s?A(0x15a)+S['hostnames'][A(0x132)](','):'';console[A(0x146)](A(0x142)+S['address']+':'+S['port']+D(S)+o);});}}if(f===M(0x13a)){if(q['length']===0x1){const g=q[0x0];if(g['error']){error(M(0x119)+b+':\x20'+g['error']['message']);return;}const S=g['data'],o=!s?M(0x15d):':',G=S[M(0x139)]+':'+S[M(0x12b)]+D(S);success(t+M(0x150)+G+o),Y(S);}else success(t+M(0x150)+q[0x0]?.[M(0x16a)]?.[M(0x139)]+M(0x121)),q[M(0x157)](I=>{const L=M;if(I[L(0x126)]){error(L(0x119)+b+':\x20'+I['error'][L(0x135)]);return;}const P=I['data'];success(L(0x10a)+P['port']+D(P)),Y(P,0x4);});}});}[a15B(0x137)](l,e=![]){const C=a15B;if(e){const s=l[C(0x14c)](b=>b[C(0x16a)])[C(0x130)](b=>b!==undefined),f=process?.[C(0x140)]===C(0x15f),i=a15f[C(0x140)]()===C(0x118),c=f?C(0x12d):C(0x16c),a=a15s['bold'](C(0x167)),D=i?EOL+C(0x12f)+a+C(0x170):undefined;let Y='Running\x20in\x20'+a+C(0x124)+'--skipHostnames'+C(0x156)+c+'):';D!==undefined&&warning(D??'');warning(Y);const T=s['map'](b=>b[C(0x139)]+C(0x10d)+b[C(0x11c)][C(0x132)]('\x20'));console[C(0x146)](uniq(T)[C(0x132)](EOL)),console[C(0x146)]();}}[a15B(0x143)]=async(l,e,s,f,i)=>{const y=a15B,c=l[y(0x133)]()===y(0x136)?f??await e[y(0x178)]():undefined,a=s||i||await e[y(0x147)](c)();return{'teamId':c,'projectId':a};};}
|
|
1
|
+
const a15j=a15V;(function(e,V){const Y=a15V,b=e();while(!![]){try{const G=parseInt(Y(0x176))/0x1*(-parseInt(Y(0x185))/0x2)+-parseInt(Y(0x182))/0x3+parseInt(Y(0x17b))/0x4*(parseInt(Y(0x1c1))/0x5)+parseInt(Y(0x183))/0x6+parseInt(Y(0x187))/0x7+-parseInt(Y(0x168))/0x8+parseInt(Y(0x159))/0x9;if(G===V)break;else b['push'](b['shift']());}catch(a){b['push'](b['shift']());}}}(a15e,0x925b5));import{ApiClient}from'@northflank/js-client';function a15e(){const i=['printHostsFileHint','Services:','No\x20services\x20and\x20addons\x20to\x20forward\x20found\x20in\x20project\x20','join','option','Cleaning\x20up\x20open\x20connections\x20failed:\x20','green','16691112vPhTqU','Team\x20for\x20forwarding','Forwarding\x20','getProxyForwarder','entries','\x20is\x20running\x20and\x20reachable\x20and\x20that\x20a\x20port\x20is\x20defined\x20on\x20the\x20networking\x20section.','data.id','portFwdCmd','bold','Forwarding\x20addon\x20','service','askForProjectContext','action',',\x20hostname:\x20','skipHostnamesText','8564096SPAWXc','--service\x20--serviceId\x20[NAME]','hosts','name','\x20with\x20these\x20hostnames:','askForProject','port','\x20with\x20multiple\x20ports:','contextProvider','askForAddon','alias','SIGINT','\x20service\x20ports','\x20\x20-\x20port\x20','101685OLXfvE','askForTeam','error','askForService','--team\x20--teamId\x20[TEAMID]','4hYNnCt','tunnel-close','hostnames','message','Port-forwarding\x20for\x20all\x20services\x20and\x20addons\x20in\x20the\x20given\x20project','Running\x20on\x20macOS\x20in\x20','noDefaultsText','2060058gsiTao','4964376wIFoSa','Running\x20in\x20','14EBSUNR','--skipHostnames','1476111BEOsem','--project\x20--projectId\x20[NAME]','flat','getTokenScope','\x20addon\x20ports','log','ports','forwardProject','reset','/etc/hosts','Failed:\x20','greenBright','data','platform','type','forwardAddon','skipHostnames','with\x20hostname:\x20','http://','addCommand','darwin','>\x20Instance\x20\x27','Error\x20occured\x20while\x20trying\x20to\x20forward\x20','\x27\x20of\x20','Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.','Instance\x20to\x20forward','forwardService','\x20and\x20','Only\x20expose\x20on\x20IP\x20address,\x20not\x20on\x20hostnames.\x20With\x20this\x20option,\x20no\x20root\x20permissions\x20are\x20required.','length','Service\x20to\x20forward','win32','canExecuteWithHostnames','Port-forwarding\x20for\x20Northflank\x20services\x20and\x20addons.','Project\x20for\x20forwarding','HTTP','flatMap','addon','printForwardingInfo','C:/Windows/System32/drivers/etc/hosts','description','forEach','apiClient','forwarding','getCurrentProjectName','Forwarding\x20service\x20','Connection\x20error\x20occurred\x20when\x20forwarding\x20\x27','protocol','org','address','\x20to\x20','filter','\x20\x20\x20No\x20running\x20container\x20found\x20for\x20','Stop\x20forwarding\x20traffic\x20from\x20','\x20is\x20exposed\x20on\x20','\x20\x20\x20\x20\x20\x20\x20\x20\x20','getBaseCommand','Addon\x20to\x20forward','878165YfssBN','\x20\x20-\x20Address:\x20','--instance\x20--instanceId\x20[NAME]'];a15e=function(){return i;};return a15e();}function a15V(e,V){const b=a15e();return a15V=function(G,a){G=G-0x158;let m=b[G];return m;},a15V(e,V);}import a15b from'chalk';import{assertContextExisting,customUserAgent,error,getCommand,success,warning}from'../utils.js';import{InquirerHelper}from'../inquirer-helper.js';import*as a15G from'os';import{uniqBy,uniq,repeat,groupBy,capitalize}from'lodash-es';import{EOL}from'os';export class CliPortForward{[a15j(0x160)];[a15j(0x1b1)];[a15j(0x181)]=a15j(0x19f);[a15j(0x167)]=a15j(0x1a3);constructor(e,V){const d=a15j;this[d(0x1b1)]=new ApiClient(e,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':V});const b=new InquirerHelper(this[d(0x1b1)]);this['portFwdCmd']=getCommand()[d(0x16b)]('forward')[d(0x172)]('fwd')[d(0x1af)](d(0x1a8));const G=this[d(0x1bf)]()[d(0x16b)]('all')['description'](d(0x17f))[d(0x1c8)]('--noDefaults',this[d(0x181)],![])['option'](d(0x186),this[d(0x167)],![])['action'](async({noDefaults:O,teamId:E,projectId:W,skipHostnames:M})=>{const B=d;assertContextExisting(this[B(0x1b1)]);const Q=this[B(0x15c)](M),k=O?undefined:e[B(0x1b3)](),{projectId:r,teamId:U}=await this['askForProjectContext'](e,b,E,W,k);try{const {services:S,addons:z}=await Q[B(0x18e)]({'teamId':U,'projectId':r},M);if(S[B(0x1a4)]+z[B(0x1a4)]<=0x0)warning(B(0x1c6)+a15b[B(0x161)](r));else{const x=S[B(0x1ba)](N=>N[B(0x1a4)]>0x0)[B(0x1a4)],o=z[B(0x1ba)](N=>N[B(0x1a4)]>0x0)[B(0x1a4)],K='\x20in\x20project\x20'+a15b['bold'](r);console['log'](B(0x15b)+a15b[B(0x158)][B(0x161)](x+B(0x174))+B(0x1a2)+a15b[B(0x158)][B(0x161)](o+B(0x18b))+K),console['log'](),console['log'](a15b[B(0x161)](B(0x1c5))),S['forEach'](N=>{const I=B;if(N[I(0x1a4)]>=0x1&&!N[0x0][I(0x178)])this['printForwardingInfo'](N,{'type':'service','name':N[0x0][I(0x193)]['id']},M);}),console[B(0x18c)](a15b[B(0x161)]('Addons:')),z[B(0x1b0)](N=>{const R=B;if(N['length']>=0x1&&!N[0x0][R(0x178)])this['printForwardingInfo'](N,{'type':R(0x1ac),'name':N[0x0]['data']['id']},M);}),this['printHostsFileHint']([...S[B(0x189)](),...z['flat']()],M);}}catch(N){error(B(0x191)+N[B(0x17e)]);}}),a=this['getBaseCommand']()[d(0x16b)]('service')['description']('Port-forwarding\x20for\x20the\x20specified\x20service')[d(0x1c8)](d(0x169),d(0x1a5))[d(0x1c8)](d(0x1c3),d(0x1a0))[d(0x1c8)]('--noDefaults',this[d(0x181)],![])['option']('--skipHostnames',this[d(0x167)],![])[d(0x165)](async({noDefaults:O,teamId:E,projectId:W,serviceId:M,instanceId:Q,skipHostnames:k})=>{const c=d;assertContextExisting(this[c(0x1b1)]);const r=this[c(0x15c)](k),U=O?undefined:e[c(0x1b3)](),{projectId:S,teamId:z}=await this[c(0x164)](e,b,W,E,U),x=O?undefined:e['getCurrentServiceName'](),o=M||x||await b[c(0x179)](S,z)();console[c(0x18c)](c(0x1b4)+a15b[c(0x161)](o)+'\x20in\x20project\x20'+a15b[c(0x161)](S));try{const K=await r[c(0x1a1)]({'teamId':z,'projectId':S,'serviceId':o,'instanceId':Q},k);this['printForwardingInfo'](K,{'name':o,'type':c(0x163),'instanceId':Q},k),this['printHostsFileHint'](K,k);}catch(N){error(c(0x191)+N[c(0x17e)]);}}),m=this[d(0x1bf)]()[d(0x16b)](d(0x1ac))[d(0x1af)]('Port-forwarding\x20for\x20the\x20specified\x20addon')[d(0x1c8)]('--addon\x20--addonId\x20[NAME]',d(0x1c0))[d(0x1c8)](d(0x186),this[d(0x167)],![])[d(0x165)](async({noDefaults:O,teamId:E,projectId:W,addonId:M,skipHostnames:Q})=>{const y=d;assertContextExisting(this['apiClient']);const k=this[y(0x15c)](Q),r=O?undefined:e[y(0x1b3)](),{projectId:U,teamId:S}=await this['askForProjectContext'](e,b,W,E,r),z=M||await b[y(0x171)](U,S)();console[y(0x18c)](y(0x162)+a15b[y(0x161)](z)+'\x20in\x20project\x20'+a15b[y(0x161)](U));try{const x={'teamId':S,'projectId':U,'addonId':z},o=await k[y(0x196)](x,Q);this[y(0x1ad)](o,{'name':z,'type':y(0x1ac)},Q),this[y(0x1c4)](o,Q);}catch(K){error('Failed:\x20'+K['message']);}});this[d(0x160)][d(0x19a)](G),this['portFwdCmd'][d(0x19a)](a),this['portFwdCmd'][d(0x19a)](m);}['getBaseCommand']=()=>{const X=a15j,e=getCommand(!![])[X(0x1c8)](X(0x188),X(0x1a9));return this[X(0x1b1)][X(0x170)][X(0x18a)]()===X(0x1b7)&&e[X(0x1c8)](X(0x17a),X(0x15a)),e;};['getProxyForwarder'](e=![]){const Z=a15j,V=this[Z(0x1b1)][Z(0x1b2)];if(!e){const b=V[Z(0x1a7)]();if(b[Z(0x178)])throw new Error(b[Z(0x17e)]);}return V['on'](Z(0x17c),(G,a)=>{const l=Z,m=a15b[l(0x161)](a[l(0x195)]+'\x20\x27'+a['id']+'\x27'),O=a['hostnames']['length']>0x0;warning(l(0x1bc)+a[l(0x1b8)]+':'+a[l(0x16e)]+l(0x1b9)+m),e&&O&&warning('\x20\x20If\x20you\x20have\x20added\x20entries\x20to\x20your\x20hosts\x20file,\x20it\x20is\x20recommended\x20to\x20remove\x20them\x20again\x20now.');}),V['on']('connection-error',(G,a,m)=>{const T=Z;warning(T(0x1b5)+a[T(0x1b8)]+':'+a[T(0x16e)]+'\x27:\x20\x22'+m?.[T(0x17e)]+'\x22');}),process['on'](Z(0x173),async()=>{const g=Z;try{await V['stop']();}catch(G){error(g(0x1c9)+G[g(0x17e)]);}finally{process['exit']();}}),V;}[a15j(0x1ad)](e,V,b=![]){const p=a15j,{type:G,name:a,instanceId:m}=V;if(e[p(0x1a4)]<=0x0){const M='Please\x20ensure\x20the\x20'+V[p(0x195)]+p(0x15e);warning(p(0x1bb)+G+'\x20'+a15b[p(0x161)](a)+'.\x20'+M);return;}const O=groupBy(e,p(0x15f)),E=Q=>'\x20('+(Q['portName']?Q['portName']+'\x20-\x20':'')+Q['protocol']+')';function W(Q,k=0x2){const C=p;if(!b){const r=Q[C(0x1b6)]===C(0x1aa)?C(0x199):'';Q['hostnames'][C(0x1b0)](U=>{const u=C;console['log'](repeat('\x20',k)+'-\x20'+r+U+':'+Q[u(0x16e)]);});}}Object[p(0x15d)](O)[p(0x1b0)](([Q,k])=>{const L=p,r=m?L(0x19c)+a15b[L(0x192)]['bold'](m)+L(0x19e)+G+'\x20\x27'+a15b[L(0x192)]['bold'](Q)+'\x27':'>\x20'+capitalize(G)+'\x20\x27'+a15b[L(0x192)][L(0x161)](Q)+'\x27';if(G===L(0x1ac)){if(k[L(0x1a4)]===0x1){const U=k[0x0];if(U[L(0x178)]){error(L(0x19d)+Q+':\x20'+U[L(0x178)][L(0x17e)]);return;}const S=U['data'],z=!b?'\x20'+a15b[L(0x18f)](L(0x198)+S[L(0x17d)][L(0x1c7)](',')):'';success(r+L(0x1bd)+S['address']+':'+S['port']+E(S)+z);}else{const x=uniqBy(k,o=>o?.['data']?.[L(0x17d)]?.['join'](','))[L(0x1a4)]>0x1;success(r+'\x20is\x20exposed\x20with\x20multiple\x20'+(x?L(0x16a):L(0x18d))+':'),k['forEach'](o=>{const q=L;if(o[q(0x178)]){error('Error\x20occured\x20while\x20trying\x20to\x20forward\x20'+Q+':\x20'+o[q(0x178)][q(0x17e)]);return;}const K=o['data'],N=!b?q(0x166)+K['hostnames']['join'](','):'';console[q(0x18c)](q(0x1c2)+K['address']+':'+K[q(0x16e)]+E(K)+N);});}}if(G===L(0x163)){if(k['length']===0x1){const o=k[0x0];if(o[L(0x178)]){error('Error\x20occured\x20while\x20trying\x20to\x20forward\x20'+Q+':\x20'+o[L(0x178)][L(0x17e)]);return;}const K=o[L(0x193)],N=!b?L(0x16c):':',J=K['address']+':'+K[L(0x16e)]+E(K);success(r+L(0x1bd)+J+N),W(K);}else success(r+L(0x1bd)+k[0x0]?.[L(0x193)]?.[L(0x1b8)]+L(0x16f)),k[L(0x1b0)](f=>{const s=L;if(f[s(0x178)]){error('Error\x20occured\x20while\x20trying\x20to\x20forward\x20'+Q+':\x20'+f[s(0x178)][s(0x17e)]);return;}const D=f[s(0x193)];success(s(0x175)+D[s(0x16e)]+E(D)),W(D,0x4);});}});}[a15j(0x1c4)](e,V=![]){const F=a15j;if(V){const b=e[F(0x1ab)](Q=>Q[F(0x193)])['filter'](Q=>Q!==undefined),G=process?.[F(0x194)]===F(0x1a6),a=a15G['platform']()===F(0x19b),m=G?F(0x1ae):F(0x190),O=a15b[F(0x161)](F(0x197)),E=a?EOL+F(0x180)+O+'\x20mode:\x20the\x20locally\x20forwarded\x20port\x20differs\x20from\x20the\x20actual\x20port\x20on\x20the\x20forwarded\x20service/addon.':undefined;let W=F(0x184)+O+'\x20mode.\x20If\x20hostname\x20forwarding\x20is\x20required,\x20remove\x20'+F(0x186)+'\x20flag\x20or\x20manually\x20append\x20following\x20entry\x20to\x20your\x20hosts\x20file\x20('+m+'):';E!==undefined&&warning(E??'');warning(W);const M=b['map'](Q=>Q[F(0x1b8)]+F(0x1be)+Q[F(0x17d)][F(0x1c7)]('\x20'));console[F(0x18c)](uniq(M)[F(0x1c7)](EOL)),console['log']();}}['askForProjectContext']=async(e,V,b,G,a)=>{const H=a15j,m=e[H(0x18a)]()==='org'?G??await V[H(0x177)]():undefined,O=b||a||await V[H(0x16d)](m)();return{'teamId':m,'projectId':O};};}
|
package/dist/ssh/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a16l=a16V;(function(e,V){const Z=a16V,b=e();while(!![]){try{const G=parseInt(Z(0x172))/0x1+parseInt(Z(0x17f))/0x2+-parseInt(Z(0x16f))/0x3+-parseInt(Z(0x177))/0x4*(-parseInt(Z(0x199))/0x5)+-parseInt(Z(0x191))/0x6*(-parseInt(Z(0x171))/0x7)+-parseInt(Z(0x155))/0x8+-parseInt(Z(0x166))/0x9;if(G===V)break;else b['push'](b['shift']());}catch(a){b['push'](b['shift']());}}}(a16e,0x9f95c));function a16e(){const i=['slice','action','message','which','forwarding','RequestTTY=yes','\x20\x20>\x20SSH\x20session:','log','Id\x20[NAME]','\x20file.txt\x20',',\x20stop\x20with\x20Ctrl+C','Ctrl+C\x20received\x20-\x20Terminating\x20SSH\x20proxy...',',\x20stop\x20with\x20Ctrl+D','6054520EWznwx','unknown\x20error','apiClient','Establish\x20SSH\x20connectivity\x20to\x20Northflank\x20','data','ssh','askForProject','org','askForTeam','kill','Use\x20specific\x20username\x20for\x20SSH\x20connection','SSH\x20binary\x20not\x20found.\x20Please\x20install\x20OpenSSH.','findSSH','Unable\x20to\x20initiate\x20SSH\x20tunnel.\x20Ensure\x20your\x20service\x20is\x20running\x20and\x20has\x20SSH\x20enabled','Error\x20trying\x20to\x20forward:\x20','startSSH','/usr/local/bin/ssh','6463458XDqkKa','sftp\x20-P\x20','\x20\x20>\x20RSYNC:\x20\x20\x09','trim','-tt','\x20hostnames\x20on\x20local\x20machine.\x20Requires\x20sudo\x20permissions','Use\x20with\x20any\x20SSH\x20compatible\x20client.\x20Example\x20usages:','inherit','blackBright','1655664Yuynnc','find','504hXDJkM','563486zzJQcX','option','portName','description','\x20\x20>\x20SCP:\x20\x20\x09','291752NimNIh','--proxyOnly','withServiceForwarding','scp\x20-P\x20','charAt','Instance\x20to\x20use\x20for\x20SSH\x20(random\x20instance\x20will\x20be\x20chosen\x20if\x20not\x20specified)','isTTY','error','1155466ICILHn','uncaughtException','stdin','service','Team\x20id','\x20--','Failed\x20to\x20spawn\x20SSH\x20command:\x20','default-ssh','Replicate\x20','askForService','getCurrentServiceName','askForContainer','Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.','C:\x5cWindows\x5cSystem32\x5cOpenSSH\x5cssh.exe','contextProvider','\x20-l','--project\x20--projectId\x20[NAME]','execFileAsync','73572QVfpVa','Must\x20be\x20run\x20in\x20an\x20interactive\x20terminal\x20(TTY\x20required).','getCurrentProjectName','askForProjectContext','root','--user\x20[USER]','ssh\x20','sshCmd','45mMadGa','SIGINT','SSH\x20proxy\x20started\x20on\x20endpoint:\x20','--instance\x20--instanceName\x20[NAME]','--noDefaults','\x20to\x20ssh\x20into','close','rsync\x20-avz\x20-e\x20\x22ssh\x20-p\x20','SIGTERM','name','--team\x20--teamId\x20[TEAMID]','addCommand'];a16e=function(){return i;};return a16e();}function a16V(e,V){const b=a16e();return a16V=function(G,a){G=G-0x141;let m=b[G];return m;},a16V(e,V);}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 a16b from'chalk';export class CliSsh{['sshCmd'];[a16l(0x157)];constructor(e,V){const T=a16l;this[T(0x157)]=new ApiClient(e,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':V});const b=new InquirerHelper(this['apiClient']);this[T(0x198)]=getCommand(!![])[T(0x145)](T(0x15a))[T(0x175)]('SSH\x20for\x20Northflank\x20services\x20and\x20jobs.');const G=T(0x182),a=getCommand(!![])['name'](G)[T(0x175)](T(0x158)+G+'.\x20Creates\x20an\x20SSH\x20terminal\x20session\x20by\x20default.')[T(0x173)](T(0x18f),'Project\x20of\x20the\x20'+G)[T(0x173)]('--'+G+T(0x184)+G+T(0x150),G[T(0x17b)](0x0)['toUpperCase']()+G[T(0x148)](0x1)+T(0x141))[T(0x173)](T(0x19c),T(0x17c))[T(0x173)](T(0x178),'Only\x20startup\x20SSH\x20proxy\x20without\x20opening\x20an\x20SSH\x20terminal\x20session.',![])[T(0x173)]('--useHostnames',T(0x187)+G+T(0x16b),![])[T(0x173)](T(0x196),T(0x15f))[T(0x173)](T(0x19d),T(0x18b),![]);this[T(0x157)][T(0x18d)]['getTokenScope']()===T(0x15c)&&a[T(0x173)](T(0x146),T(0x183));const m=a[T(0x149)](async O=>{const g=T,{noDefaults:E,teamId:W,projectId:M,serviceId:Q,instanceName:k,proxyOnly:r,useHostnames:U}=O,{user:user='root',quiet:S}=O;assertContextExisting(this[g(0x157)]);try{const z=E?undefined:e[g(0x193)](),{projectId:x,teamId:o}=await this[g(0x194)](e,b,M,W,z),K=E?undefined:e[g(0x189)](),N=Q||K||await b[g(0x188)](x,o)(),J=k||await b[g(0x18a)](x,N,undefined,![],o,!![])(),f=process[g(0x181)][g(0x17d)],D=f&&!r,Y={'teamId':o,'projectId':x,'serviceId':N,'instanceId':J,'portsFilter':[0x16]};await this[g(0x157)][g(0x14c)][g(0x179)](Y,async j=>{const p=g,d=j[p(0x170)](y=>y[p(0x159)]?.[p(0x174)]===p(0x186));if(d===undefined)throw new Error(p(0x162));if(d?.[p(0x17e)]!==undefined||d?.[p(0x159)]===undefined)throw new Error(p(0x163)+(d?.[p(0x17e)]?.[p(0x14a)]??p(0x156)));const {address:B,port:I,hostnames:R}=d[p(0x159)],c=U?R[0x0]??B:B;D?(!S&&success(p(0x19b)+(c+':'+I)+p(0x154)),await this['startSSH']({'address':c,'port':I,'user':user})):(!S?(success('SSH\x20proxy\x20started\x20on\x20endpoint:\x20'+(c+':'+I)+p(0x152)),console[p(0x14f)](p(0x16c)),console[p(0x14f)](p(0x14e)+a16b['blackBright'](p(0x197)+user+'@'+c+'\x20-p\x20'+I)),console['log']('\x20\x20>\x20SFTP:\x20\x20\x09'+a16b[p(0x16e)](p(0x167)+I+'\x20'+user+'@'+c)),console[p(0x14f)](p(0x168)+a16b[p(0x16e)](p(0x143)+I+'\x22\x20./data/\x20'+user+'@'+c+':/rsync-test/')),console['log'](p(0x176)+a16b[p(0x16e)](p(0x17a)+I+p(0x151)+user+'@'+c+':/remote/path/'))):console[p(0x14f)](user,c,I),await new Promise((y,X)=>{const u=p;process['on']('SIGINT',()=>{const C=a16V;if(!S)success(C(0x153));y();}),process['on'](u(0x180),X);}));},!U);}catch(j){error(''+j['message']);}finally{process['exit']();}});this[T(0x198)][T(0x147)](m);}[a16l(0x190)]=promisify(execFile);async[a16l(0x161)](){const L=a16l;try{const {stdout:e}=await this[L(0x190)](L(0x14b),[L(0x15a)]);return e[L(0x169)]();}catch{const V=[L(0x15a),'/usr/bin/ssh',L(0x165),L(0x18c)];for(const b of V){try{return await this[L(0x190)](b,['-V']),b;}catch{}}return null;}}async[a16l(0x164)](e){const q=a16l,V=await this[q(0x161)]();if(!V)throw new Error(q(0x160));if(!process[q(0x181)][q(0x17d)])throw new Error(q(0x192));const {address:b,port:port=0x16,user:user=q(0x195),args:args=[],trusted:trusted=!![]}=e,G=[];trusted&&G['push']('-o','StrictHostKeyChecking=no','-o','UserKnownHostsFile=/dev/null','-o','LogLevel=ERROR');user!=='root'&&G['push']('-o','RemoteCommand=su\x20'+user+q(0x18e),'-o',q(0x14d));const a=spawn(V,[q(0x16a),'-p',port['toString'](),'-l',q(0x195),...G,...args,b],{'stdio':q(0x16d)});await new Promise((m,O)=>{const s=q;a['on'](s(0x142),(E,W)=>{if(W)warning('SSH\x20killed\x20by\x20signal:\x20'+W);else E!==0x0?warning('SSH\x20exited\x20with\x20code:\x20'+E):success('SSH\x20session\x20ended.');m(E);}),a['on'](s(0x17e),E=>{const F=s;O(new Error(F(0x185)+E[F(0x14a)]));}),process['on'](s(0x19a),()=>a[s(0x15e)]('SIGINT')),process['on'](s(0x144),()=>a[s(0x15e)]('SIGTERM'));});}['askForProjectContext']=async(e,V,b,G,a)=>{const H=a16l,m=e['getTokenScope']()===H(0x15c)?G??await V[H(0x15d)]():undefined,O=b||a||await V[H(0x15b)](m)();return{'teamId':m,'projectId':O};};}
|
package/dist/utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a17Q=a17V;(function(e,V){const M=a17V,b=e();while(!![]){try{const G=-parseInt(M(0x120))/0x1*(-parseInt(M(0x14a))/0x2)+parseInt(M(0x136))/0x3+parseInt(M(0x132))/0x4+parseInt(M(0x150))/0x5*(parseInt(M(0x12a))/0x6)+parseInt(M(0x12e))/0x7*(-parseInt(M(0x152))/0x8)+parseInt(M(0x158))/0x9+-parseInt(M(0x141))/0xa*(parseInt(M(0x13a))/0xb);if(G===V)break;else b['push'](b['shift']());}catch(a){b['push'](b['shift']());}}}(a17e,0x7e5e3));function a17V(e,V){const b=a17e();return a17V=function(G,a){G=G-0x11a;let m=b[G];return m;},a17V(e,V);}import a17b from'chalk';import{Command}from'commander';import{ProxyAgent}from'proxy-agent';import a17G from'node-fetch';import{readFileSync}from'fs';import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta['url']),__dirname=dirname(__filename),pgk=JSON[a17Q(0x13c)](readFileSync(join(__dirname,'../package.json'),a17Q(0x153)));export const customUserAgent='northflank-cli/'+pgk?.[a17Q(0x144)];export const agent=new ProxyAgent();export const proxyEnvsSet=process[a17Q(0x151)][a17Q(0x156)]!==undefined||process[a17Q(0x151)]['HTTPS_PROXY']!==undefined;export const decodeJwtPayload=V=>{const r=a17Q;try{const b=m=>{const k=a17V,O=m[k(0x142)](/-/g,'+')[k(0x142)](/_/g,'/')[k(0x155)](m['length']+(0x4-m[k(0x146)]%0x4)%0x4,'=');return JSON[k(0x13c)](Buffer[k(0x123)](O,k(0x128))[k(0x13b)]());},[G,a]=V[r(0x130)]('.');return b(a);}catch(m){return{};}};export async function checkUpdate(V){const S=a17Q;function b(G,a){const U=a17V,m=new Date(Number(G));return m[U(0x137)](m[U(0x154)]()+a),m;}try{if(b(V[S(0x148)](),0x1)>new Date())return;const G=pgk[S(0x144)],{name:a}=pgk;if(!G)return;const m='https://registry.npmjs.org/'+a+'/latest',O=await a17G(m,{'agent':agent,'method':S(0x157),'signal':AbortSignal[S(0x14d)](0x1388)}),E=(await O[S(0x131)]())[S(0x144)];needsUpdate(G,E)&&warning(S(0x14b)+G+S(0x126)+E+'.'+(S(0x140)+a+S(0x13e)+a+S(0x145))),await V[S(0x135)](new Date());}catch(W){}}function needsUpdate(e,V){const z=a17Q,b=/(\.0+)+$/,G=e['replace'](b,'')['split']('.'),a=V['replace'](b,'')['split']('.');for(let m=0x0;m<Math[z(0x121)](G[z(0x146)],a[z(0x146)]);m+=0x1){const O=parseInt(a[m],0xa)-parseInt(G[m],0xa);if(O>0x0)return!![];if(O<0x0)return![];}return a['length']>G[z(0x146)];}export function error(e){const x=a17Q;console[x(0x13d)](a17b[x(0x14e)]('Failed:\x20'+e));}export function warning(e){const o=a17Q;console[o(0x13d)](a17b[o(0x122)](''+e));}export function success(e){const K=a17Q;console[K(0x143)](a17b[K(0x11b)](''+e));}export function getCommand(e=![]){const N=a17Q,V=new Command();return V[N(0x139)](undefined,N(0x129)),V[N(0x127)](![]),V[N(0x11d)](![]),V[N(0x149)](![]),V[N(0x11f)](![]),V[N(0x125)](!![]),e&&(V['option']('--verbose',N(0x159),![]),V['option'](N(0x11a),N(0x12b),![]),V['option'](N(0x12c),'Do\x20not\x20validate\x20input\x20fields\x20on\x20client\x20side',![])),V;}export const retry=(e,V=0x32)=>b=>{let G=e;const a=async()=>{try{return await b();}catch(m){if(G<=0x0)throw m;return G-=0x1,await new Promise(O=>setTimeout(()=>O(),V)),a();}};return a();};export const asyncSequential=async(e,V)=>{const J=a17Q,b=Promise[J(0x134)]([]);return e[J(0x133)]((G,a)=>G[J(0x147)](m=>V(a)[J(0x147)](O=>{const f=J;return m[f(0x14f)](O),m;})),b);};export function isValidJSON(V){const D=a17Q;try{return JSON[D(0x13c)](V);}catch(b){return![];}}export function assertContextExisting(e){const Y=a17Q;if(e[Y(0x13f)][Y(0x124)]()===undefined)throw new Error(Y(0x11c));if(e['contextProvider']['getCurrentBaseUrl']()===undefined)throw new Error(Y(0x12d));if(e[Y(0x13f)]['getCurrentToken']()===undefined)throw new Error('No\x20token\x20in\x20CLI\x20context.\x20Add\x20token\x20with\x20\x27northflank\x20set-token\x27');}export const parseDateInput=V=>{const j=a17Q;try{let b=new Date(V);if(isNaN(b['getTime']())){const G=V[j(0x146)]===0xd?V/0x3e8:V,a=new Date(0x0);a[j(0x12f)](G);if(isNaN(a[j(0x138)]()))throw new Error();return a;}return b;}catch(m){throw new Error(j(0x11e)+V+j(0x14c));}};export const tsHint='example:\x202020-02-02T02:02:02Z\x20(date\x20string)\x20or\x201580608922\x20(unix\x20ts)';function a17e(){const d=['green','No\x20CLI\x20context\x20present.\x20Create\x20context\x20with\x20\x27northflank\x20login\x27','storeOptionsAsProperties','Invalid\x20date\x20received:\x20','allowExcessArguments','879lGBEST','min','yellow','from','getCurrentContext','enablePositionalOptions',',\x20the\x20latest\x20version\x20of\x20the\x20cli\x20is\x20','addHelpCommand','base64','Display\x20help\x20for\x20command','2736174XzfIuB','No\x20console\x20output','--skipValidation','No\x20API\x20URL\x20present\x20in\x20context.\x20Create\x20new\x20context\x20with\x20\x27northflank\x20login\x27','2036391FwhsyQ','setUTCSeconds','split','json','2798852YbKufE','reduce','resolve','setLastUpdateCheck','1202931kOSAiH','setDate','getTime','helpOption','7806293RyFLCx','toString','parse','error','\x20-g\x27\x20or\x20\x27yarn\x20global\x20add\x20','contextProvider','\x20Consider\x20updating\x20using\x20\x27npm\x20i\x20','20yUtzef','replace','log','version','\x27\x20**','length','then','getLastUpdateCheck','allowUnknownOption','932VyUSBf','**\x20You\x27re\x20running\x20on\x20version\x20',',\x20expected\x20valid\x20date\x20string\x20(example:\x202020-02-02T02:02:02Z)\x20or\x20unix\x20timestamp\x20(example\x201580608922)','timeout','redBright','push','10NacpRq','env','24pvSFiM','utf-8','getDate','padEnd','HTTP_PROXY','GET','3485754sfIkWR','Verbose\x20output','--quiet'];a17e=function(){return d;};return a17e();}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@northflank/cli",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"author": "Marco Suter",
|
|
5
5
|
"description": "Provides a command-line interface to the Northflank platform.",
|
|
6
6
|
"homepage": "https://www.northflank.com",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"LICENSE"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@northflank/js-client": "0.9.
|
|
30
|
+
"@northflank/js-client": "0.9.1",
|
|
31
31
|
"bufferutil": "^4.0.9",
|
|
32
32
|
"chalk": "~5.6.2",
|
|
33
33
|
"columnify": "^1.6.0",
|