@northflank/cli 0.10.12 → 0.10.14
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/utils.js +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a14x=a14M;function a14M(a,M){const L=a14a();return a14M=function(r,w){r=r-0x10d;let h=L[r];return h;},a14M(a,M);}(function(a,M){const C=a14M,L=a();while(!![]){try{const r=-parseInt(C(0x119))/0x1*(-parseInt(C(0x12d))/0x2)+-parseInt(C(0x123))/0x3*(parseInt(C(0x114))/0x4)+-parseInt(C(0x120))/0x5+-parseInt(C(0x10f))/0x6*(-parseInt(C(0x121))/0x7)+parseInt(C(0x110))/0x8+-parseInt(C(0x112))/0x9*(parseInt(C(0x122))/0xa)+-parseInt(C(0x10d))/0xb;if(r===M)break;else L['push'](L['shift']());}catch(w){L['push'](L['shift']());}}}(a14a,0x4c352));import a14L from'inquirer/lib/prompts/list.js';import a14r from'inquirer/lib/objects/choice.js';import a14w from'chalk';function incrementListIndex(a,M,L){const i=a14M,r=L[i(0x12a)][i(0x11f)],w=i(0x10e)in L?Boolean(L[i(0x10e)]):!![];if(M==='up'){if(a>0x0)return a-0x1;return w?r-0x1:a;}if(M===i(0x128)){if(a<r-0x1)return a+0x1;return w?0x0:a;}throw new Error(i(0x11d));}export class DynamicReloadPaginationPrompt extends a14L{['reloadText']=a14w[a14x(0x11c)](a14x(0x11b));[a14x(0x125)];[a14x(0x12e)]=![];[a14x(0x127)];constructor(M,L,r){const l=a14x;super(M,L,r),this[l(0x125)]=this[l(0x126)],this[l(0x127)]=this[l(0x125)][l(0x127)],this[l(0x127)]!==undefined&&this[l(0x126)][l(0x12a)]['push'](new a14r(this[l(0x11e)],this[l(0x11e)]));}[a14x(0x115)](){const o=a14x;return console['log'](o(0x129)),Promise['resolve']();}['onUpKey'](){const O=a14x;if(this[O(0x12e)])return;this[O(0x12b)]=incrementListIndex(this['selected'],'up',this[O(0x126)]),this[O(0x12f)]();}async[a14x(0x11a)](){const H=a14x;if(this[H(0x12e)])return;this[H(0x12b)]=incrementListIndex(this[H(0x12b)],H(0x128),this[H(0x126)]),await this[H(0x12c)](),this[H(0x12f)]();}async['handleDynamicPageLoad'](){const t=a14x;if(this[t(0x12b)]>=this[t(0x126)]['choices'][t(0x118)]-0x1){if(this[t(0x127)]===undefined)return;this[t(0x12e)]=!![];let a=0x0;const M=setInterval(()=>{const Z=t,h=['⠋','⠙','⠹','⠸','⠼','⠴','⠦','⠧','⠇','⠏'],Y=a14w[Z(0x11c)](h[a%h['length']]+Z(0x124));this[Z(0x126)][Z(0x12a)][Z(0x12a)][this[Z(0x12b)]]['name']=''+Y,a+=0x1,this[Z(0x12f)]();},0x50),{elements:L,nextPageCursor:r}=await this[t(0x125)][t(0x116)]({'nextPageCursor':this[t(0x127)]})[t(0x111)](()=>({'elements':[],'nextPageCursor':undefined}));this[t(0x127)]=r;const w=L['map'](h=>new a14r(h,h));this[t(0x126)]['choices'][t(0x12a)][t(0x113)](this[t(0x12b)],0x1),this[t(0x126)][t(0x12a)][t(0x117)](...w),r!==undefined&&this[t(0x126)][t(0x12a)][t(0x117)](new a14r(this['reloadText'],this[t(0x11e)])),clearInterval(M),this[t(0x12e)]=![];}}}function a14a(){const f=['4tXHvyV','run','loadMore','push','length','2gjYAUr','onDownKey','..\x20Load\x20more\x20options\x20..','italic','dir\x20must\x20be\x20up\x20or\x20down','reloadText','realLength','1941350iKaLvc','170135vMiAhN','284080oCPXbs','737517qKGCJG','\x20Loading\x20more\x20options','pagOpt','opt','nextPageCursor','down','Method\x20not\x20implemented','choices','selected','handleDynamicPageLoad','254370uFcErb','loading','render','3523212QqiuMo','loop','138lAKxHM','4307088UBogfc','catch','27hMjKdK','splice'];a14a=function(){return f;};return a14a();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a15g=a15j;(function(X,j){const M=a15j,V=X();while(!![]){try{const H=parseInt(M(0x207))/0x1+parseInt(M(0x20c))/0x2*(-parseInt(M(0x21a))/0x3)+parseInt(M(0x204))/0x4*(-parseInt(M(0x1f8))/0x5)+-parseInt(M(0x1b3))/0x6+parseInt(M(0x1fb))/0x7*(-parseInt(M(0x1b5))/0x8)+parseInt(M(0x1b4))/0x9+parseInt(M(0x211))/0xa;if(H===j)break;else V['push'](V['shift']());}catch(O){V['push'](V['shift']());}}}(a15X,0x8d78c));import{ApiClient}from'@northflank/js-client';import a15V from'chalk';import{assertContextExisting,customUserAgent,error,getCommand,success,warning}from'../utils.js';function a15j(X,j){const V=a15X();return a15j=function(H,O){H=H-0x1b2;let F=V[H];return F;},a15j(X,j);}import{InquirerHelper}from'../inquirer-helper.js';import*as a15H from'os';import{uniqBy,uniq,repeat,groupBy,capitalize}from'lodash-es';function a15X(){const D=['\x20to\x20','\x20service\x20ports','--noDefaults','flat','Port-forwarding\x20for\x20Northflank\x20services\x20and\x20addons.','addCommand','\x20\x20If\x20you\x20have\x20added\x20entries\x20to\x20your\x20hosts\x20file,\x20it\x20is\x20recommended\x20to\x20remove\x20them\x20again\x20now.','platform','Forwarding\x20','getCurrentProjectName','Stop\x20forwarding\x20traffic\x20from\x20','map','/etc/hosts','name','--project\x20--projectId\x20[NAME]','forwardAddon','Port-forwarding\x20for\x20all\x20services\x20and\x20addons\x20in\x20the\x20given\x20project','connection-error','\x27:\x20\x22','Instance\x20to\x20forward','join','\x20with\x20these\x20hostnames:','\x20is\x20exposed\x20with\x20multiple\x20','Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.','skipHostnames','\x20is\x20running\x20and\x20reachable\x20and\x20that\x20a\x20port\x20is\x20defined\x20on\x20the\x20networking\x20section.','type','win32','portName','fwd','protocol','askForService','bold','Failed:\x20','reset','message','description','tunnel-close','\x20in\x20project\x20','filter','\x20\x20\x20\x20\x20\x20\x20\x20\x20','Addons:','alias','service','greenBright','hostnames','option','printForwardingInfo','data.id','\x20flag\x20or\x20manually\x20append\x20following\x20entry\x20to\x20your\x20hosts\x20file\x20(','--instance\x20--instanceId\x20[NAME]','Cleaning\x20up\x20open\x20connections\x20failed:\x20','green','http://','all','5hZpMXm','error','--addon\x20--addonId\x20[NAME]','6153rIbcAm','port','\x20\x20-\x20Address:\x20','\x20\x20-\x20port\x20','length','log','ports','getProxyForwarder','portFwdCmd','3345524bnMxvS','\x20\x20\x20No\x20running\x20container\x20found\x20for\x20','forwardProject','57322KuaEvJ','darwin','getCurrentServiceName','>\x20Instance\x20\x27','Project\x20for\x20forwarding','162170MRBEby','action','forwardService','Services:','project\x20for\x20forwarding','30243860pDqYsV','noDefaultsText','Running\x20on\x20macOS\x20in\x20','Error\x20occured\x20while\x20trying\x20to\x20forward\x20','askForAddon','--skipHostnames','HTTP','skipHostnamesText','\x20mode.\x20If\x20hostname\x20forwarding\x20is\x20required,\x20remove\x20','33MxQzRl','address','Only\x20expose\x20on\x20IP\x20address,\x20not\x20on\x20hostnames.\x20With\x20this\x20option,\x20no\x20root\x20permissions\x20are\x20required.','\x20and\x20','Addon\x20to\x20forward','data','canExecuteWithHostnames','3638202VaXgzQ','4290750oYnZRd','5864gDSxXZ','apiClient','Running\x20in\x20','askForProject','\x20is\x20exposed\x20on\x20','\x27\x20of\x20','printHostsFileHint','forEach',',\x20hostname:\x20','Port-forwarding\x20for\x20the\x20specified\x20addon','addon','flatMap'];a15X=function(){return D;};return a15X();}import{EOL}from'os';export class CliPortForward{[a15g(0x203)];[a15g(0x1b6)];[a15g(0x212)]=a15g(0x1d8);['skipHostnamesText']=a15g(0x21c);constructor(X,j){const J=a15g;this[J(0x1b6)]=new ApiClient(X,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':j});const V=new InquirerHelper(this['apiClient']);this[J(0x203)]=getCommand()[J(0x1ce)]('forward')[J(0x1eb)](J(0x1de))[J(0x1e5)](J(0x1c5));const H=getCommand(!![])[J(0x1ce)](J(0x1f7))[J(0x1e5)](J(0x1d1))[J(0x1ef)]('--project\x20--projectId\x20[NAME]',J(0x210))['option'](J(0x1c3),this[J(0x212)],![])[J(0x1ef)](J(0x216),this[J(0x218)],![])[J(0x20d)](async({noDefaults:h,projectId:P,skipHostnames:o})=>{const b=J;assertContextExisting(this[b(0x1b6)]);const C=this[b(0x202)](o),B=h?undefined:X['getCurrentProjectName'](),s=P||B||await V[b(0x1b8)]();try{const {services:S,addons:y}=await C[b(0x206)]({'projectId':s},o);if(S[b(0x1ff)]+y['length']<=0x0)warning('No\x20services\x20and\x20addons\x20to\x20forward\x20found\x20in\x20project\x20'+a15V[b(0x1e1)](s));else{const A=S[b(0x1e8)](W=>W[b(0x1ff)]>0x0)[b(0x1ff)],l=y[b(0x1e8)](W=>W['length']>0x0)[b(0x1ff)],T=b(0x1e7)+a15V[b(0x1e1)](s);console[b(0x200)](b(0x1c9)+a15V['green'][b(0x1e1)](A+b(0x1c2))+b(0x21d)+a15V[b(0x1f5)][b(0x1e1)](l+'\x20addon\x20ports')+T),console['log'](),console[b(0x200)](a15V['bold'](b(0x20f))),S[b(0x1bc)](W=>{const E=b;if(W[E(0x1ff)]>=0x1&&!W[0x0][E(0x1f9)])this['printForwardingInfo'](W,{'type':E(0x1ec),'name':W[0x0]['data']['id']},o);}),console[b(0x200)](a15V[b(0x1e1)](b(0x1ea))),y[b(0x1bc)](W=>{const t=b;if(W['length']>=0x1&&!W[0x0][t(0x1f9)])this['printForwardingInfo'](W,{'type':t(0x1bf),'name':W[0x0][t(0x21f)]['id']},o);}),this[b(0x1bb)]([...S[b(0x1c4)](),...y[b(0x1c4)]()],o);}}catch(W){error('Failed:\x20'+W[b(0x1e4)]);}}),O=getCommand(!![])[J(0x1ce)](J(0x1ec))['description']('Port-forwarding\x20for\x20the\x20specified\x20service')[J(0x1ef)](J(0x1cf),'Project\x20for\x20forwarding')[J(0x1ef)]('--service\x20--serviceId\x20[NAME]','Service\x20to\x20forward')[J(0x1ef)](J(0x1f3),J(0x1d4))['option'](J(0x1c3),this[J(0x212)],![])[J(0x1ef)](J(0x216),this['skipHostnamesText'],![])['action'](async({noDefaults:h,projectId:P,serviceId:o,instanceId:C,skipHostnames:B})=>{const Z=J;assertContextExisting(this[Z(0x1b6)]);const s=this[Z(0x202)](B),S=h?undefined:X[Z(0x1ca)](),y=P||S||await V[Z(0x1b8)](),A=h?undefined:X[Z(0x209)](),l=o||A||await V[Z(0x1e0)](y)();console[Z(0x200)]('Forwarding\x20service\x20'+a15V[Z(0x1e1)](l)+Z(0x1e7)+a15V[Z(0x1e1)](y));try{const T=await s[Z(0x20e)]({'projectId':y,'serviceId':l,'instanceId':C},B);this[Z(0x1f0)](T,{'name':l,'type':Z(0x1ec),'instanceId':C},B),this[Z(0x1bb)](T,B);}catch(W){error(Z(0x1e2)+W[Z(0x1e4)]);}}),F=getCommand(!![])[J(0x1ce)](J(0x1bf))[J(0x1e5)](J(0x1be))[J(0x1ef)](J(0x1cf),J(0x20b))[J(0x1ef)](J(0x1fa),J(0x21e))[J(0x1ef)](J(0x216),this['skipHostnamesText'],![])['action'](async({noDefaults:h,projectId:P,addonId:o,skipHostnames:C})=>{const w=J;assertContextExisting(this[w(0x1b6)]);const B=this['getProxyForwarder'](C),s=h?undefined:X[w(0x1ca)](),S=P||s||await V[w(0x1b8)](),y=o||await V[w(0x215)](S)();console[w(0x200)]('Forwarding\x20addon\x20'+a15V['bold'](y)+w(0x1e7)+a15V[w(0x1e1)](S));try{const A={'projectId':S,'addonId':y},l=await B[w(0x1d0)](A,C);this[w(0x1f0)](l,{'name':y,'type':w(0x1bf)},C),this[w(0x1bb)](l,C);}catch(T){error(w(0x1e2)+T[w(0x1e4)]);}});this[J(0x203)]['addCommand'](H),this[J(0x203)][J(0x1c6)](O),this['portFwdCmd'][J(0x1c6)](F);}['getProxyForwarder'](X=![]){const N=a15g,j=this[N(0x1b6)]['forwarding'];if(!X){const V=j[N(0x1b2)]();if(V[N(0x1f9)])throw new Error(V['message']);}return j['on'](N(0x1e6),(H,O)=>{const p=N,F=a15V[p(0x1e1)](O[p(0x1db)]+'\x20\x27'+O['id']+'\x27'),h=O['hostnames'][p(0x1ff)]>0x0;warning(p(0x1cb)+O[p(0x21b)]+':'+O[p(0x1fc)]+p(0x1c1)+F),X&&h&&warning(p(0x1c7));}),j['on'](N(0x1d2),(H,O,F)=>{const m=N;warning('Connection\x20error\x20occurred\x20when\x20forwarding\x20\x27'+O[m(0x21b)]+':'+O['port']+m(0x1d3)+F?.['message']+'\x22');}),process['on']('SIGINT',async()=>{const k=N;try{await j['stop']();}catch(H){error(k(0x1f4)+H[k(0x1e4)]);}finally{process['exit']();}}),j;}[a15g(0x1f0)](X,j,V=![]){const I=a15g,{type:H,name:O,instanceId:F}=j;if(X[I(0x1ff)]<=0x0){const C='Please\x20ensure\x20the\x20'+j['type']+I(0x1da);warning(I(0x205)+H+'\x20'+a15V[I(0x1e1)](O)+'.\x20'+C);return;}const h=groupBy(X,I(0x1f1)),P=B=>'\x20('+(B['portName']?B[I(0x1dd)]+'\x20-\x20':'')+B[I(0x1df)]+')';function o(B,s=0x2){const K=I;if(!V){const S=B['protocol']===K(0x217)?K(0x1f6):'';B[K(0x1ee)][K(0x1bc)](y=>{const L=K;console[L(0x200)](repeat('\x20',s)+'-\x20'+S+y+':'+B[L(0x1fc)]);});}}Object['entries'](h)[I(0x1bc)](([B,s])=>{const a=I,S=F?a(0x20a)+a15V['greenBright'][a(0x1e1)](F)+a(0x1ba)+H+'\x20\x27'+a15V[a(0x1ed)][a(0x1e1)](B)+'\x27':'>\x20'+capitalize(H)+'\x20\x27'+a15V[a(0x1ed)]['bold'](B)+'\x27';if(H===a(0x1bf)){if(s[a(0x1ff)]===0x1){const y=s[0x0];if(y['error']){error(a(0x214)+B+':\x20'+y[a(0x1f9)][a(0x1e4)]);return;}const e=y[a(0x21f)],A=!V?'\x20'+a15V[a(0x1e3)]('with\x20hostname:\x20'+e['hostnames'][a(0x1d5)](',')):'';success(S+a(0x1b9)+e['address']+':'+e[a(0x1fc)]+P(e)+A);}else{const l=uniqBy(s,T=>T?.[a(0x21f)]?.['hostnames']?.[a(0x1d5)](','))[a(0x1ff)]>0x1;success(S+a(0x1d7)+(l?'hosts':a(0x201))+':'),s[a(0x1bc)](T=>{const r=a;if(T[r(0x1f9)]){error(r(0x214)+B+':\x20'+T[r(0x1f9)][r(0x1e4)]);return;}const W=T[r(0x21f)],v=!V?r(0x1bd)+W[r(0x1ee)][r(0x1d5)](','):'';console['log'](r(0x1fd)+W['address']+':'+W[r(0x1fc)]+P(W)+v);});}}if(H===a(0x1ec)){if(s[a(0x1ff)]===0x1){const T=s[0x0];if(T[a(0x1f9)]){error('Error\x20occured\x20while\x20trying\x20to\x20forward\x20'+B+':\x20'+T[a(0x1f9)]['message']);return;}const W=T['data'],v=!V?a(0x1d6):':',G=W[a(0x21b)]+':'+W[a(0x1fc)]+P(W);success(S+a(0x1b9)+G+v),o(W);}else success(S+a(0x1b9)+s[0x0]?.[a(0x21f)]?.[a(0x21b)]+'\x20with\x20multiple\x20ports:'),s[a(0x1bc)](d=>{const R=a;if(d[R(0x1f9)]){error(R(0x214)+B+':\x20'+d[R(0x1f9)][R(0x1e4)]);return;}const x=d[R(0x21f)];success(R(0x1fe)+x[R(0x1fc)]+P(x)),o(x,0x4);});}});}['printHostsFileHint'](X,j=![]){const n=a15g;if(j){const V=X[n(0x1c0)](B=>B[n(0x21f)])['filter'](B=>B!==undefined),H=process?.[n(0x1c8)]===n(0x1dc),O=a15H[n(0x1c8)]()===n(0x208),F=H?'C:/Windows/System32/drivers/etc/hosts':n(0x1cd),h=a15V['bold'](n(0x1d9)),P=O?EOL+n(0x213)+h+'\x20mode:\x20the\x20locally\x20forwarded\x20port\x20differs\x20from\x20the\x20actual\x20port\x20on\x20the\x20forwarded\x20service/addon.':undefined;let o=n(0x1b7)+h+n(0x219)+n(0x216)+n(0x1f2)+F+'):';P!==undefined&&warning(P??'');warning(o);const C=V[n(0x1cc)](B=>B['address']+n(0x1e9)+B[n(0x1ee)][n(0x1d5)]('\x20'));console[n(0x200)](uniq(C)[n(0x1d5)](EOL)),console[n(0x200)]();}}}
|
|
1
|
+
function a15M(a,M){const L=a15a();return a15M=function(r,w){r=r-0xf2;let h=L[r];return h;},a15M(a,M);}const a15b=a15M;(function(a,M){const q=a15M,L=a();while(!![]){try{const r=parseInt(q(0x111))/0x1*(parseInt(q(0x13c))/0x2)+parseInt(q(0x153))/0x3*(-parseInt(q(0x152))/0x4)+parseInt(q(0x149))/0x5*(parseInt(q(0x112))/0x6)+parseInt(q(0x12b))/0x7*(parseInt(q(0x125))/0x8)+parseInt(q(0x10a))/0x9*(-parseInt(q(0x118))/0xa)+-parseInt(q(0x136))/0xb*(-parseInt(q(0x13e))/0xc)+-parseInt(q(0xf9))/0xd*(parseInt(q(0x12e))/0xe);if(r===M)break;else L['push'](L['shift']());}catch(w){L['push'](L['shift']());}}}(a15a,0x41e73));import{ApiClient}from'@northflank/js-client';import a15L from'chalk';function a15a(){const E=['portName','\x20service\x20ports','--noDefaults','bold','askForService','noDefaultsText','Cleaning\x20up\x20open\x20connections\x20failed:\x20','\x27:\x20\x22','hostnames','http://','65055eRCBXp','tunnel-close','platform','Error\x20occured\x20while\x20trying\x20to\x20forward\x20','\x20\x20-\x20Address:\x20','\x20mode:\x20the\x20locally\x20forwarded\x20port\x20differs\x20from\x20the\x20actual\x20port\x20on\x20the\x20forwarded\x20service/addon.','ports','Forwarding\x20addon\x20','Failed:\x20','2188dgFdzG','1689baRQyr','entries','\x20with\x20multiple\x20ports:','\x20in\x20project\x20',',\x20hostname:\x20','fwd','action','getProxyForwarder','\x20is\x20exposed\x20on\x20','Stop\x20forwarding\x20traffic\x20from\x20','map','--project\x20--projectId\x20[NAME]','project\x20for\x20forwarding','\x20\x20\x20No\x20running\x20container\x20found\x20for\x20','Addons:','win32','log','Running\x20on\x20macOS\x20in\x20','flat','address','description','skipHostnamesText','Port-forwarding\x20for\x20the\x20specified\x20service','error','forwardProject','darwin','Forwarding\x20service\x20','13YwnHRB','--skipHostnames','type','--addon\x20--addonId\x20[NAME]','hosts','filter','protocol','reset','\x20to\x20','port','greenBright','message','service','HTTP','printForwardingInfo','stop','Only\x20expose\x20on\x20IP\x20address,\x20not\x20on\x20hostnames.\x20With\x20this\x20option,\x20no\x20root\x20permissions\x20are\x20required.','2561175DlAryM','Addon\x20to\x20forward','getCurrentServiceName','option','Service\x20to\x20forward','exit','addon','14621TDSksD','18fZYSAW','Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.','\x20\x20-\x20port\x20','getCurrentProjectName','forEach','name','10HUqERt','length','join','Project\x20for\x20forwarding','forwardService','Port-forwarding\x20for\x20the\x20specified\x20addon','SIGINT','all','--instance\x20--instanceId\x20[NAME]','askForProject','Port-forwarding\x20for\x20all\x20services\x20and\x20addons\x20in\x20the\x20given\x20project','--service\x20--serviceId\x20[NAME]','forward','4089416JbPgRg','skipHostnames','C:/Windows/System32/drivers/etc/hosts','forwardAddon','/etc/hosts','apiClient','7sfAhWb','\x20is\x20running\x20and\x20reachable\x20and\x20that\x20a\x20port\x20is\x20defined\x20on\x20the\x20networking\x20section.','\x20addon\x20ports','3244556qvAbpY','Services:','\x20mode.\x20If\x20hostname\x20forwarding\x20is\x20required,\x20remove\x20','\x20and\x20','>\x20Instance\x20\x27','with\x20hostname:\x20','portFwdCmd','data','907346LRoIkL','Please\x20ensure\x20the\x20','addCommand','Connection\x20error\x20occurred\x20when\x20forwarding\x20\x27','No\x20services\x20and\x20addons\x20to\x20forward\x20found\x20in\x20project\x20','printHostsFileHint','18JVXAnF','canExecuteWithHostnames','60aQITNP'];a15a=function(){return E;};return a15a();}import{assertContextExisting,customUserAgent,error,getCommand,success,warning}from'../utils.js';import{InquirerHelper}from'../inquirer-helper.js';import*as a15r from'os';import{uniqBy,uniq,repeat,groupBy,capitalize}from'lodash-es';import{EOL}from'os';export class CliPortForward{['portFwdCmd'];['apiClient'];[a15b(0x144)]=a15b(0x113);[a15b(0xf3)]=a15b(0x109);constructor(a,M){const F=a15b;this['apiClient']=new ApiClient(a,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':M});const L=new InquirerHelper(this[F(0x12a)]);this[F(0x134)]=getCommand()[F(0x117)](F(0x124))['alias'](F(0x158))[F(0xf2)]('Port-forwarding\x20for\x20Northflank\x20services\x20and\x20addons.');const r=getCommand(!![])[F(0x117)](F(0x11f))[F(0xf2)](F(0x122))['option'](F(0x15e),F(0x15f))[F(0x10d)](F(0x141),this['noDefaultsText'],![])[F(0x10d)](F(0xfa),this[F(0xf3)],![])['action'](async({noDefaults:Y,projectId:C,skipHostnames:i})=>{const v=F;assertContextExisting(this[v(0x12a)]);const x=this[v(0x15a)](i),l=Y?undefined:a[v(0x115)](),o=C||l||await L[v(0x121)]();try{const {services:O,addons:H}=await x[v(0xf6)]({'projectId':o},i);if(O['length']+H[v(0x119)]<=0x0)warning(v(0x13a)+a15L[v(0x142)](o));else{const t=O['filter'](B=>B[v(0x119)]>0x0)[v(0x119)],Z=H[v(0xfe)](B=>B[v(0x119)]>0x0)[v(0x119)],f=v(0x156)+a15L[v(0x142)](o);console[v(0x163)]('Forwarding\x20'+a15L['green'][v(0x142)](t+v(0x140))+v(0x131)+a15L['green'][v(0x142)](Z+v(0x12d))+f),console[v(0x163)](),console[v(0x163)](a15L['bold'](v(0x12f))),O[v(0x116)](B=>{const T=v;if(B[T(0x119)]>=0x1&&!B[0x0]['error'])this[T(0x107)](B,{'type':T(0x105),'name':B[0x0][T(0x135)]['id']},i);}),console[v(0x163)](a15L['bold'](v(0x161))),H[v(0x116)](B=>{const V=v;if(B[V(0x119)]>=0x1&&!B[0x0][V(0xf5)])this[V(0x107)](B,{'type':V(0x110),'name':B[0x0][V(0x135)]['id']},i);}),this[v(0x13b)]([...O[v(0x165)](),...H[v(0x165)]()],i);}}catch(B){error('Failed:\x20'+B[v(0x104)]);}}),w=getCommand(!![])[F(0x117)](F(0x105))[F(0xf2)](F(0xf4))['option'](F(0x15e),F(0x11b))['option'](F(0x123),F(0x10e))['option'](F(0x120),'Instance\x20to\x20forward')['option'](F(0x141),this[F(0x144)],![])['option'](F(0xfa),this[F(0xf3)],![])[F(0x159)](async({noDefaults:Y,projectId:C,serviceId:i,instanceId:x,skipHostnames:l})=>{const n=F;assertContextExisting(this['apiClient']);const o=this[n(0x15a)](l),O=Y?undefined:a[n(0x115)](),H=C||O||await L[n(0x121)](),t=Y?undefined:a[n(0x10c)](),Z=i||t||await L[n(0x143)](H)();console[n(0x163)](n(0xf8)+a15L['bold'](Z)+'\x20in\x20project\x20'+a15L[n(0x142)](H));try{const f=await o[n(0x11c)]({'projectId':H,'serviceId':Z,'instanceId':x},l);this[n(0x107)](f,{'name':Z,'type':n(0x105),'instanceId':x},l),this[n(0x13b)](f,l);}catch(B){error(n(0x151)+B[n(0x104)]);}}),h=getCommand(!![])[F(0x117)](F(0x110))[F(0xf2)](F(0x11d))['option'](F(0x15e),F(0x11b))[F(0x10d)](F(0xfc),F(0x10b))[F(0x10d)](F(0xfa),this[F(0xf3)],![])[F(0x159)](async({noDefaults:Y,projectId:C,addonId:i,skipHostnames:x})=>{const e=F;assertContextExisting(this[e(0x12a)]);const l=this['getProxyForwarder'](x),o=Y?undefined:a['getCurrentProjectName'](),O=C||o||await L['askForProject'](),H=i||await L['askForAddon'](O)();console[e(0x163)](e(0x150)+a15L[e(0x142)](H)+e(0x156)+a15L['bold'](O));try{const t={'projectId':O,'addonId':H},Z=await l[e(0x128)](t,x);this['printForwardingInfo'](Z,{'name':H,'type':e(0x110)},x),this[e(0x13b)](Z,x);}catch(f){error(e(0x151)+f[e(0x104)]);}});this[F(0x134)][F(0x138)](r),this[F(0x134)]['addCommand'](w),this[F(0x134)]['addCommand'](h);}['getProxyForwarder'](a=![]){const p=a15b,M=this['apiClient']['forwarding'];if(!a){const L=M[p(0x13d)]();if(L[p(0xf5)])throw new Error(L[p(0x104)]);}return M['on'](p(0x14a),(r,w)=>{const y=p,h=a15L[y(0x142)](w[y(0xfb)]+'\x20\x27'+w['id']+'\x27'),Y=w[y(0x147)]['length']>0x0;warning(y(0x15c)+w[y(0x166)]+':'+w[y(0x102)]+y(0x101)+h),a&&Y&&warning('\x20\x20If\x20you\x20have\x20added\x20entries\x20to\x20your\x20hosts\x20file,\x20it\x20is\x20recommended\x20to\x20remove\x20them\x20again\x20now.');}),M['on']('connection-error',(r,w,h)=>{const g=p;warning(g(0x139)+w[g(0x166)]+':'+w[g(0x102)]+g(0x146)+h?.[g(0x104)]+'\x22');}),process['on'](p(0x11e),async()=>{const X=p;try{await M[X(0x108)]();}catch(r){error(X(0x145)+r[X(0x104)]);}finally{process[X(0x10f)]();}}),M;}[a15b(0x107)](a,M,L=![]){const P=a15b,{type:r,name:w,instanceId:h}=M;if(a[P(0x119)]<=0x0){const x=P(0x137)+M[P(0xfb)]+P(0x12c);warning(P(0x160)+r+'\x20'+a15L[P(0x142)](w)+'.\x20'+x);return;}const Y=groupBy(a,'data.id'),C=l=>'\x20('+(l['portName']?l[P(0x13f)]+'\x20-\x20':'')+l[P(0xff)]+')';function i(l,o=0x2){const Q=P;if(!L){const O=l[Q(0xff)]===Q(0x106)?Q(0x148):'';l[Q(0x147)]['forEach'](H=>{const d=Q;console[d(0x163)](repeat('\x20',o)+'-\x20'+O+H+':'+l['port']);});}}Object[P(0x154)](Y)['forEach'](([l,o])=>{const u=P,O=h?u(0x132)+a15L[u(0x103)]['bold'](h)+'\x27\x20of\x20'+r+'\x20\x27'+a15L[u(0x103)][u(0x142)](l)+'\x27':'>\x20'+capitalize(r)+'\x20\x27'+a15L['greenBright'][u(0x142)](l)+'\x27';if(r===u(0x110)){if(o[u(0x119)]===0x1){const H=o[0x0];if(H['error']){error(u(0x14c)+l+':\x20'+H[u(0xf5)][u(0x104)]);return;}const t=H[u(0x135)],Z=!L?'\x20'+a15L[u(0x100)](u(0x133)+t[u(0x147)][u(0x11a)](',')):'';success(O+u(0x15b)+t[u(0x166)]+':'+t[u(0x102)]+C(t)+Z);}else{const f=uniqBy(o,B=>B?.[u(0x135)]?.[u(0x147)]?.[u(0x11a)](','))[u(0x119)]>0x1;success(O+'\x20is\x20exposed\x20with\x20multiple\x20'+(f?u(0xfd):u(0x14f))+':'),o['forEach'](B=>{const J=u;if(B[J(0xf5)]){error(J(0x14c)+l+':\x20'+B[J(0xf5)][J(0x104)]);return;}const s=B['data'],A=!L?J(0x157)+s[J(0x147)][J(0x11a)](','):'';console['log'](J(0x14d)+s[J(0x166)]+':'+s[J(0x102)]+C(s)+A);});}}if(r===u(0x105)){if(o['length']===0x1){const B=o[0x0];if(B[u(0xf5)]){error(u(0x14c)+l+':\x20'+B[u(0xf5)][u(0x104)]);return;}const s=B[u(0x135)],A=!L?'\x20with\x20these\x20hostnames:':':',I=s[u(0x166)]+':'+s[u(0x102)]+C(s);success(O+u(0x15b)+I+A),i(s);}else success(O+u(0x15b)+o[0x0]?.[u(0x135)]?.[u(0x166)]+u(0x155)),o[u(0x116)](m=>{const U=u;if(m[U(0xf5)]){error(U(0x14c)+l+':\x20'+m[U(0xf5)]['message']);return;}const R=m[U(0x135)];success(U(0x114)+R[U(0x102)]+C(R)),i(R,0x4);});}});}[a15b(0x13b)](a,M=![]){const W=a15b;if(M){const L=a['flatMap'](l=>l[W(0x135)])[W(0xfe)](l=>l!==undefined),r=process?.[W(0x14b)]===W(0x162),w=a15r[W(0x14b)]()===W(0xf7),h=r?W(0x127):W(0x129),Y=a15L[W(0x142)](W(0x126)),C=w?EOL+W(0x164)+Y+W(0x14e):undefined;let i='Running\x20in\x20'+Y+W(0x130)+'--skipHostnames'+'\x20flag\x20or\x20manually\x20append\x20following\x20entry\x20to\x20your\x20hosts\x20file\x20('+h+'):';C!==undefined&&warning(C??'');warning(i);const x=L[W(0x15d)](l=>l[W(0x166)]+'\x20\x20\x20\x20\x20\x20\x20\x20\x20'+l[W(0x147)][W(0x11a)]('\x20'));console[W(0x163)](uniq(x)[W(0x11a)](EOL)),console[W(0x163)]();}}}
|
package/dist/utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a16x=a16M;(function(a,M){const i=a16M,L=a();while(!![]){try{const r=-parseInt(i(0x1d6))/0x1+-parseInt(i(0x1e1))/0x2+-parseInt(i(0x1d1))/0x3*(parseInt(i(0x1dd))/0x4)+parseInt(i(0x1e8))/0x5*(parseInt(i(0x1bc))/0x6)+-parseInt(i(0x1ca))/0x7*(parseInt(i(0x1e7))/0x8)+parseInt(i(0x1f0))/0x9*(-parseInt(i(0x1c4))/0xa)+parseInt(i(0x1bb))/0xb*(parseInt(i(0x1e0))/0xc);if(r===M)break;else L['push'](L['shift']());}catch(w){L['push'](L['shift']());}}}(a16a,0x62a0e));import a16L from'chalk';import{Command}from'commander';import{ProxyAgent}from'proxy-agent';import a16r 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[a16x(0x1e4)](readFileSync(join(__dirname,a16x(0x1c6)),a16x(0x1c9)));export const customUserAgent=a16x(0x1d0)+pgk?.[a16x(0x1ef)];export const agent=new ProxyAgent();function a16a(){const b=['then','redBright','3458690ELcXWA','log','../package.json',',\x20expected\x20valid\x20date\x20string\x20(example:\x202020-02-02T02:02:02Z)\x20or\x20unix\x20timestamp\x20(example\x201580608922)','https://registry.npmjs.org/','utf-8','210903mPzxDk','json','No\x20token\x20in\x20CLI\x20context.\x20Add\x20token\x20with\x20\x27northflank\x20set-token\x27','resolve','\x20-g\x27\x20or\x20\x27yarn\x20global\x20add\x20','/latest','northflank-cli/','3KYoXic','--quiet','error','No\x20console\x20output','push','423704WLHsHh','option','padEnd','No\x20API\x20URL\x20present\x20in\x20context.\x20Create\x20new\x20context\x20with\x20\x27northflank\x20login\x27','timeout','getDate','split','115928yppIXT','setLastUpdateCheck','getCurrentToken','1549740yxLpke','336634AujvLq','storeOptionsAsProperties','setDate','parse','Invalid\x20date\x20received:\x20','contextProvider','88NrFEHV','15515rnkjKL',',\x20the\x20latest\x20version\x20of\x20the\x20cli\x20is\x20','Verbose\x20output','allowUnknownOption','--skipValidation','GET','length','version','18uJEidf','helpOption','from','\x20Consider\x20updating\x20using\x20\x27npm\x20i\x20','env','replace','example:\x202020-02-02T02:02:02Z\x20(date\x20string)\x20or\x201580608922\x20(unix\x20ts)','143mGQgGj','714kEOIbV','getTime','HTTPS_PROXY','yellow','Failed:\x20','green'];a16a=function(){return b;};return a16a();}export const proxyEnvsSet=process[a16x(0x1b8)]['HTTP_PROXY']!==undefined||process[a16x(0x1b8)][a16x(0x1be)]!==undefined;export const decodeJwtPayload=a=>{const o=a16x;try{const M=w=>{const l=a16M,h=w[l(0x1b9)](/-/g,'+')[l(0x1b9)](/_/g,'/')[l(0x1d8)](w[l(0x1ee)]+(0x4-w[l(0x1ee)]%0x4)%0x4,'=');return JSON['parse'](Buffer[l(0x1f2)](h,'base64')['toString']());},[L,r]=a[o(0x1dc)]('.');return M(r);}catch(w){return{};}};export async function checkUpdate(a){const H=a16x;function M(L,r){const O=a16M,w=new Date(Number(L));return w[O(0x1e3)](w[O(0x1db)]()+r),w;}try{if(M(a['getLastUpdateCheck'](),0x1)>new Date())return;const L=pgk[H(0x1ef)],{name:r}=pgk;if(!L)return;const w=H(0x1c8)+r+H(0x1cf),h=await a16r(w,{'agent':agent,'method':H(0x1ed),'signal':AbortSignal[H(0x1da)](0x1388)}),Y=(await h[H(0x1cb)]())['version'];needsUpdate(L,Y)&&warning('**\x20You\x27re\x20running\x20on\x20version\x20'+L+H(0x1e9)+Y+'.'+(H(0x1b7)+r+H(0x1ce)+r+'\x27\x20**')),await a[H(0x1de)](new Date());}catch(C){}}function a16M(a,M){const L=a16a();return a16M=function(r,w){r=r-0x1b7;let h=L[r];return h;},a16M(a,M);}function needsUpdate(a,M){const t=a16x,L=/(\.0+)+$/,r=a[t(0x1b9)](L,'')['split']('.'),w=M[t(0x1b9)](L,'')['split']('.');for(let h=0x0;h<Math['min'](r[t(0x1ee)],w[t(0x1ee)]);h+=0x1){const Y=parseInt(w[h],0xa)-parseInt(r[h],0xa);if(Y>0x0)return!![];if(Y<0x0)return![];}return w[t(0x1ee)]>r['length'];}export function error(a){const Z=a16x;console[Z(0x1d3)](a16L[Z(0x1c3)](Z(0x1c0)+a));}export function warning(a){const f=a16x;console[f(0x1d3)](a16L[f(0x1bf)](''+a));}export function success(a){const B=a16x;console[B(0x1c5)](a16L[B(0x1c1)](''+a));}export function getCommand(a=![]){const s=a16x,M=new Command();return M[s(0x1f1)](undefined,'Display\x20help\x20for\x20command'),M['addHelpCommand'](![]),M[s(0x1e2)](![]),M[s(0x1eb)](![]),M['allowExcessArguments'](![]),M['enablePositionalOptions'](!![]),a&&(M['option']('--verbose',s(0x1ea),![]),M[s(0x1d7)](s(0x1d2),s(0x1d4),![]),M[s(0x1d7)](s(0x1ec),'Do\x20not\x20validate\x20input\x20fields\x20on\x20client\x20side',![])),M;}export const retry=(a,M=0x32)=>L=>{let r=a;const w=async()=>{try{return await L();}catch(h){if(r<=0x0)throw h;return r-=0x1,await new Promise(Y=>setTimeout(()=>Y(),M)),w();}};return w();};export const asyncSequential=async(a,M)=>{const A=a16x,L=Promise[A(0x1cd)]([]);return a['reduce']((r,w)=>r[A(0x1c2)](h=>M(w)[A(0x1c2)](Y=>{const I=A;return h[I(0x1d5)](Y),h;})),L);};export function isValidJSON(a){const m=a16x;try{return JSON[m(0x1e4)](a);}catch(M){return![];}}export function assertContextExisting(a){const R=a16x;if(a[R(0x1e6)]['getCurrentContext']()===undefined)throw new Error('No\x20CLI\x20context\x20present.\x20Create\x20context\x20with\x20\x27northflank\x20login\x27');if(a[R(0x1e6)]['getCurrentBaseUrl']()===undefined)throw new Error(R(0x1d9));if(a['contextProvider'][R(0x1df)]()===undefined)throw new Error(R(0x1cc));}export const parseDateInput=a=>{const q=a16x;try{let M=new Date(a);if(isNaN(M[q(0x1bd)]())){const L=a[q(0x1ee)]===0xd?a/0x3e8:a,r=new Date(0x0);r['setUTCSeconds'](L);if(isNaN(r['getTime']()))throw new Error();return r;}return M;}catch(w){throw new Error(q(0x1e5)+a+q(0x1c7));}};export const tsHint=a16x(0x1ba);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@northflank/cli",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.14",
|
|
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.8.
|
|
30
|
+
"@northflank/js-client": "0.8.11",
|
|
31
31
|
"bufferutil": "^4.0.9",
|
|
32
32
|
"chalk": "~5.6.2",
|
|
33
33
|
"columnify": "^1.6.0",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"inquirer": "8.2.7",
|
|
36
36
|
"inquirer-search-list": "^1.2.6",
|
|
37
37
|
"js-yaml": "^4.1.1",
|
|
38
|
-
"lodash-es": "^4.17.
|
|
38
|
+
"lodash-es": "^4.17.23",
|
|
39
39
|
"node-fetch": "^3.3.2",
|
|
40
40
|
"open": "^11.0.0",
|
|
41
41
|
"proxy-agent": "^6.5.0",
|