@northflank/cli 0.10.14 → 0.10.15
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 +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a14r=a14N;(function(x,N){const O=a14N,w=x();while(!![]){try{const Y=-parseInt(O(0x1c3))/0x1+parseInt(O(0x1b0))/0x2*(parseInt(O(0x1ab))/0x3)+parseInt(O(0x1bf))/0x4+parseInt(O(0x1ba))/0x5*(-parseInt(O(0x1c0))/0x6)+-parseInt(O(0x1ad))/0x7+parseInt(O(0x1bb))/0x8+-parseInt(O(0x1be))/0x9*(parseInt(O(0x1b7))/0xa);if(Y===N)break;else w['push'](w['shift']());}catch(L){w['push'](w['shift']());}}}(a14x,0xe59b4));import a14w from'inquirer/lib/prompts/list.js';import a14Y from'inquirer/lib/objects/choice.js';function a14N(x,N){const w=a14x();return a14N=function(Y,L){Y=Y-0x1ab;let t=w[Y];return t;},a14N(x,N);}import a14L from'chalk';function a14x(){const Q=['11204056OYcSWW','loadMore','choices','11871oRqbIZ','6271848IdHZpT','366SnNcWl','run','length','960377enhVgq','selected','onDownKey','map','render','opt','name','Method\x20not\x20implemented','italic','3bOaahc','loop','4398583lYUqyR','handleDynamicPageLoad','push','3659464qgEQlb','..\x20Load\x20more\x20options\x20..','reloadText','nextPageCursor','splice','down','pagOpt','16430PyAovy','loading','realLength','8350NObJBb'];a14x=function(){return Q;};return a14x();}function incrementListIndex(x,N,w){const v=a14N,Y=w[v(0x1bd)][v(0x1b9)],L=v(0x1ac)in w?Boolean(w[v(0x1ac)]):!![];if(N==='up'){if(x>0x0)return x-0x1;return L?Y-0x1:x;}if(N===v(0x1b5)){if(x<Y-0x1)return x+0x1;return L?0x0:x;}throw new Error('dir\x20must\x20be\x20up\x20or\x20down');}export class DynamicReloadPaginationPrompt extends a14w{[a14r(0x1b2)]=a14L[a14r(0x1cb)](a14r(0x1b1));[a14r(0x1b6)];['loading']=![];[a14r(0x1b3)];constructor(x,N,w){const a=a14r;super(x,N,w),this[a(0x1b6)]=this[a(0x1c8)],this['nextPageCursor']=this[a(0x1b6)][a(0x1b3)],this[a(0x1b3)]!==undefined&&this['opt'][a(0x1bd)][a(0x1af)](new a14Y(this[a(0x1b2)],this[a(0x1b2)]));}[a14r(0x1c1)](){const f=a14r;return console['log'](f(0x1ca)),Promise['resolve']();}['onUpKey'](){const p=a14r;if(this['loading'])return;this[p(0x1c4)]=incrementListIndex(this[p(0x1c4)],'up',this[p(0x1c8)]),this[p(0x1c7)]();}async[a14r(0x1c5)](){const j=a14r;if(this[j(0x1b8)])return;this[j(0x1c4)]=incrementListIndex(this[j(0x1c4)],j(0x1b5),this['opt']),await this[j(0x1ae)](),this[j(0x1c7)]();}async[a14r(0x1ae)](){const K=a14r;if(this[K(0x1c4)]>=this[K(0x1c8)][K(0x1bd)]['length']-0x1){if(this[K(0x1b3)]===undefined)return;this[K(0x1b8)]=!![];let x=0x0;const N=setInterval(()=>{const i=K,t=['⠋','⠙','⠹','⠸','⠼','⠴','⠦','⠧','⠇','⠏'],c=a14L[i(0x1cb)](t[x%t[i(0x1c2)]]+'\x20Loading\x20more\x20options');this[i(0x1c8)][i(0x1bd)][i(0x1bd)][this[i(0x1c4)]][i(0x1c9)]=''+c,x+=0x1,this[i(0x1c7)]();},0x50),{elements:w,nextPageCursor:Y}=await this[K(0x1b6)][K(0x1bc)]({'nextPageCursor':this[K(0x1b3)]})['catch'](()=>({'elements':[],'nextPageCursor':undefined}));this['nextPageCursor']=Y;const L=w[K(0x1c6)](t=>new a14Y(t,t));this[K(0x1c8)][K(0x1bd)]['choices'][K(0x1b4)](this[K(0x1c4)],0x1),this[K(0x1c8)][K(0x1bd)][K(0x1af)](...L),Y!==undefined&&this[K(0x1c8)]['choices'][K(0x1af)](new a14Y(this['reloadText'],this[K(0x1b2)])),clearInterval(N),this[K(0x1b8)]=![];}}}
|
|
@@ -1 +1 @@
|
|
|
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)]();}}}
|
|
1
|
+
const a15M=a15N;(function(x,N){const C=a15N,w=x();while(!![]){try{const Y=-parseInt(C(0x11c))/0x1+parseInt(C(0x104))/0x2*(parseInt(C(0x12d))/0x3)+parseInt(C(0x10f))/0x4+-parseInt(C(0x12e))/0x5*(parseInt(C(0x137))/0x6)+parseInt(C(0x11d))/0x7+-parseInt(C(0xf9))/0x8*(parseInt(C(0x11f))/0x9)+-parseInt(C(0xef))/0xa;if(Y===N)break;else w['push'](w['shift']());}catch(L){w['push'](w['shift']());}}}(a15x,0x5f665));import{ApiClient}from'@northflank/js-client';import a15w from'chalk';import{assertContextExisting,customUserAgent,error,getCommand,success,warning}from'../utils.js';import{InquirerHelper}from'../inquirer-helper.js';import*as a15Y from'os';import{uniqBy,uniq,repeat,groupBy,capitalize}from'lodash-es';function a15x(){const U=['win32','4735784PwHICq','Port-forwarding\x20for\x20Northflank\x20services\x20and\x20addons.','\x27\x20of\x20','with\x20hostname:\x20','C:/Windows/System32/drivers/etc/hosts','fwd','entries','portName','type','Addon\x20to\x20forward','Services:','10GEffAw','forward','action','askForProject','Failed:\x20','hostnames','addon','join','portFwdCmd','Addons:','green','2592808fnMwTp','log','getCurrentProjectName','\x20is\x20running\x20and\x20reachable\x20and\x20that\x20a\x20port\x20is\x20defined\x20on\x20the\x20networking\x20section.','\x20flag\x20or\x20manually\x20append\x20following\x20entry\x20to\x20your\x20hosts\x20file\x20(','platform','Forwarding\x20service\x20','addCommand','filter',',\x20hostname:\x20','darwin','\x20to\x20','--addon\x20--addonId\x20[NAME]','592571SlAzcj','5269684amYVFY','skipHostnamesText','9OZZbVa','>\x20Instance\x20\x27','port','hosts','exit','http://','error','getProxyForwarder','forwardProject','flat','Running\x20on\x20macOS\x20in\x20','\x20is\x20exposed\x20on\x20','bold','canExecuteWithHostnames','290778TnhmjW','5qxNpOp','SIGINT','--project\x20--projectId\x20[NAME]','Connection\x20error\x20occurred\x20when\x20forwarding\x20\x27','flatMap','reset','length','/etc/hosts','message','1358166eHSeNG','protocol','description','data','greenBright','data.id','map','Project\x20for\x20forwarding','Only\x20expose\x20on\x20IP\x20address,\x20not\x20on\x20hostnames.\x20With\x20this\x20option,\x20no\x20root\x20permissions\x20are\x20required.','\x20\x20If\x20you\x20have\x20added\x20entries\x20to\x20your\x20hosts\x20file,\x20it\x20is\x20recommended\x20to\x20remove\x20them\x20again\x20now.','askForAddon','\x20\x20-\x20Address:\x20','\x20with\x20these\x20hostnames:','\x20in\x20project\x20','printHostsFileHint','\x20addon\x20ports','name','\x20\x20\x20\x20\x20\x20\x20\x20\x20','printForwardingInfo','--noDefaults','alias','project\x20for\x20forwarding','forwardAddon','--instance\x20--instanceId\x20[NAME]','Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.','askForService','\x20service\x20ports','\x20\x20\x20No\x20running\x20container\x20found\x20for\x20','getCurrentServiceName','Forwarding\x20','\x20with\x20multiple\x20ports:','apiClient','service','forwardService','Error\x20occured\x20while\x20trying\x20to\x20forward\x20','Cleaning\x20up\x20open\x20connections\x20failed:\x20','noDefaultsText','--service\x20--serviceId\x20[NAME]','option','Port-forwarding\x20for\x20the\x20specified\x20addon','839820QCNwzu','No\x20services\x20and\x20addons\x20to\x20forward\x20found\x20in\x20project\x20','\x20-\x20','address','forEach','forwarding','--skipHostnames','Please\x20ensure\x20the\x20','\x27:\x20\x22'];a15x=function(){return U;};return a15x();}function a15N(x,N){const w=a15x();return a15N=function(Y,L){Y=Y-0xd0;let t=w[Y];return t;},a15N(x,N);}import{EOL}from'os';export class CliPortForward{[a15M(0x10c)];[a15M(0xe6)];[a15M(0xeb)]=a15M(0xdf);['skipHostnamesText']=a15M(0x13f);constructor(x,N){const e=a15M;this[e(0xe6)]=new ApiClient(x,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':N});const w=new InquirerHelper(this[e(0xe6)]);this[e(0x10c)]=getCommand()[e(0xd7)](e(0x105))[e(0xdb)](e(0xfe))['description'](e(0xfa));const Y=getCommand(!![])[e(0xd7)]('all')['description']('Port-forwarding\x20for\x20all\x20services\x20and\x20addons\x20in\x20the\x20given\x20project')[e(0xed)](e(0x130),e(0xdc))[e(0xed)](e(0xda),this[e(0xeb)],![])['option'](e(0xf5),this[e(0x11e)],![])[e(0x106)](async({noDefaults:c,projectId:O,skipHostnames:v})=>{const F=e;assertContextExisting(this[F(0xe6)]);const r=this['getProxyForwarder'](v),a=c?undefined:x['getCurrentProjectName'](),f=O||a||await w[F(0x107)]();try{const {services:p,addons:j}=await r[F(0x127)]({'projectId':f},v);if(p['length']+j[F(0x134)]<=0x0)warning(F(0xf0)+a15w['bold'](f));else{const K=p[F(0x117)](k=>k[F(0x134)]>0x0)[F(0x134)],i=j[F(0x117)](k=>k['length']>0x0)[F(0x134)],Q='\x20in\x20project\x20'+a15w[F(0x12b)](f);console[F(0x110)](F(0xe4)+a15w[F(0x10e)][F(0x12b)](K+F(0xe1))+'\x20and\x20'+a15w['green'][F(0x12b)](i+F(0xd6))+Q),console['log'](),console[F(0x110)](a15w[F(0x12b)](F(0x103))),p[F(0xf3)](k=>{const G=F;if(k[G(0x134)]>=0x1&&!k[0x0][G(0x125)])this[G(0xd9)](k,{'type':G(0xe7),'name':k[0x0][G(0x13a)]['id']},v);}),console['log'](a15w[F(0x12b)](F(0x10d))),j['forEach'](k=>{const I=F;if(k[I(0x134)]>=0x1&&!k[0x0][I(0x125)])this['printForwardingInfo'](k,{'type':I(0x10a),'name':k[0x0]['data']['id']},v);}),this[F(0xd5)]([...p[F(0x128)](),...j[F(0x128)]()],v);}}catch(k){error(F(0x108)+k['message']);}}),L=getCommand(!![])[e(0xd7)](e(0xe7))[e(0x139)]('Port-forwarding\x20for\x20the\x20specified\x20service')['option']('--project\x20--projectId\x20[NAME]',e(0x13e))[e(0xed)](e(0xec),'Service\x20to\x20forward')['option'](e(0xde),'Instance\x20to\x20forward')[e(0xed)](e(0xda),this['noDefaultsText'],![])[e(0xed)](e(0xf5),this[e(0x11e)],![])[e(0x106)](async({noDefaults:c,projectId:O,serviceId:v,instanceId:r,skipHostnames:a})=>{const A=e;assertContextExisting(this[A(0xe6)]);const f=this[A(0x126)](a),p=c?undefined:x[A(0x111)](),j=O||p||await w[A(0x107)](),K=c?undefined:x[A(0xe3)](),i=v||K||await w[A(0xe0)](j)();console['log'](A(0x115)+a15w['bold'](i)+A(0xd4)+a15w['bold'](j));try{const Q=await f[A(0xe8)]({'projectId':j,'serviceId':i,'instanceId':r},a);this[A(0xd9)](Q,{'name':i,'type':A(0xe7),'instanceId':r},a),this[A(0xd5)](Q,a);}catch(k){error(A(0x108)+k['message']);}}),t=getCommand(!![])[e(0xd7)](e(0x10a))[e(0x139)](e(0xee))['option']('--project\x20--projectId\x20[NAME]','Project\x20for\x20forwarding')[e(0xed)](e(0x11b),e(0x102))['option'](e(0xf5),this[e(0x11e)],![])[e(0x106)](async({noDefaults:c,projectId:O,addonId:v,skipHostnames:r})=>{const P=e;assertContextExisting(this['apiClient']);const a=this[P(0x126)](r),f=c?undefined:x[P(0x111)](),p=O||f||await w[P(0x107)](),j=v||await w[P(0xd1)](p)();console[P(0x110)]('Forwarding\x20addon\x20'+a15w[P(0x12b)](j)+P(0xd4)+a15w[P(0x12b)](p));try{const K={'projectId':p,'addonId':j},i=await a[P(0xdd)](K,r);this[P(0xd9)](i,{'name':j,'type':'addon'},r),this[P(0xd5)](i,r);}catch(Q){error('Failed:\x20'+Q[P(0x136)]);}});this[e(0x10c)][e(0x116)](Y),this[e(0x10c)][e(0x116)](L),this['portFwdCmd'][e(0x116)](t);}[a15M(0x126)](x=![]){const y=a15M,N=this[y(0xe6)][y(0xf4)];if(!x){const w=N[y(0x12c)]();if(w[y(0x125)])throw new Error(w[y(0x136)]);}return N['on']('tunnel-close',(Y,L)=>{const b=y,t=a15w[b(0x12b)](L[b(0x101)]+'\x20\x27'+L['id']+'\x27'),c=L[b(0x109)][b(0x134)]>0x0;warning('Stop\x20forwarding\x20traffic\x20from\x20'+L[b(0xf2)]+':'+L[b(0x121)]+b(0x11a)+t),x&&c&&warning(b(0xd0));}),N['on']('connection-error',(Y,L,t)=>{const z=y;warning(z(0x131)+L[z(0xf2)]+':'+L[z(0x121)]+z(0xf7)+t?.[z(0x136)]+'\x22');}),process['on'](y(0x12f),async()=>{const Z=y;try{await N['stop']();}catch(Y){error(Z(0xea)+Y[Z(0x136)]);}finally{process[Z(0x123)]();}}),N;}[a15M(0xd9)](x,N,w=![]){const g=a15M,{type:Y,name:L,instanceId:t}=N;if(x['length']<=0x0){const r=g(0xf6)+N[g(0x101)]+g(0x112);warning(g(0xe2)+Y+'\x20'+a15w[g(0x12b)](L)+'.\x20'+r);return;}const c=groupBy(x,g(0x13c)),O=a=>'\x20('+(a['portName']?a[g(0x100)]+g(0xf1):'')+a[g(0x138)]+')';function v(a,f=0x2){const T=g;if(!w){const p=a[T(0x138)]==='HTTP'?T(0x124):'';a['hostnames'][T(0xf3)](j=>{const R=T;console[R(0x110)](repeat('\x20',f)+'-\x20'+p+j+':'+a[R(0x121)]);});}}Object[g(0xff)](c)[g(0xf3)](([a,f])=>{const W=g,p=t?W(0x120)+a15w[W(0x13b)][W(0x12b)](t)+W(0xfb)+Y+'\x20\x27'+a15w[W(0x13b)][W(0x12b)](a)+'\x27':'>\x20'+capitalize(Y)+'\x20\x27'+a15w[W(0x13b)][W(0x12b)](a)+'\x27';if(Y==='addon'){if(f[W(0x134)]===0x1){const j=f[0x0];if(j[W(0x125)]){error(W(0xe9)+a+':\x20'+j[W(0x125)][W(0x136)]);return;}const K=j[W(0x13a)],i=!w?'\x20'+a15w[W(0x133)](W(0xfc)+K[W(0x109)][W(0x10b)](',')):'';success(p+W(0x12a)+K[W(0xf2)]+':'+K['port']+O(K)+i);}else{const Q=uniqBy(f,k=>k?.[W(0x13a)]?.['hostnames']?.[W(0x10b)](','))[W(0x134)]>0x1;success(p+'\x20is\x20exposed\x20with\x20multiple\x20'+(Q?W(0x122):'ports')+':'),f[W(0xf3)](k=>{const o=W;if(k['error']){error(o(0xe9)+a+':\x20'+k[o(0x125)][o(0x136)]);return;}const d=k[o(0x13a)],J=!w?o(0x118)+d['hostnames'][o(0x10b)](','):'';console[o(0x110)](o(0xd2)+d[o(0xf2)]+':'+d[o(0x121)]+O(d)+J);});}}if(Y===W(0xe7)){if(f[W(0x134)]===0x1){const k=f[0x0];if(k[W(0x125)]){error('Error\x20occured\x20while\x20trying\x20to\x20forward\x20'+a+':\x20'+k[W(0x125)][W(0x136)]);return;}const d=k[W(0x13a)],J=!w?W(0xd3):':',X=d[W(0xf2)]+':'+d[W(0x121)]+O(d);success(p+W(0x12a)+X+J),v(d);}else success(p+'\x20is\x20exposed\x20on\x20'+f[0x0]?.['data']?.['address']+W(0xe5)),f[W(0xf3)](H=>{const q=W;if(H[q(0x125)]){error('Error\x20occured\x20while\x20trying\x20to\x20forward\x20'+a+':\x20'+H[q(0x125)][q(0x136)]);return;}const u=H['data'];success('\x20\x20-\x20port\x20'+u[q(0x121)]+O(u)),v(u,0x4);});}});}[a15M(0xd5)](x,N=![]){const D=a15M;if(N){const w=x[D(0x132)](a=>a[D(0x13a)])[D(0x117)](a=>a!==undefined),Y=process?.[D(0x114)]===D(0xf8),L=a15Y[D(0x114)]()===D(0x119),t=Y?D(0xfd):D(0x135),c=a15w[D(0x12b)]('skipHostnames'),O=L?EOL+D(0x129)+c+'\x20mode:\x20the\x20locally\x20forwarded\x20port\x20differs\x20from\x20the\x20actual\x20port\x20on\x20the\x20forwarded\x20service/addon.':undefined;let v='Running\x20in\x20'+c+'\x20mode.\x20If\x20hostname\x20forwarding\x20is\x20required,\x20remove\x20'+D(0xf5)+D(0x113)+t+'):';O!==undefined&&warning(O??'');warning(v);const r=w[D(0x13d)](a=>a[D(0xf2)]+D(0xd8)+a[D(0x109)][D(0x10b)]('\x20'));console['log'](uniq(r)[D(0x10b)](EOL)),console['log']();}}}
|
package/dist/utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a16r=a16N;(function(x,N){const v=a16N,w=x();while(!![]){try{const Y=parseInt(v(0xe1))/0x1*(-parseInt(v(0xfa))/0x2)+parseInt(v(0xca))/0x3*(parseInt(v(0xf7))/0x4)+parseInt(v(0xcc))/0x5+-parseInt(v(0xef))/0x6+-parseInt(v(0xed))/0x7*(parseInt(v(0xd5))/0x8)+parseInt(v(0xfe))/0x9+parseInt(v(0xe7))/0xa*(parseInt(v(0xe4))/0xb);if(Y===N)break;else w['push'](w['shift']());}catch(L){w['push'](w['shift']());}}}(a16x,0xd5524));function a16x(){const u=['from','https://registry.npmjs.org/','13543911TCYkiT','redBright','getLastUpdateCheck','replace','--skipValidation','split','option','Verbose\x20output','error','6nDilQO','getCurrentContext','1486380IJGJdq','contextProvider','\x20Consider\x20updating\x20using\x20\x27npm\x20i\x20','northflank-cli/','No\x20API\x20URL\x20present\x20in\x20context.\x20Create\x20new\x20context\x20with\x20\x27northflank\x20login\x27','then','toString',',\x20the\x20latest\x20version\x20of\x20the\x20cli\x20is\x20','allowUnknownOption','5128hpRTvM','base64','No\x20token\x20in\x20CLI\x20context.\x20Add\x20token\x20with\x20\x27northflank\x20set-token\x27','Display\x20help\x20for\x20command','setUTCSeconds','setDate','Do\x20not\x20validate\x20input\x20fields\x20on\x20client\x20side','getCurrentToken','\x27\x20**',',\x20expected\x20valid\x20date\x20string\x20(example:\x202020-02-02T02:02:02Z)\x20or\x20unix\x20timestamp\x20(example\x201580608922)','min','resolve','1gREWTp','addHelpCommand','storeOptionsAsProperties','17093780JBGEtm','padEnd','getTime','10Fdythl','parse','version','length','No\x20console\x20output','Invalid\x20date\x20received:\x20','18935XMBZyZ','log','2277762hzYgYF','yellow','--verbose','Failed:\x20','allowExcessArguments','example:\x202020-02-02T02:02:02Z\x20(date\x20string)\x20or\x201580608922\x20(unix\x20ts)','setLastUpdateCheck','--quiet','1790308BVGRNg','timeout','HTTP_PROXY','2527986FRTCUZ','utf-8'];a16x=function(){return u;};return a16x();}import a16w from'chalk';import{Command}from'commander';import{ProxyAgent}from'proxy-agent';import a16Y 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[a16r(0xe8)](readFileSync(join(__dirname,'../package.json'),a16r(0xfb)));export const customUserAgent=a16r(0xcf)+pgk?.[a16r(0xe9)];export const agent=new ProxyAgent();export const proxyEnvsSet=process['env'][a16r(0xf9)]!==undefined||process['env']['HTTPS_PROXY']!==undefined;export const decodeJwtPayload=x=>{const f=a16r;try{const N=L=>{const a=a16N,t=L[a(0xc4)](/-/g,'+')['replace'](/_/g,'/')[a(0xe5)](L[a(0xea)]+(0x4-L[a(0xea)]%0x4)%0x4,'=');return JSON[a(0xe8)](Buffer[a(0xfc)](t,a(0xd6))[a(0xd2)]());},[w,Y]=x[f(0xc6)]('.');return N(Y);}catch(L){return{};}};export async function checkUpdate(x){const j=a16r;function N(w,Y){const p=a16N,L=new Date(Number(w));return L[p(0xda)](L['getDate']()+Y),L;}try{if(N(x[j(0xc3)](),0x1)>new Date())return;const w=pgk[j(0xe9)],{name:Y}=pgk;if(!w)return;const L=j(0xfd)+Y+'/latest',t=await a16Y(L,{'agent':agent,'method':'GET','signal':AbortSignal[j(0xf8)](0x1388)}),c=(await t['json']())['version'];needsUpdate(w,c)&&warning('**\x20You\x27re\x20running\x20on\x20version\x20'+w+j(0xd3)+c+'.'+(j(0xce)+Y+'\x20-g\x27\x20or\x20\x27yarn\x20global\x20add\x20'+Y+j(0xdd))),await x[j(0xf5)](new Date());}catch(O){}}function needsUpdate(x,N){const K=a16r,w=/(\.0+)+$/,Y=x[K(0xc4)](w,'')[K(0xc6)]('.'),L=N[K(0xc4)](w,'')[K(0xc6)]('.');for(let t=0x0;t<Math[K(0xdf)](Y['length'],L['length']);t+=0x1){const c=parseInt(L[t],0xa)-parseInt(Y[t],0xa);if(c>0x0)return!![];if(c<0x0)return![];}return L[K(0xea)]>Y[K(0xea)];}export function error(x){const i=a16r;console[i(0xc9)](a16w[i(0xff)](i(0xf2)+x));}function a16N(x,N){const w=a16x();return a16N=function(Y,L){Y=Y-0xc3;let t=w[Y];return t;},a16N(x,N);}export function warning(x){const Q=a16r;console[Q(0xc9)](a16w[Q(0xf0)](''+x));}export function success(x){const k=a16r;console[k(0xee)](a16w['green'](''+x));}export function getCommand(x=![]){const d=a16r,N=new Command();return N['helpOption'](undefined,d(0xd8)),N[d(0xe2)](![]),N[d(0xe3)](![]),N[d(0xd4)](![]),N[d(0xf3)](![]),N['enablePositionalOptions'](!![]),x&&(N['option'](d(0xf1),d(0xc8),![]),N['option'](d(0xf6),d(0xeb),![]),N[d(0xc7)](d(0xc5),d(0xdb),![])),N;}export const retry=(x,N=0x32)=>w=>{let Y=x;const L=async()=>{try{return await w();}catch(t){if(Y<=0x0)throw t;return Y-=0x1,await new Promise(c=>setTimeout(()=>c(),N)),L();}};return L();};export const asyncSequential=async(x,N)=>{const J=a16r,w=Promise[J(0xe0)]([]);return x['reduce']((Y,L)=>Y[J(0xd1)](t=>N(L)[J(0xd1)](c=>{return t['push'](c),t;})),w);};export function isValidJSON(x){try{return JSON['parse'](x);}catch(N){return![];}}export function assertContextExisting(x){const X=a16r;if(x[X(0xcd)][X(0xcb)]()===undefined)throw new Error('No\x20CLI\x20context\x20present.\x20Create\x20context\x20with\x20\x27northflank\x20login\x27');if(x['contextProvider']['getCurrentBaseUrl']()===undefined)throw new Error(X(0xd0));if(x[X(0xcd)][X(0xdc)]()===undefined)throw new Error(X(0xd7));}export const parseDateInput=x=>{const H=a16r;try{let N=new Date(x);if(isNaN(N[H(0xe6)]())){const w=x[H(0xea)]===0xd?x/0x3e8:x,Y=new Date(0x0);Y[H(0xd9)](w);if(isNaN(Y['getTime']()))throw new Error();return Y;}return N;}catch(L){throw new Error(H(0xec)+x+H(0xde));}};export const tsHint=a16r(0xf4);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@northflank/cli",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.15",
|
|
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.12",
|
|
31
31
|
"bufferutil": "^4.0.9",
|
|
32
32
|
"chalk": "~5.6.2",
|
|
33
33
|
"columnify": "^1.6.0",
|