@northflank/cli 0.11.0 → 0.11.2
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 a14l=a14V;function a14V(D,V){const P=a14D();return a14V=function(z,e){z=z-0x13c;let g=P[z];return g;},a14V(D,V);}(function(D,V){const B=a14V,P=D();while(!![]){try{const z=-parseInt(B(0x152))/0x1+parseInt(B(0x156))/0x2+parseInt(B(0x155))/0x3*(-parseInt(B(0x146))/0x4)+-parseInt(B(0x157))/0x5*(-parseInt(B(0x150))/0x6)+parseInt(B(0x140))/0x7*(-parseInt(B(0x141))/0x8)+-parseInt(B(0x15a))/0x9+parseInt(B(0x13c))/0xa;if(z===V)break;else P['push'](P['shift']());}catch(e){P['push'](P['shift']());}}}(a14D,0xdcbd8));import a14P from'inquirer/lib/prompts/list.js';import a14z from'inquirer/lib/objects/choice.js';import a14e from'chalk';function a14D(){const A=['loading','220FdYsHd','render','pagOpt','catch','loadMore','opt','map','dir\x20must\x20be\x20up\x20or\x20down','name','onUpKey','17088DShQVt','onDownKey','839523RhacZw','choices','selected','60063FBmRvV','3117034uvRMwa','3050dZVDsj','push','loop','12573657QQMjbq','down','26396800URNHIK','handleDynamicPageLoad','length','nextPageCursor','348677BJRpTL','272gtiPwv','realLength','reloadText','italic'];a14D=function(){return A;};return a14D();}function incrementListIndex(D,V,P){const h=a14V,z=P['choices'][h(0x142)],e=h(0x159)in P?Boolean(P[h(0x159)]):!![];if(V==='up'){if(D>0x0)return D-0x1;return e?z-0x1:D;}if(V===h(0x15b)){if(D<z-0x1)return D+0x1;return e?0x0:D;}throw new Error(h(0x14d));}export class DynamicReloadPaginationPrompt extends a14P{[a14l(0x143)]=a14e[a14l(0x144)]('..\x20Load\x20more\x20options\x20..');[a14l(0x148)];[a14l(0x145)]=![];[a14l(0x13f)];constructor(D,V,P){const t=a14l;super(D,V,P),this[t(0x148)]=this[t(0x14b)],this[t(0x13f)]=this[t(0x148)][t(0x13f)],this[t(0x13f)]!==undefined&&this[t(0x14b)][t(0x153)][t(0x158)](new a14z(this['reloadText'],this['reloadText']));}[a14l(0x14f)](){const i=a14l;if(this[i(0x145)])return;this['selected']=incrementListIndex(this[i(0x154)],'up',this['opt']),this['render']();}async[a14l(0x151)](){const s=a14l;if(this[s(0x145)])return;this[s(0x154)]=incrementListIndex(this[s(0x154)],s(0x15b),this['opt']),await this[s(0x13d)](),this['render']();}async[a14l(0x13d)](){const S=a14l;if(this[S(0x154)]>=this[S(0x14b)][S(0x153)][S(0x13e)]-0x1){if(this[S(0x13f)]===undefined)return;this['loading']=!![];let D=0x0;const V=setInterval(()=>{const n=S,g=['⠋','⠙','⠹','⠸','⠼','⠴','⠦','⠧','⠇','⠏'],b=a14e[n(0x144)](g[D%g[n(0x13e)]]+'\x20Loading\x20more\x20options');this['opt'][n(0x153)][n(0x153)][this[n(0x154)]][n(0x14e)]=''+b,D+=0x1,this[n(0x147)]();},0x50),{elements:P,nextPageCursor:z}=await this[S(0x148)][S(0x14a)]({'nextPageCursor':this['nextPageCursor']})[S(0x149)](()=>({'elements':[],'nextPageCursor':undefined}));this[S(0x13f)]=z;const e=P[S(0x14c)](g=>new a14z(g,g));this['opt'][S(0x153)]['choices']['splice'](this[S(0x154)],0x1),this[S(0x14b)][S(0x153)][S(0x158)](...e),z!==undefined&&this[S(0x14b)]['choices'][S(0x158)](new a14z(this['reloadText'],this['reloadText'])),clearInterval(V),this[S(0x145)]=![];}}}
|
|
@@ -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 a15E=a15V;(function(D,V){const F=a15V,P=D();while(!![]){try{const z=-parseInt(F(0xa8))/0x1*(parseInt(F(0xaa))/0x2)+parseInt(F(0xf3))/0x3+parseInt(F(0xb1))/0x4*(-parseInt(F(0xe2))/0x5)+parseInt(F(0xb3))/0x6*(-parseInt(F(0xc3))/0x7)+-parseInt(F(0x95))/0x8+-parseInt(F(0xab))/0x9+-parseInt(F(0xc7))/0xa*(-parseInt(F(0xb8))/0xb);if(z===V)break;else P['push'](P['shift']());}catch(e){P['push'](P['shift']());}}}(a15D,0xaf4a2));function a15D(){const c=['Error\x20occured\x20while\x20trying\x20to\x20forward\x20','entries','Services:','noDefaultsText','\x20with\x20these\x20hostnames:','bold','printForwardingInfo','Addons:','\x20and\x20','forwarding','exit','Please\x20ensure\x20the\x20','greenBright','Port-forwarding\x20for\x20the\x20specified\x20addon','getCurrentProjectName','4118745FvXcCl','apiClient','option','askForProjectContext','SIGINT','C:/Windows/System32/drivers/etc/hosts','data','getTokenScope','forwardService','addon','with\x20hostname:\x20','\x20\x20\x20\x20\x20\x20\x20\x20\x20','hosts','addCommand','\x20\x20\x20No\x20running\x20container\x20found\x20for\x20','askForTeam','length','data.id','printHostsFileHint','Only\x20expose\x20on\x20IP\x20address,\x20not\x20on\x20hostnames.\x20With\x20this\x20option,\x20no\x20root\x20permissions\x20are\x20required.','3945608zQHFem','all','\x27:\x20\x22','skipHostnamesText','description','Forwarding\x20','\x20-\x20','filter','port','askForProject','canExecuteWithHostnames','Instance\x20to\x20forward','green','HTTP','tunnel-close','forEach','askForAddon','message','connection-error','179uCIHUe','\x20flag\x20or\x20manually\x20append\x20following\x20entry\x20to\x20your\x20hosts\x20file\x20(','3602CsDMKG','9618273KjCvMA','Port-forwarding\x20for\x20Northflank\x20services\x20and\x20addons.','Cleaning\x20up\x20open\x20connections\x20failed:\x20','No\x20services\x20and\x20addons\x20to\x20forward\x20found\x20in\x20project\x20','--team\x20--teamId\x20[TEAMID]','darwin','4060OTttcO','--service\x20--serviceId\x20[NAME]','6VLMMYJ','\x20to\x20','alias','--noDefaults','hostnames','6802103nZSIKH','--skipHostnames','askForService','\x20\x20-\x20port\x20','log','\x20mode:\x20the\x20locally\x20forwarded\x20port\x20differs\x20from\x20the\x20actual\x20port\x20on\x20the\x20forwarded\x20service/addon.','contextProvider','\x20\x20-\x20Address:\x20','ports','fwd','protocol','10025099IPvZAm','\x27\x20of\x20','action','getCurrentServiceName','50nzebCS','Running\x20in\x20','\x20\x20If\x20you\x20have\x20added\x20entries\x20to\x20your\x20hosts\x20file,\x20it\x20is\x20recommended\x20to\x20remove\x20them\x20again\x20now.','\x20is\x20exposed\x20on\x20','\x20is\x20running\x20and\x20reachable\x20and\x20that\x20a\x20port\x20is\x20defined\x20on\x20the\x20networking\x20section.','flat','--addon\x20--addonId\x20[NAME]','type','getBaseCommand','/etc/hosts','Team\x20for\x20forwarding','forwardProject','Failed:\x20','\x20service\x20ports','forwardAddon','org','name','join','--project\x20--projectId\x20[NAME]','platform','portFwdCmd','Stop\x20forwarding\x20traffic\x20from\x20','portName','error','address','service','getProxyForwarder','2120CpgpAs','Forwarding\x20addon\x20'];a15D=function(){return c;};return a15D();}import{ApiClient}from'@northflank/js-client';import a15P from'chalk';import{assertContextExisting,customUserAgent,error,getCommand,success,warning}from'../utils.js';import{InquirerHelper}from'../inquirer-helper.js';import*as a15z from'os';import{uniqBy,uniq,repeat,groupBy,capitalize}from'lodash-es';function a15V(D,V){const P=a15D();return a15V=function(z,e){z=z-0x87;let g=P[z];return g;},a15V(D,V);}import{EOL}from'os';export class CliPortForward{[a15E(0xdb)];[a15E(0xf4)];[a15E(0xe7)]='Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.';['skipHostnamesText']=a15E(0x94);constructor(D,V){const J=a15E;this[J(0xf4)]=new ApiClient(D,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':V});const P=new InquirerHelper(this[J(0xf4)]);this['portFwdCmd']=getCommand()[J(0xd7)]('forward')[J(0xb5)](J(0xc1))[J(0x99)](J(0xac));const z=this[J(0xcf)]()['name'](J(0x96))['description']('Port-forwarding\x20for\x20all\x20services\x20and\x20addons\x20in\x20the\x20given\x20project')['option'](J(0xb6),this[J(0xe7)],![])[J(0xf5)](J(0xb9),this[J(0x98)],![])[J(0xc5)](async({noDefaults:b,teamId:B,projectId:h,skipHostnames:l})=>{const x=J;assertContextExisting(this[x(0xf4)]);const t=this[x(0xe1)](l),i=b?undefined:D[x(0xf2)](),{projectId:s,teamId:S}=await this[x(0xf6)](D,P,B,h,i);try{const {services:n,addons:A}=await t[x(0xd2)]({'teamId':S,'projectId':s},l);if(n['length']+A[x(0x91)]<=0x0)warning(x(0xae)+a15P['bold'](s));else{const X=n[x(0x9c)](k=>k['length']>0x0)[x(0x91)],U=A[x(0x9c)](k=>k['length']>0x0)[x(0x91)],R='\x20in\x20project\x20'+a15P[x(0xe9)](s);console[x(0xbc)](x(0x9a)+a15P['green']['bold'](X+x(0xd4))+x(0xec)+a15P[x(0xa1)][x(0xe9)](U+'\x20addon\x20ports')+R),console[x(0xbc)](),console[x(0xbc)](a15P[x(0xe9)](x(0xe6))),n[x(0xa4)](k=>{const C=x;if(k[C(0x91)]>=0x1&&!k[0x0][C(0xde)])this[C(0xea)](k,{'type':'service','name':k[0x0][C(0x87)]['id']},l);}),console[x(0xbc)](a15P[x(0xe9)](x(0xeb))),A[x(0xa4)](k=>{const M=x;if(k[M(0x91)]>=0x1&&!k[0x0][M(0xde)])this[M(0xea)](k,{'type':M(0x8a),'name':k[0x0][M(0x87)]['id']},l);}),this[x(0x93)]([...n[x(0xcc)](),...A[x(0xcc)]()],l);}}catch(k){error(x(0xd3)+k[x(0xa6)]);}}),e=this[J(0xcf)]()[J(0xd7)](J(0xe0))[J(0x99)]('Port-forwarding\x20for\x20the\x20specified\x20service')[J(0xf5)](J(0xb2),'Service\x20to\x20forward')[J(0xf5)]('--instance\x20--instanceId\x20[NAME]',J(0xa0))[J(0xf5)](J(0xb6),this[J(0xe7)],![])[J(0xf5)](J(0xb9),this['skipHostnamesText'],![])[J(0xc5)](async({noDefaults:b,teamId:B,projectId:h,serviceId:l,instanceId:t,skipHostnames:i})=>{const W=J;assertContextExisting(this[W(0xf4)]);const s=this['getProxyForwarder'](i),S=b?undefined:D['getCurrentProjectName'](),{projectId:n,teamId:A}=await this['askForProjectContext'](D,P,h,B,S),X=b?undefined:D[W(0xc6)](),U=l||X||await P[W(0xba)](n,A)();console[W(0xbc)]('Forwarding\x20service\x20'+a15P[W(0xe9)](U)+'\x20in\x20project\x20'+a15P['bold'](n));try{const R=await s[W(0x89)]({'teamId':A,'projectId':n,'serviceId':U,'instanceId':t},i);this[W(0xea)](R,{'name':U,'type':W(0xe0),'instanceId':t},i),this[W(0x93)](R,i);}catch(k){error('Failed:\x20'+k[W(0xa6)]);}}),g=this[J(0xcf)]()[J(0xd7)](J(0x8a))[J(0x99)](J(0xf1))[J(0xf5)](J(0xcd),'Addon\x20to\x20forward')[J(0xf5)]('--skipHostnames',this[J(0x98)],![])[J(0xc5)](async({noDefaults:b,teamId:B,projectId:h,addonId:l,skipHostnames:t})=>{const d=J;assertContextExisting(this[d(0xf4)]);const i=this[d(0xe1)](t),s=b?undefined:D[d(0xf2)](),{projectId:S,teamId:n}=await this[d(0xf6)](D,P,h,B,s),A=l||await P[d(0xa5)](S,n)();console[d(0xbc)](d(0xe3)+a15P['bold'](A)+'\x20in\x20project\x20'+a15P[d(0xe9)](S));try{const X={'teamId':n,'projectId':S,'addonId':A},U=await i[d(0xd5)](X,t);this[d(0xea)](U,{'name':A,'type':d(0x8a)},t),this[d(0x93)](U,t);}catch(R){error(d(0xd3)+R['message']);}});this[J(0xdb)][J(0x8e)](z),this[J(0xdb)][J(0x8e)](e),this[J(0xdb)][J(0x8e)](g);}['getBaseCommand']=()=>{const f=a15E,D=getCommand(!![])[f(0xf5)](f(0xd9),'Project\x20for\x20forwarding');return this[f(0xf4)][f(0xbe)][f(0x88)]()===f(0xd6)&&D[f(0xf5)](f(0xaf),f(0xd1)),D;};[a15E(0xe1)](D=![]){const T=a15E,V=this[T(0xf4)][T(0xed)];if(!D){const P=V[T(0x9f)]();if(P['error'])throw new Error(P[T(0xa6)]);}return V['on'](T(0xa3),(z,e)=>{const m=T,g=a15P[m(0xe9)](e['type']+'\x20\x27'+e['id']+'\x27'),b=e[m(0xb7)][m(0x91)]>0x0;warning(m(0xdc)+e[m(0xdf)]+':'+e[m(0x9d)]+m(0xb4)+g),D&&b&&warning(m(0xc9));}),V['on'](T(0xa7),(z,e,g)=>{const q=T;warning('Connection\x20error\x20occurred\x20when\x20forwarding\x20\x27'+e[q(0xdf)]+':'+e[q(0x9d)]+q(0x97)+g?.[q(0xa6)]+'\x22');}),process['on'](T(0xf7),async()=>{const L=T;try{await V['stop']();}catch(z){error(L(0xad)+z[L(0xa6)]);}finally{process[L(0xee)]();}}),V;}[a15E(0xea)](D,V,P=![]){const Z=a15E,{type:z,name:e,instanceId:g}=V;if(D[Z(0x91)]<=0x0){const l=Z(0xef)+V[Z(0xce)]+Z(0xcb);warning(Z(0x8f)+z+'\x20'+a15P[Z(0xe9)](e)+'.\x20'+l);return;}const b=groupBy(D,Z(0x92)),B=t=>'\x20('+(t['portName']?t[Z(0xdd)]+Z(0x9b):'')+t[Z(0xc2)]+')';function h(t,i=0x2){const u=Z;if(!P){const s=t['protocol']===u(0xa2)?'http://':'';t[u(0xb7)][u(0xa4)](S=>{const N=u;console[N(0xbc)](repeat('\x20',i)+'-\x20'+s+S+':'+t[N(0x9d)]);});}}Object[Z(0xe5)](b)[Z(0xa4)](([t,i])=>{const O=Z,s=g?'>\x20Instance\x20\x27'+a15P[O(0xf0)][O(0xe9)](g)+O(0xc4)+z+'\x20\x27'+a15P[O(0xf0)][O(0xe9)](t)+'\x27':'>\x20'+capitalize(z)+'\x20\x27'+a15P['greenBright'][O(0xe9)](t)+'\x27';if(z==='addon'){if(i['length']===0x1){const S=i[0x0];if(S[O(0xde)]){error(O(0xe4)+t+':\x20'+S[O(0xde)]['message']);return;}const n=S[O(0x87)],A=!P?'\x20'+a15P['reset'](O(0x8b)+n[O(0xb7)][O(0xd8)](',')):'';success(s+'\x20is\x20exposed\x20on\x20'+n['address']+':'+n[O(0x9d)]+B(n)+A);}else{const X=uniqBy(i,U=>U?.[O(0x87)]?.[O(0xb7)]?.[O(0xd8)](','))[O(0x91)]>0x1;success(s+'\x20is\x20exposed\x20with\x20multiple\x20'+(X?O(0x8d):O(0xc0))+':'),i[O(0xa4)](U=>{const I=O;if(U['error']){error(I(0xe4)+t+':\x20'+U['error'][I(0xa6)]);return;}const R=U[I(0x87)],k=!P?',\x20hostname:\x20'+R[I(0xb7)]['join'](','):'';console[I(0xbc)](I(0xbf)+R[I(0xdf)]+':'+R['port']+B(R)+k);});}}if(z==='service'){if(i[O(0x91)]===0x1){const U=i[0x0];if(U['error']){error(O(0xe4)+t+':\x20'+U['error']['message']);return;}const R=U['data'],k=!P?O(0xe8):':',H=R[O(0xdf)]+':'+R[O(0x9d)]+B(R);success(s+O(0xca)+H+k),h(R);}else success(s+'\x20is\x20exposed\x20on\x20'+i[0x0]?.[O(0x87)]?.['address']+'\x20with\x20multiple\x20ports:'),i['forEach'](G=>{const a=O;if(G['error']){error('Error\x20occured\x20while\x20trying\x20to\x20forward\x20'+t+':\x20'+G[a(0xde)][a(0xa6)]);return;}const o=G[a(0x87)];success(a(0xbb)+o[a(0x9d)]+B(o)),h(o,0x4);});}});}[a15E(0x93)](D,V=![]){const Y=a15E;if(V){const P=D['flatMap'](t=>t['data'])[Y(0x9c)](t=>t!==undefined),z=process?.[Y(0xda)]==='win32',e=a15z[Y(0xda)]()===Y(0xb0),g=z?Y(0xf8):Y(0xd0),b=a15P[Y(0xe9)]('skipHostnames'),B=e?EOL+'Running\x20on\x20macOS\x20in\x20'+b+Y(0xbd):undefined;let h=Y(0xc8)+b+'\x20mode.\x20If\x20hostname\x20forwarding\x20is\x20required,\x20remove\x20'+Y(0xb9)+Y(0xa9)+g+'):';B!==undefined&&warning(B??'');warning(h);const l=P['map'](t=>t[Y(0xdf)]+Y(0x8c)+t['hostnames'][Y(0xd8)]('\x20'));console['log'](uniq(l)[Y(0xd8)](EOL)),console[Y(0xbc)]();}}['askForProjectContext']=async(D,V,P,z,e)=>{const p=a15E,g=D['getTokenScope']()===p(0xd6)?z??await V[p(0x90)]():undefined,b=P||e||await V[p(0x9e)](g)();return{'teamId':g,'projectId':b};};}
|
package/dist/ssh/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a16m=a16V;(function(D,V){const T=a16V,P=D();while(!![]){try{const z=-parseInt(T(0xe4))/0x1*(-parseInt(T(0xcf))/0x2)+-parseInt(T(0xf8))/0x3*(-parseInt(T(0xc7))/0x4)+parseInt(T(0xc9))/0x5+parseInt(T(0xdd))/0x6+parseInt(T(0xc5))/0x7+-parseInt(T(0xb1))/0x8+-parseInt(T(0xac))/0x9*(parseInt(T(0xdc))/0xa);if(z===V)break;else P['push'](P['shift']());}catch(e){P['push'](P['shift']());}}}(a16D,0xa5f53));import{ApiClient}from'@northflank/js-client';function a16V(D,V){const P=a16D();return a16V=function(z,e){z=z-0xa2;let g=P[z];return g;},a16V(D,V);}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 a16P from'chalk';export class CliSsh{[a16m(0xe5)];[a16m(0xad)];constructor(D,V){const q=a16m;this[q(0xad)]=new ApiClient(D,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':V});const P=new InquirerHelper(this[q(0xad)]);this[q(0xe5)]=getCommand(!![])['name']('ssh')['description']('SSH\x20for\x20Northflank\x20services\x20and\x20jobs.');const z=q(0xdb),e=getCommand(!![])[q(0xc1)](z)[q(0xd3)]('Establish\x20SSH\x20connectivity\x20to\x20Northflank\x20'+z+q(0xa5))[q(0xe0)]('--project\x20--projectId\x20[NAME]',q(0xea)+z)[q(0xe0)]('--'+z+q(0xd6)+z+'Id\x20[NAME]',z[q(0xe7)](0x0)['toUpperCase']()+z[q(0xaf)](0x1)+q(0xb2))['option'](q(0xe1),q(0xc0))[q(0xe0)](q(0xee),'Only\x20startup\x20SSH\x20proxy\x20without\x20opening\x20an\x20SSH\x20terminal\x20session.',![])[q(0xe0)](q(0xbe),'Replicate\x20'+z+q(0xba),![])['option'](q(0xae),q(0xf3))[q(0xe0)](q(0xb4),q(0xc8),![]);this[q(0xad)][q(0xb3)][q(0xbf)]()===q(0xd0)&&e['option']('--team\x20--teamId\x20[TEAMID]',q(0xd1));const g=e[q(0xb0)](async b=>{const L=q,{noDefaults:B,teamId:h,projectId:l,serviceId:t,instanceName:i,proxyOnly:s,useHostnames:S}=b,{user:user=L(0xdf),quiet:n}=b;assertContextExisting(this[L(0xad)]);try{const A=B?undefined:D['getCurrentProjectName'](),{projectId:X,teamId:U}=await this[L(0xf7)](D,P,l,h,A),R=B?undefined:D[L(0xbb)](),k=t||R||await P['askForService'](X,U)(),H=i||await P[L(0xb5)](X,k,undefined,![],U,!![])(),G=process[L(0xc3)][L(0xa4)],o=G&&!s,F={'teamId':U,'projectId':X,'serviceId':k,'instanceId':H,'portsFilter':[0x16]};await this['apiClient'][L(0xe9)]['withServiceForwarding'](F,async E=>{const Z=L,J=E[Z(0xa8)](d=>d['data']?.[Z(0xeb)]===Z(0xe2));if(J===undefined)throw new Error(Z(0xa3));if(J?.[Z(0xa2)]!==undefined||J?.['data']===undefined)throw new Error(Z(0xa6)+(J?.[Z(0xa2)]?.[Z(0xef)]??Z(0xf2)));const {address:x,port:C,hostnames:M}=J['data'],W=S?M[0x0]??x:x;o?(!n&&success(Z(0xf4)+(W+':'+C)+Z(0xaa)),await this['startSSH']({'address':W,'port':C,'user':user})):(!n?(success(Z(0xf4)+(W+':'+C)+Z(0xf1)),console[Z(0xca)](Z(0xe3)),console[Z(0xca)](Z(0xcd)+a16P['blackBright']('ssh\x20'+user+'@'+W+'\x20-p\x20'+C)),console['log']('\x20\x20>\x20SFTP:\x20\x20\x09'+a16P[Z(0xc6)](Z(0xed)+C+'\x20'+user+'@'+W)),console[Z(0xca)]('\x20\x20>\x20RSYNC:\x20\x20\x09'+a16P[Z(0xc6)](Z(0xf0)+C+Z(0xcc)+user+'@'+W+':/rsync-test/')),console[Z(0xca)]('\x20\x20>\x20SCP:\x20\x20\x09'+a16P[Z(0xc6)]('scp\x20-P\x20'+C+Z(0xe6)+user+'@'+W+':/remote/path/'))):console['log'](user,W,C),await new Promise((d,f)=>{const u=Z;process['on'](u(0xcb),()=>{if(!n)success('Ctrl+C\x20received\x20-\x20Terminating\x20SSH\x20proxy...');d();}),process['on']('uncaughtException',f);}));},!S);}catch(E){error(''+E[L(0xef)]);}finally{process['exit']();}});this['sshCmd'][q(0xd5)](g);}['execFileAsync']=promisify(execFile);async[a16m(0xfb)](){const N=a16m;try{const {stdout:D}=await this[N(0xd2)](N(0xbd),[N(0xce)]);return D[N(0xd7)]();}catch{const V=[N(0xce),N(0xab),N(0xb6),N(0xde)];for(const P of V){try{return await this['execFileAsync'](P,['-V']),P;}catch{}}return null;}}async[a16m(0xda)](D){const O=a16m,V=await this['findSSH']();if(!V)throw new Error(O(0xfc));if(!process[O(0xc3)]['isTTY'])throw new Error(O(0xd4));const {address:P,port:port=0x16,user:user='root',args:args=[],trusted:trusted=!![]}=D,z=[];trusted&&z[O(0xfa)]('-o',O(0xb7),'-o',O(0xa9),'-o',O(0xfd));user!==O(0xdf)&&z['push']('-o',O(0xe8)+user+'\x20-l','-o',O(0xec));const e=spawn(V,['-tt','-p',port[O(0xbc)](),'-l',O(0xdf),...z,...args,P],{'stdio':O(0xf5)});await new Promise((g,b)=>{const I=O;e['on'](I(0xc2),(B,h)=>{const a=I;if(h)warning(a(0xd9)+h);else B!==0x0?warning(a(0xc4)+B):success(a(0xa7));g(B);}),e['on'](I(0xa2),B=>{const Y=I;b(new Error(Y(0xd8)+B[Y(0xef)]));}),process['on'](I(0xcb),()=>e[I(0xf6)]('SIGINT')),process['on'](I(0xb9),()=>e[I(0xf6)]('SIGTERM'));});}[a16m(0xf7)]=async(D,V,P,z,e)=>{const p=a16m,g=D[p(0xbf)]()===p(0xd0)?z??await V[p(0xb8)]():undefined,b=P||e||await V[p(0xf9)](g)();return{'teamId':g,'projectId':b};};}function a16D(){const c=['forwarding','Project\x20of\x20the\x20','portName','RequestTTY=yes','sftp\x20-P\x20','--proxyOnly','message','rsync\x20-avz\x20-e\x20\x22ssh\x20-p\x20',',\x20stop\x20with\x20Ctrl+C','unknown\x20error','Use\x20specific\x20username\x20for\x20SSH\x20connection','SSH\x20proxy\x20started\x20on\x20endpoint:\x20','inherit','kill','askForProjectContext','18jbLRsx','askForProject','push','findSSH','SSH\x20binary\x20not\x20found.\x20Please\x20install\x20OpenSSH.','LogLevel=ERROR','error','Unable\x20to\x20initiate\x20SSH\x20tunnel.\x20Ensure\x20your\x20service\x20is\x20running\x20and\x20has\x20SSH\x20enabled','isTTY','.\x20Creates\x20an\x20SSH\x20terminal\x20session\x20by\x20default.','Error\x20trying\x20to\x20forward:\x20','SSH\x20session\x20ended.','find','UserKnownHostsFile=/dev/null',',\x20stop\x20with\x20Ctrl+D','/usr/bin/ssh','9lsIsiu','apiClient','--user\x20[USER]','slice','action','5146352FyGbDj','\x20to\x20ssh\x20into','contextProvider','--noDefaults','askForContainer','/usr/local/bin/ssh','StrictHostKeyChecking=no','askForTeam','SIGTERM','\x20hostnames\x20on\x20local\x20machine.\x20Requires\x20sudo\x20permissions','getCurrentServiceName','toString','which','--useHostnames','getTokenScope','Instance\x20to\x20use\x20for\x20SSH\x20(random\x20instance\x20will\x20be\x20chosen\x20if\x20not\x20specified)','name','close','stdin','SSH\x20exited\x20with\x20code:\x20','519386anivpZ','blackBright','384248XaxJUb','Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.','1593870XOMpct','log','SIGINT','\x22\x20./data/\x20','\x20\x20>\x20SSH\x20session:','ssh','18aqwSel','org','Team\x20id','execFileAsync','description','Must\x20be\x20run\x20in\x20an\x20interactive\x20terminal\x20(TTY\x20required).','addCommand','\x20--','trim','Failed\x20to\x20spawn\x20SSH\x20command:\x20','SSH\x20killed\x20by\x20signal:\x20','startSSH','service','18789730rwcnyH','6512250UhiOZn','C:\x5cWindows\x5cSystem32\x5cOpenSSH\x5cssh.exe','root','option','--instance\x20--instanceName\x20[NAME]','default-ssh','Use\x20with\x20any\x20SSH\x20compatible\x20client.\x20Example\x20usages:','127479IMwaCp','sshCmd','\x20file.txt\x20','charAt','RemoteCommand=su\x20'];a16D=function(){return c;};return a16D();}
|
package/dist/utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a17t=a17V;(function(D,V){const l=a17V,P=D();while(!![]){try{const z=-parseInt(l(0x203))/0x1+parseInt(l(0x1e7))/0x2*(-parseInt(l(0x1f9))/0x3)+-parseInt(l(0x1e9))/0x4+-parseInt(l(0x1db))/0x5+-parseInt(l(0x1d1))/0x6+parseInt(l(0x1e3))/0x7*(-parseInt(l(0x1d6))/0x8)+-parseInt(l(0x1ea))/0x9*(-parseInt(l(0x1fc))/0xa);if(z===V)break;else P['push'](P['shift']());}catch(e){P['push'](P['shift']());}}}(a17D,0x9a8fa));import a17P from'chalk';import{Command}from'commander';import{ProxyAgent}from'proxy-agent';import a17z from'node-fetch';import{readFileSync}from'fs';import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta[a17t(0x1da)]),__dirname=dirname(__filename),pgk=JSON[a17t(0x1cd)](readFileSync(join(__dirname,a17t(0x1e2)),a17t(0x1ef)));export const customUserAgent=a17t(0x1e6)+pgk?.[a17t(0x202)];export const agent=new ProxyAgent();export const proxyEnvsSet=process['env'][a17t(0x206)]!==undefined||process[a17t(0x1f7)][a17t(0x208)]!==undefined;export const decodeJwtPayload=D=>{const s=a17t;try{const V=g=>{const i=a17V,b=g[i(0x1dc)](/-/g,'+')[i(0x1dc)](/_/g,'/')[i(0x1e5)](g[i(0x1cf)]+(0x4-g['length']%0x4)%0x4,'=');return JSON[i(0x1cd)](Buffer['from'](b,'base64')['toString']());},[P,z]=D[s(0x1eb)]('.');return V(z);}catch(g){return{};}};export async function checkUpdate(D){const n=a17t;function V(P,z){const S=a17V,g=new Date(Number(P));return g[S(0x1ec)](g[S(0x1f2)]()+z),g;}try{if(V(D[n(0x200)](),0x1)>new Date())return;const P=pgk['version'],{name:z}=pgk;if(!P)return;const g=n(0x1d0)+z+n(0x209),b=await a17z(g,{'agent':agent,'method':n(0x207),'signal':AbortSignal['timeout'](0x1388)}),B=(await b[n(0x1de)]())[n(0x202)];needsUpdate(P,B)&&warning(n(0x1e4)+P+n(0x1e8)+B+'.'+(n(0x1d3)+z+n(0x1dd)+z+n(0x1d2))),await D[n(0x205)](new Date());}catch(h){}}function a17V(D,V){const P=a17D();return a17V=function(z,e){z=z-0x1cc;let g=P[z];return g;},a17V(D,V);}function needsUpdate(D,V){const A=a17t,P=/(\.0+)+$/,z=D[A(0x1dc)](P,'')['split']('.'),e=V['replace'](P,'')['split']('.');for(let g=0x0;g<Math['min'](z['length'],e[A(0x1cf)]);g+=0x1){const b=parseInt(e[g],0xa)-parseInt(z[g],0xa);if(b>0x0)return!![];if(b<0x0)return![];}return e[A(0x1cf)]>z[A(0x1cf)];}export function error(D){const X=a17t;console[X(0x1f4)](a17P[X(0x1cc)](X(0x1df)+D));}export function warning(D){const U=a17t;console['error'](a17P[U(0x1d5)](''+D));}export function success(D){const R=a17t;console['log'](a17P[R(0x1d9)](''+D));}export function getCommand(D=![]){const k=a17t,V=new Command();return V['helpOption'](undefined,k(0x1ff)),V['addHelpCommand'](![]),V[k(0x1f3)](![]),V['allowUnknownOption'](![]),V[k(0x1e1)](![]),V[k(0x1fd)](!![]),D&&(V[k(0x1fa)](k(0x1f0),k(0x1e0),![]),V[k(0x1fa)]('--quiet',k(0x1fe),![]),V['option'](k(0x1ed),k(0x1ce),![])),V;}export const retry=(D,V=0x32)=>P=>{let z=D;const e=async()=>{try{return await P();}catch(g){if(z<=0x0)throw g;return z-=0x1,await new Promise(b=>setTimeout(()=>b(),V)),e();}};return e();};export const asyncSequential=async(D,V)=>{const H=a17t,P=Promise['resolve']([]);return D[H(0x1f1)]((z,e)=>z[H(0x1f8)](g=>V(e)[H(0x1f8)](b=>{return g['push'](b),g;})),P);};export function isValidJSON(D){const G=a17t;try{return JSON[G(0x1cd)](D);}catch(V){return![];}}function a17D(){const E=['75poAfxV','option',',\x20expected\x20valid\x20date\x20string\x20(example:\x202020-02-02T02:02:02Z)\x20or\x20unix\x20timestamp\x20(example\x201580608922)','63734590iZUdJq','enablePositionalOptions','No\x20console\x20output','Display\x20help\x20for\x20command','getLastUpdateCheck','example:\x202020-02-02T02:02:02Z\x20(date\x20string)\x20or\x201580608922\x20(unix\x20ts)','version','1101239jEkzqh','contextProvider','setLastUpdateCheck','HTTP_PROXY','GET','HTTPS_PROXY','/latest','redBright','parse','Do\x20not\x20validate\x20input\x20fields\x20on\x20client\x20side','length','https://registry.npmjs.org/','2794656GidXLC','\x27\x20**','\x20Consider\x20updating\x20using\x20\x27npm\x20i\x20','setUTCSeconds','yellow','40AfFxbl','getTime','No\x20CLI\x20context\x20present.\x20Create\x20context\x20with\x20\x27northflank\x20login\x27','green','url','4614745swTsUa','replace','\x20-g\x27\x20or\x20\x27yarn\x20global\x20add\x20','json','Failed:\x20','Verbose\x20output','allowExcessArguments','../package.json','1599577ttEtnq','**\x20You\x27re\x20running\x20on\x20version\x20','padEnd','northflank-cli/','82022RAvRDh',',\x20the\x20latest\x20version\x20of\x20the\x20cli\x20is\x20','4330332oSCBrF','9DezPaP','split','setDate','--skipValidation','No\x20token\x20in\x20CLI\x20context.\x20Add\x20token\x20with\x20\x27northflank\x20set-token\x27','utf-8','--verbose','reduce','getDate','storeOptionsAsProperties','error','getCurrentBaseUrl','No\x20API\x20URL\x20present\x20in\x20context.\x20Create\x20new\x20context\x20with\x20\x27northflank\x20login\x27','env','then'];a17D=function(){return E;};return a17D();}export function assertContextExisting(D){const o=a17t;if(D['contextProvider']['getCurrentContext']()===undefined)throw new Error(o(0x1d8));if(D[o(0x204)][o(0x1f5)]()===undefined)throw new Error(o(0x1f6));if(D[o(0x204)]['getCurrentToken']()===undefined)throw new Error(o(0x1ee));}export const parseDateInput=D=>{const F=a17t;try{let V=new Date(D);if(isNaN(V[F(0x1d7)]())){const P=D[F(0x1cf)]===0xd?D/0x3e8:D,z=new Date(0x0);z[F(0x1d4)](P);if(isNaN(z[F(0x1d7)]()))throw new Error();return z;}return V;}catch(g){throw new Error('Invalid\x20date\x20received:\x20'+D+F(0x1fb));}};export const tsHint=a17t(0x201);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@northflank/cli",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.2",
|
|
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.3",
|
|
31
31
|
"bufferutil": "^4.0.9",
|
|
32
32
|
"chalk": "~5.6.2",
|
|
33
33
|
"columnify": "^1.6.0",
|