@northflank/cli 0.10.14 → 0.10.16
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 -0
- package/dist/utils.js +1 -1
- package/package.json +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a14C=a14v;function a14c(){const J=['onUpKey','reloadText','length','loadMore','loading','render','1351672plAqrP','selected','\x20Loading\x20more\x20options','nextPageCursor','down','loop','log','push','3227xXpRjg','dir\x20must\x20be\x20up\x20or\x20down','53779nkSnTB','splice','pagOpt','map','5482OfvFtL','9LDmhAV','run','resolve','catch','opt','6368916UTieVl','2154roWNlc','..\x20Load\x20more\x20options\x20..','name','690TAsAGC','36HchNJi','4nEJIWQ','handleDynamicPageLoad','285235gRkdxI','208869CosNgW','choices','onDownKey','italic'];a14c=function(){return J;};return a14c();}(function(c,v){const u=a14v,j=c();while(!![]){try{const n=parseInt(u(0x72))/0x1*(parseInt(u(0x8e))/0x2)+-parseInt(u(0x76))/0x3+parseInt(u(0x73))/0x4*(-parseInt(u(0x75))/0x5)+-parseInt(u(0x95))/0x6*(parseInt(u(0x88))/0x7)+-parseInt(u(0x80))/0x8*(-parseInt(u(0x8f))/0x9)+-parseInt(u(0x98))/0xa*(parseInt(u(0x8a))/0xb)+parseInt(u(0x94))/0xc;if(n===v)break;else j['push'](j['shift']());}catch(g){j['push'](j['shift']());}}}(a14c,0x293a4));import a14j from'inquirer/lib/prompts/list.js';import a14n from'inquirer/lib/objects/choice.js';import a14g from'chalk';function a14v(c,v){const j=a14c();return a14v=function(n,g){n=n-0x72;let r=j[n];return r;},a14v(c,v);}function incrementListIndex(c,v,j){const k=a14v,n=j[k(0x77)]['realLength'],g=k(0x85)in j?Boolean(j['loop']):!![];if(v==='up'){if(c>0x0)return c-0x1;return g?n-0x1:c;}if(v===k(0x84)){if(c<n-0x1)return c+0x1;return g?0x0:c;}throw new Error(k(0x89));}export class DynamicReloadPaginationPrompt extends a14j{['reloadText']=a14g[a14C(0x79)](a14C(0x96));[a14C(0x8c)];[a14C(0x7e)]=![];[a14C(0x83)];constructor(c,v,j){const o=a14C;super(c,v,j),this[o(0x8c)]=this[o(0x93)],this[o(0x83)]=this[o(0x8c)][o(0x83)],this[o(0x83)]!==undefined&&this[o(0x93)][o(0x77)][o(0x87)](new a14n(this['reloadText'],this['reloadText']));}[a14C(0x90)](){const T=a14C;return console[T(0x86)]('Method\x20not\x20implemented'),Promise[T(0x91)]();}[a14C(0x7a)](){const S=a14C;if(this[S(0x7e)])return;this[S(0x81)]=incrementListIndex(this['selected'],'up',this[S(0x93)]),this['render']();}async[a14C(0x78)](){const Y=a14C;if(this[Y(0x7e)])return;this[Y(0x81)]=incrementListIndex(this[Y(0x81)],Y(0x84),this[Y(0x93)]),await this[Y(0x74)](),this['render']();}async[a14C(0x74)](){const e=a14C;if(this[e(0x81)]>=this[e(0x93)][e(0x77)][e(0x7c)]-0x1){if(this[e(0x83)]===undefined)return;this[e(0x7e)]=!![];let c=0x0;const v=setInterval(()=>{const P=e,r=['⠋','⠙','⠹','⠸','⠼','⠴','⠦','⠧','⠇','⠏'],H=a14g[P(0x79)](r[c%r['length']]+P(0x82));this[P(0x93)]['choices']['choices'][this['selected']][P(0x97)]=''+H,c+=0x1,this[P(0x7f)]();},0x50),{elements:j,nextPageCursor:n}=await this[e(0x8c)][e(0x7d)]({'nextPageCursor':this[e(0x83)]})[e(0x92)](()=>({'elements':[],'nextPageCursor':undefined}));this[e(0x83)]=n;const g=j[e(0x8d)](r=>new a14n(r,r));this['opt'][e(0x77)][e(0x77)][e(0x8b)](this[e(0x81)],0x1),this[e(0x93)]['choices']['push'](...g),n!==undefined&&this[e(0x93)]['choices'][e(0x87)](new a14n(this['reloadText'],this[e(0x7b)])),clearInterval(v),this[e(0x7e)]=![];}}}
|
|
@@ -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 a15Z=a15v;(function(c,v){const l=a15v,j=c();while(!![]){try{const n=parseInt(l(0x127))/0x1*(-parseInt(l(0x11b))/0x2)+parseInt(l(0x13e))/0x3+parseInt(l(0x11a))/0x4+-parseInt(l(0x114))/0x5+-parseInt(l(0x132))/0x6*(-parseInt(l(0x124))/0x7)+parseInt(l(0xe3))/0x8+-parseInt(l(0xec))/0x9*(parseInt(l(0xdd))/0xa);if(n===v)break;else j['push'](j['shift']());}catch(g){j['push'](j['shift']());}}}(a15c,0x30d2b));function a15v(c,v){const j=a15c();return a15v=function(n,g){n=n-0xd0;let r=j[n];return r;},a15v(c,v);}import{ApiClient}from'@northflank/js-client';function a15c(){const a=['\x20is\x20running\x20and\x20reachable\x20and\x20that\x20a\x20port\x20is\x20defined\x20on\x20the\x20networking\x20section.','address','Stop\x20forwarding\x20traffic\x20from\x20','bold','--noDefaults','exit','695051gqmRFe','--skipHostnames','join','87867uSFThW','Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.','message','Forwarding\x20','Please\x20ensure\x20the\x20','Project\x20for\x20forwarding','printHostsFileHint','all','error','skipHostnamesText','Running\x20on\x20macOS\x20in\x20','12ESnywo','Error\x20occured\x20while\x20trying\x20to\x20forward\x20','No\x20services\x20and\x20addons\x20to\x20forward\x20found\x20in\x20project\x20','forwardAddon','win32','Port-forwarding\x20for\x20all\x20services\x20and\x20addons\x20in\x20the\x20given\x20project','\x20\x20-\x20port\x20','portFwdCmd','Cleaning\x20up\x20open\x20connections\x20failed:\x20','forwardProject','addon','platform','479262IMlREL','flat','service','tunnel-close','printForwardingInfo','Running\x20in\x20','name','action','stop','C:/Windows/System32/drivers/etc/hosts','forwarding','--instance\x20--instanceId\x20[NAME]','green','--addon\x20--addonId\x20[NAME]','1600MzHRKp','http://','hostnames','Addon\x20to\x20forward','/etc/hosts','getCurrentProjectName','1538800wMufPz','entries','Port-forwarding\x20for\x20Northflank\x20services\x20and\x20addons.','getCurrentServiceName','option','Only\x20expose\x20on\x20IP\x20address,\x20not\x20on\x20hostnames.\x20With\x20this\x20option,\x20no\x20root\x20permissions\x20are\x20required.','skipHostnames','greenBright','\x27:\x20\x22','15669YoIZmF','length','HTTP','\x20addon\x20ports','Forwarding\x20service\x20','--project\x20--projectId\x20[NAME]','Services:','Failed:\x20','project\x20for\x20forwarding','port','\x20to\x20','SIGINT','forward','canExecuteWithHostnames','Service\x20to\x20forward','askForAddon','forwardService','\x20is\x20exposed\x20on\x20','Port-forwarding\x20for\x20the\x20specified\x20addon','askForService','\x20-\x20','protocol','\x20is\x20exposed\x20with\x20multiple\x20','Addons:','apiClient','Connection\x20error\x20occurred\x20when\x20forwarding\x20\x27','askForProject','noDefaultsText','hosts','connection-error','getProxyForwarder','\x20mode.\x20If\x20hostname\x20forwarding\x20is\x20required,\x20remove\x20','flatMap','data.id','data','Forwarding\x20addon\x20','description','--service\x20--serviceId\x20[NAME]','forEach','filter','453975zdGhzF','\x27\x20of\x20','\x20mode:\x20the\x20locally\x20forwarded\x20port\x20differs\x20from\x20the\x20actual\x20port\x20on\x20the\x20forwarded\x20service/addon.','alias','\x20in\x20project\x20','portName','426044PfYzyQ','2aafQQc','addCommand','log'];a15c=function(){return a;};return a15c();}import a15j from'chalk';import{assertContextExisting,customUserAgent,error,getCommand,success,warning}from'../utils.js';import{InquirerHelper}from'../inquirer-helper.js';import*as a15n from'os';import{uniqBy,uniq,repeat,groupBy,capitalize}from'lodash-es';import{EOL}from'os';export class CliPortForward{['portFwdCmd'];[a15Z(0x104)];[a15Z(0x107)]=a15Z(0x128);[a15Z(0x130)]=a15Z(0xe8);constructor(c,v){const F=a15Z;this['apiClient']=new ApiClient(c,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':v});const j=new InquirerHelper(this[F(0x104)]);this[F(0x139)]=getCommand()[F(0xd5)](F(0xf8))[F(0x117)]('fwd')['description'](F(0xe5));const n=getCommand(!![])[F(0xd5)](F(0x12e))[F(0x110)](F(0x137))[F(0xe7)](F(0xf1),F(0xf4))[F(0xe7)]('--noDefaults',this[F(0x107)],![])['option'](F(0x125),this[F(0x130)],![])[F(0xd6)](async({noDefaults:H,projectId:u,skipHostnames:k})=>{const w=F;assertContextExisting(this[w(0x104)]);const C=this[w(0x10a)](k),o=H?undefined:c[w(0xe2)](),T=u||o||await j[w(0x106)]();try{const {services:S,addons:Y}=await C[w(0x13b)]({'projectId':T},k);if(S['length']+Y[w(0xed)]<=0x0)warning(w(0x134)+a15j[w(0x121)](T));else{const P=S['filter'](W=>W['length']>0x0)[w(0xed)],J=Y[w(0x113)](W=>W[w(0xed)]>0x0)['length'],s=w(0x118)+a15j[w(0x121)](T);console[w(0x11d)](w(0x12a)+a15j['green']['bold'](P+'\x20service\x20ports')+'\x20and\x20'+a15j[w(0xdb)][w(0x121)](J+w(0xef))+s),console[w(0x11d)](),console[w(0x11d)](a15j['bold'](w(0xf2))),S[w(0x112)](W=>{const x=w;if(W['length']>=0x1&&!W[0x0][x(0x12f)])this[x(0xd3)](W,{'type':x(0xd1),'name':W[0x0]['data']['id']},k);}),console['log'](a15j[w(0x121)](w(0x103))),Y[w(0x112)](W=>{const b=w;if(W[b(0xed)]>=0x1&&!W[0x0]['error'])this[b(0xd3)](W,{'type':b(0x13c),'name':W[0x0][b(0x10e)]['id']},k);}),this[w(0x12d)]([...S[w(0xd0)](),...Y[w(0xd0)]()],k);}}catch(W){error(w(0xf3)+W[w(0x129)]);}}),g=getCommand(!![])['name'](F(0xd1))['description']('Port-forwarding\x20for\x20the\x20specified\x20service')[F(0xe7)](F(0xf1),'Project\x20for\x20forwarding')[F(0xe7)](F(0x111),F(0xfa))[F(0xe7)](F(0xda),'Instance\x20to\x20forward')[F(0xe7)](F(0x122),this[F(0x107)],![])[F(0xe7)](F(0x125),this[F(0x130)],![])['action'](async({noDefaults:H,projectId:u,serviceId:k,instanceId:C,skipHostnames:o})=>{const K=F;assertContextExisting(this[K(0x104)]);const T=this[K(0x10a)](o),S=H?undefined:c[K(0xe2)](),Y=u||S||await j[K(0x106)](),P=H?undefined:c[K(0xe6)](),J=k||P||await j[K(0xff)](Y)();console['log'](K(0xf0)+a15j[K(0x121)](J)+K(0x118)+a15j[K(0x121)](Y));try{const s=await T[K(0xfc)]({'projectId':Y,'serviceId':J,'instanceId':C},o);this[K(0xd3)](s,{'name':J,'type':K(0xd1),'instanceId':C},o),this['printHostsFileHint'](s,o);}catch(W){error(K(0xf3)+W[K(0x129)]);}}),r=getCommand(!![])['name'](F(0x13c))[F(0x110)](F(0xfe))[F(0xe7)](F(0xf1),F(0x12c))[F(0xe7)](F(0xdc),F(0xe0))[F(0xe7)](F(0x125),this[F(0x130)],![])[F(0xd6)](async({noDefaults:H,projectId:u,addonId:k,skipHostnames:C})=>{const G=F;assertContextExisting(this[G(0x104)]);const o=this[G(0x10a)](C),T=H?undefined:c[G(0xe2)](),S=u||T||await j['askForProject'](),Y=k||await j[G(0xfb)](S)();console['log'](G(0x10f)+a15j['bold'](Y)+'\x20in\x20project\x20'+a15j[G(0x121)](S));try{const P={'projectId':S,'addonId':Y},J=await o[G(0x135)](P,C);this[G(0xd3)](J,{'name':Y,'type':G(0x13c)},C),this[G(0x12d)](J,C);}catch(s){error(G(0xf3)+s[G(0x129)]);}});this['portFwdCmd'][F(0x11c)](n),this[F(0x139)]['addCommand'](g),this[F(0x139)][F(0x11c)](r);}[a15Z(0x10a)](c=![]){const D=a15Z,v=this[D(0x104)][D(0xd9)];if(!c){const j=v[D(0xf9)]();if(j[D(0x12f)])throw new Error(j[D(0x129)]);}return v['on'](D(0xd2),(n,g)=>{const I=D,r=a15j[I(0x121)](g['type']+'\x20\x27'+g['id']+'\x27'),H=g[I(0xdf)][I(0xed)]>0x0;warning(I(0x120)+g[I(0x11f)]+':'+g[I(0xf5)]+I(0xf6)+r),c&&H&&warning('\x20\x20If\x20you\x20have\x20added\x20entries\x20to\x20your\x20hosts\x20file,\x20it\x20is\x20recommended\x20to\x20remove\x20them\x20again\x20now.');}),v['on'](D(0x109),(n,g,r)=>{const N=D;warning(N(0x105)+g[N(0x11f)]+':'+g[N(0xf5)]+N(0xeb)+r?.[N(0x129)]+'\x22');}),process['on'](D(0xf7),async()=>{const d=D;try{await v[d(0xd7)]();}catch(n){error(d(0x13a)+n[d(0x129)]);}finally{process[d(0x123)]();}}),v;}[a15Z(0xd3)](c,v,j=![]){const i=a15Z,{type:n,name:g,instanceId:r}=v;if(c[i(0xed)]<=0x0){const C=i(0x12b)+v['type']+i(0x11e);warning('\x20\x20\x20No\x20running\x20container\x20found\x20for\x20'+n+'\x20'+a15j['bold'](g)+'.\x20'+C);return;}const H=groupBy(c,i(0x10d)),u=o=>'\x20('+(o[i(0x119)]?o['portName']+i(0x100):'')+o[i(0x101)]+')';function k(o,T=0x2){const M=i;if(!j){const S=o[M(0x101)]===M(0xee)?M(0xde):'';o[M(0xdf)]['forEach'](Y=>{const L=M;console[L(0x11d)](repeat('\x20',T)+'-\x20'+S+Y+':'+o[L(0xf5)]);});}}Object[i(0xe4)](H)[i(0x112)](([o,T])=>{const p=i,S=r?'>\x20Instance\x20\x27'+a15j[p(0xea)][p(0x121)](r)+p(0x115)+n+'\x20\x27'+a15j[p(0xea)][p(0x121)](o)+'\x27':'>\x20'+capitalize(n)+'\x20\x27'+a15j[p(0xea)][p(0x121)](o)+'\x27';if(n===p(0x13c)){if(T[p(0xed)]===0x1){const Y=T[0x0];if(Y[p(0x12f)]){error(p(0x133)+o+':\x20'+Y['error'][p(0x129)]);return;}const e=Y[p(0x10e)],P=!j?'\x20'+a15j['reset']('with\x20hostname:\x20'+e[p(0xdf)][p(0x126)](',')):'';success(S+p(0xfd)+e[p(0x11f)]+':'+e[p(0xf5)]+u(e)+P);}else{const J=uniqBy(T,s=>s?.[p(0x10e)]?.[p(0xdf)]?.[p(0x126)](','))[p(0xed)]>0x1;success(S+p(0x102)+(J?p(0x108):'ports')+':'),T[p(0x112)](s=>{const O=p;if(s['error']){error('Error\x20occured\x20while\x20trying\x20to\x20forward\x20'+o+':\x20'+s[O(0x12f)][O(0x129)]);return;}const W=s[O(0x10e)],t=!j?',\x20hostname:\x20'+W[O(0xdf)]['join'](','):'';console[O(0x11d)]('\x20\x20-\x20Address:\x20'+W[O(0x11f)]+':'+W['port']+u(W)+t);});}}if(n===p(0xd1)){if(T[p(0xed)]===0x1){const s=T[0x0];if(s[p(0x12f)]){error('Error\x20occured\x20while\x20trying\x20to\x20forward\x20'+o+':\x20'+s[p(0x12f)][p(0x129)]);return;}const W=s[p(0x10e)],t=!j?'\x20with\x20these\x20hostnames:':':',m=W[p(0x11f)]+':'+W['port']+u(W);success(S+p(0xfd)+m+t),k(W);}else success(S+'\x20is\x20exposed\x20on\x20'+T[0x0]?.[p(0x10e)]?.[p(0x11f)]+'\x20with\x20multiple\x20ports:'),T[p(0x112)](V=>{const q=p;if(V[q(0x12f)]){error(q(0x133)+o+':\x20'+V[q(0x12f)][q(0x129)]);return;}const f=V['data'];success(q(0x138)+f[q(0xf5)]+u(f)),k(f,0x4);});}});}[a15Z(0x12d)](c,v=![]){const Q=a15Z;if(v){const j=c[Q(0x10c)](o=>o[Q(0x10e)])[Q(0x113)](o=>o!==undefined),n=process?.[Q(0x13d)]===Q(0x136),g=a15n['platform']()==='darwin',r=n?Q(0xd8):Q(0xe1),H=a15j[Q(0x121)](Q(0xe9)),u=g?EOL+Q(0x131)+H+Q(0x116):undefined;let k=Q(0xd4)+H+Q(0x10b)+Q(0x125)+'\x20flag\x20or\x20manually\x20append\x20following\x20entry\x20to\x20your\x20hosts\x20file\x20('+r+'):';u!==undefined&&warning(u??'');warning(k);const C=j['map'](o=>o[Q(0x11f)]+'\x20\x20\x20\x20\x20\x20\x20\x20\x20'+o[Q(0xdf)]['join']('\x20'));console[Q(0x11d)](uniq(C)['join'](EOL)),console['log']();}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const a16D=a16v;function a16v(c,v){const j=a16c();return a16v=function(n,g){n=n-0x1b5;let r=j[n];return r;},a16v(c,v);}(function(c,v){const G=a16v,j=c();while(!![]){try{const n=-parseInt(G(0x1cf))/0x1+parseInt(G(0x1d1))/0x2*(-parseInt(G(0x1eb))/0x3)+parseInt(G(0x202))/0x4*(-parseInt(G(0x205))/0x5)+parseInt(G(0x1f4))/0x6*(parseInt(G(0x1d8))/0x7)+-parseInt(G(0x1be))/0x8+parseInt(G(0x203))/0x9+parseInt(G(0x1d7))/0xa*(parseInt(G(0x1f1))/0xb);if(n===v)break;else j['push'](j['shift']());}catch(g){j['push'](j['shift']());}}}(a16c,0xaf0f5));import{ApiClient}from'@northflank/js-client';import{assertContextExisting,customUserAgent,error,getCommand,success,warning}from'../utils.js';import{InquirerHelper}from'../inquirer-helper.js';import{spawn}from'child_process';import{execFile}from'child_process';import{promisify}from'util';import a16j from'chalk';function a16c(){const Q=['\x20\x20>\x20RSYNC:\x20\x20\x09','execFileAsync','Ctrl+C\x20-\x20SSH\x20session\x20ended','26697210IyDdBt','5831nHuCIh','\x20to\x20ssh\x20into','ssh','blackBright','charAt',',\x20stop\x20with\x20Ctrl+C','uncaughtException','option','toUpperCase','error','askForService','RemoteCommand=su\x20','SIGINT','\x20-l','-tt','Replicate\x20','forwarding','Use\x20specific\x20username\x20for\x20SSH\x20connection','--instance\x20--instanceName\x20[NAME]','6yJcTBL','action','--proxyOnly','SSH\x20session\x20ended.','Project\x20of\x20the\x20','Only\x20startup\x20SSH\x20proxy\x20without\x20opening\x20an\x20SSH\x20terminal\x20session.','11VGxsAH','\x20\x20>\x20SCP:\x20\x20\x09','SSH\x20binary\x20not\x20found.\x20Please\x20install\x20OpenSSH.','678LoXnnp','apiClient','scp\x20-P\x20','SSH\x20exited\x20with\x20code:\x20','inherit','--project\x20--projectId\x20[NAME]','Id\x20[NAME]','--user\x20[USER]','isTTY','trim','sshCmd','withServiceForwarding','name',':/remote/path/','4MiZVce','2803545zcegRR','\x20-p\x20','4457270SzytlW','ssh\x20','--noDefaults','\x20file.txt\x20','Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.','stdin','findSSH','slice','push','log','Establish\x20SSH\x20connectivity\x20to\x20Northflank\x20','.\x20Creates\x20an\x20SSH\x20terminal\x20session\x20by\x20default.','askForProject','addCommand','\x20\x20>\x20SFTP:\x20\x20\x09','288840TIHOWa','root','SSH\x20for\x20Northflank\x20services\x20and\x20jobs.','toString','startSSH','exit','service','rsync\x20-avz\x20-e\x20\x22ssh\x20-p\x20','description','find','--useHostnames','\x20\x20>\x20SSH\x20session:','\x20hostnames\x20on\x20local\x20machine.\x20Requires\x20sudo\x20permissions','data','Instance\x20to\x20exec\x20into\x20(random\x20instance\x20will\x20be\x20chosen\x20if\x20not\x20specified)','StrictHostKeyChecking=no','SSH\x20proxy\x20started\x20on\x20endpoint:\x20','75217RzVrkM','No\x20SSH\x20endpoint\x20found.\x20Ensure\x20your\x20service\x20has\x20SSH\x20enabled','1355534XNtesJ','\x20--','kill'];a16c=function(){return Q;};return a16c();}export class CliSsh{['sshCmd'];[a16D(0x1f5)];constructor(c,v){const I=a16D;this[I(0x1f5)]=new ApiClient(c,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':v});const j=new InquirerHelper(this[I(0x1f5)]);this['sshCmd']=getCommand(!![])[I(0x200)](I(0x1da))[I(0x1c6)](I(0x1c0));const n=I(0x1c4),g=getCommand(!![])['name'](n)[I(0x1c6)](I(0x1b9)+n+I(0x1ba))['option'](I(0x1f9),I(0x1ef)+n)[I(0x1df)]('--'+n+I(0x1d2)+n+I(0x1fa),n[I(0x1dc)](0x0)[I(0x1e0)]()+n[I(0x1b6)](0x1)+I(0x1d9))[I(0x1df)](I(0x1ea),I(0x1cc))[I(0x1df)](I(0x1ed),I(0x1f0),![])[I(0x1df)](I(0x1c8),I(0x1e7)+n+I(0x1ca),![])[I(0x1df)](I(0x1fb),I(0x1e9))['option'](I(0x207),I(0x209),![]),r=g[I(0x1ec)](async H=>{const N=I,{noDefaults:u,projectId:k,serviceId:C,instanceName:o,proxyOnly:T,useHostnames:S}=H,{user:user=N(0x1bf),quiet:Y}=H;assertContextExisting(this[N(0x1f5)]);try{const P=u?undefined:c['getCurrentProjectName'](),J=k||P||await j[N(0x1bb)](),s=u?undefined:c['getCurrentServiceName'](),W=C||s||await j[N(0x1e2)](J)(),t=process[N(0x20a)][N(0x1fc)],m=t&&!T,V={'projectId':J,'serviceId':W,'instanceId':o,'portsFilter':[0x16]};await this[N(0x1f5)][N(0x1e8)][N(0x1ff)](V,async f=>{const d=N,l=f[d(0x1c7)](b=>b['data']?.['portName']==='default-ssh');if(l===undefined)throw new Error(d(0x1d0));if(l?.['error']!==undefined||l?.[d(0x1cb)]===undefined)throw new Error('Error\x20trying\x20to\x20forward:\x20'+(l?.['error']?.['message']??'unknown\x20error'));const {address:Z,port:F,hostnames:w}=l['data'],x=S?w[0x0]??Z:Z;m?(!Y&&success('SSH\x20proxy\x20started\x20on\x20endpoint:\x20'+(x+':'+F)+',\x20stop\x20with\x20Ctrl+D'),await this[d(0x1c2)]({'address':x,'port':F,'user':user})):(!Y?(success(d(0x1ce)+(x+':'+F)+d(0x1dd)),console['log']('Use\x20with\x20any\x20SSH\x20compatible\x20client.\x20Example\x20usages:'),console[d(0x1b8)](d(0x1c9)+a16j[d(0x1db)](d(0x206)+user+'@'+x+d(0x204)+F)),console['log'](d(0x1bd)+a16j[d(0x1db)]('sftp\x20-P\x20'+F+'\x20'+user+'@'+x)),console[d(0x1b8)](d(0x1d4)+a16j[d(0x1db)](d(0x1c5)+F+'\x22\x20./data/\x20'+user+'@'+x+':/rsync-test/')),console['log'](d(0x1f2)+a16j[d(0x1db)](d(0x1f6)+F+d(0x208)+user+'@'+x+d(0x201)))):console[d(0x1b8)](user,x,F),await new Promise((b,K)=>{const i=d;process['on'](i(0x1e4),()=>{const M=i;if(!Y)success(M(0x1d6));b();}),process['on'](i(0x1de),K);}));},!S);}catch(f){error(''+f['message']);}finally{process[N(0x1c3)]();}});this[I(0x1fe)][I(0x1bc)](r);}['execFileAsync']=promisify(execFile);async[a16D(0x1b5)](){const L=a16D;try{const {stdout:c}=await this[L(0x1d5)]('which',[L(0x1da)]);return c[L(0x1fd)]();}catch{const v=[L(0x1da),'/usr/bin/ssh','/usr/local/bin/ssh','C:\x5cWindows\x5cSystem32\x5cOpenSSH\x5cssh.exe'];for(const j of v){try{return await this[L(0x1d5)](j,['-V']),j;}catch{}}return null;}}async[a16D(0x1c2)](c){const p=a16D,v=await this['findSSH']();if(!v)throw new Error(p(0x1f3));if(!process[p(0x20a)][p(0x1fc)])throw new Error('Must\x20be\x20run\x20in\x20an\x20interactive\x20terminal\x20(TTY\x20required).');const {address:j,port:port=0x16,user:user=p(0x1bf),args:args=[],trusted:trusted=!![]}=c,n=[];trusted&&n[p(0x1b7)]('-o',p(0x1cd),'-o','UserKnownHostsFile=/dev/null','-o','LogLevel=ERROR');user!=='root'&&n[p(0x1b7)]('-o',p(0x1e3)+user+p(0x1e5),'-o','RequestTTY=yes');const g=spawn(v,[p(0x1e6),'-p',port[p(0x1c1)](),'-l',p(0x1bf),...n,...args,j],{'stdio':p(0x1f8)});await new Promise((r,H)=>{const q=p;g['on']('close',(u,k)=>{const O=a16v;if(k)warning('SSH\x20killed\x20by\x20signal:\x20'+k);else u!==0x0?warning(O(0x1f7)+u):success(O(0x1ee));r(u);}),g['on'](q(0x1e1),u=>{H(new Error('Failed\x20to\x20spawn\x20SSH\x20command:\x20'+u['message']));}),process['on'](q(0x1e4),()=>g[q(0x1d3)]('SIGINT')),process['on']('SIGTERM',()=>g[q(0x1d3)]('SIGTERM'));});}}
|
package/dist/utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a17C=a17v;(function(c,v){const k=a17v,j=c();while(!![]){try{const n=-parseInt(k(0x190))/0x1*(parseInt(k(0x19f))/0x2)+-parseInt(k(0x164))/0x3+parseInt(k(0x16b))/0x4+-parseInt(k(0x18f))/0x5+parseInt(k(0x166))/0x6+-parseInt(k(0x172))/0x7+-parseInt(k(0x162))/0x8*(-parseInt(k(0x17c))/0x9);if(n===v)break;else j['push'](j['shift']());}catch(g){j['push'](j['shift']());}}}(a17c,0x538c4));import a17j from'chalk';import{Command}from'commander';import{ProxyAgent}from'proxy-agent';import a17n from'node-fetch';import{readFileSync}from'fs';import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta[a17C(0x17f)]),__dirname=dirname(__filename),pgk=JSON[a17C(0x17a)](readFileSync(join(__dirname,a17C(0x185)),a17C(0x189)));export const customUserAgent=a17C(0x165)+pgk?.[a17C(0x170)];export const agent=new ProxyAgent();export const proxyEnvsSet=process['env']['HTTP_PROXY']!==undefined||process[a17C(0x163)]['HTTPS_PROXY']!==undefined;export const decodeJwtPayload=c=>{const T=a17C;try{const v=g=>{const o=a17v,r=g['replace'](/-/g,'+')[o(0x19b)](/_/g,'/')[o(0x17b)](g[o(0x19d)]+(0x4-g[o(0x19d)]%0x4)%0x4,'=');return JSON[o(0x17a)](Buffer['from'](r,o(0x161))[o(0x179)]());},[j,n]=c[T(0x198)]('.');return v(n);}catch(g){return{};}};export async function checkUpdate(c){const Y=a17C;function v(j,n){const S=a17v,g=new Date(Number(j));return g[S(0x19c)](g[S(0x187)]()+n),g;}try{if(v(c[Y(0x177)](),0x1)>new Date())return;const j=pgk[Y(0x170)],{name:n}=pgk;if(!j)return;const g=Y(0x169)+n+Y(0x182),r=await a17n(g,{'agent':agent,'method':Y(0x168),'signal':AbortSignal[Y(0x171)](0x1388)}),H=(await r[Y(0x193)]())[Y(0x170)];needsUpdate(j,H)&&warning('**\x20You\x27re\x20running\x20on\x20version\x20'+j+Y(0x174)+H+'.'+(Y(0x181)+n+Y(0x17d)+n+Y(0x19a))),await c[Y(0x16e)](new Date());}catch(u){}}function needsUpdate(c,v){const e=a17C,j=/(\.0+)+$/,n=c[e(0x19b)](j,'')[e(0x198)]('.'),g=v['replace'](j,'')[e(0x198)]('.');for(let r=0x0;r<Math['min'](n['length'],g[e(0x19d)]);r+=0x1){const H=parseInt(g[r],0xa)-parseInt(n[r],0xa);if(H>0x0)return!![];if(H<0x0)return![];}return g[e(0x19d)]>n[e(0x19d)];}export function error(c){const P=a17C;console[P(0x18a)](a17j[P(0x18e)](P(0x173)+c));}export function warning(c){const J=a17C;console[J(0x18a)](a17j['yellow'](''+c));}export function success(c){const s=a17C;console[s(0x18b)](a17j[s(0x16f)](''+c));}function a17v(c,v){const j=a17c();return a17v=function(n,g){n=n-0x160;let r=j[n];return r;},a17v(c,v);}function a17c(){const l=['getCurrentBaseUrl','enablePositionalOptions','json','then','push','--quiet','--verbose','split','getCurrentToken','\x27\x20**','replace','setDate','length','Do\x20not\x20validate\x20input\x20fields\x20on\x20client\x20side','602356rRYubi','No\x20token\x20in\x20CLI\x20context.\x20Add\x20token\x20with\x20\x27northflank\x20set-token\x27','getTime','base64','79976aFQnOS','env','1187901SXwbgZ','northflank-cli/','601194TDlXDO','resolve','GET','https://registry.npmjs.org/','reduce','2103808IIMSUi',',\x20expected\x20valid\x20date\x20string\x20(example:\x202020-02-02T02:02:02Z)\x20or\x20unix\x20timestamp\x20(example\x201580608922)','Verbose\x20output','setLastUpdateCheck','green','version','timeout','3514406IXNjSW','Failed:\x20',',\x20the\x20latest\x20version\x20of\x20the\x20cli\x20is\x20','helpOption','setUTCSeconds','getLastUpdateCheck','Display\x20help\x20for\x20command','toString','parse','padEnd','1107KDAWGz','\x20-g\x27\x20or\x20\x27yarn\x20global\x20add\x20','allowUnknownOption','url','example:\x202020-02-02T02:02:02Z\x20(date\x20string)\x20or\x201580608922\x20(unix\x20ts)','\x20Consider\x20updating\x20using\x20\x27npm\x20i\x20','/latest','allowExcessArguments','contextProvider','../package.json','addHelpCommand','getDate','No\x20CLI\x20context\x20present.\x20Create\x20context\x20with\x20\x27northflank\x20login\x27','utf-8','error','log','--skipValidation','option','redBright','1571835WriUnb','1zvbjik'];a17c=function(){return l;};return a17c();}export function getCommand(c=![]){const W=a17C,v=new Command();return v[W(0x175)](undefined,W(0x178)),v[W(0x186)](![]),v['storeOptionsAsProperties'](![]),v[W(0x17e)](![]),v[W(0x183)](![]),v[W(0x192)](!![]),c&&(v[W(0x18d)](W(0x197),W(0x16d),![]),v[W(0x18d)](W(0x196),'No\x20console\x20output',![]),v[W(0x18d)](W(0x18c),W(0x19e),![])),v;}export const retry=(c,v=0x32)=>j=>{let n=c;const g=async()=>{try{return await j();}catch(r){if(n<=0x0)throw r;return n-=0x1,await new Promise(H=>setTimeout(()=>H(),v)),g();}};return g();};export const asyncSequential=async(c,v)=>{const t=a17C,j=Promise[t(0x167)]([]);return c[t(0x16a)]((n,g)=>n[t(0x194)](r=>v(g)['then'](H=>{const m=t;return r[m(0x195)](H),r;})),j);};export function isValidJSON(c){try{return JSON['parse'](c);}catch(v){return![];}}export function assertContextExisting(c){const V=a17C;if(c[V(0x184)]['getCurrentContext']()===undefined)throw new Error(V(0x188));if(c[V(0x184)][V(0x191)]()===undefined)throw new Error('No\x20API\x20URL\x20present\x20in\x20context.\x20Create\x20new\x20context\x20with\x20\x27northflank\x20login\x27');if(c[V(0x184)][V(0x199)]()===undefined)throw new Error(V(0x1a0));}export const parseDateInput=c=>{const f=a17C;try{let j=new Date(c);if(isNaN(j[f(0x160)]())){const n=c['length']===0xd?c/0x3e8:c,g=new Date(0x0);g[f(0x176)](n);if(isNaN(g['getTime']()))throw new Error();return g;}return j;}catch(r){throw new Error('Invalid\x20date\x20received:\x20'+c+f(0x16c));}};export const tsHint=a17C(0x180);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@northflank/cli",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.16",
|
|
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.13",
|
|
31
31
|
"bufferutil": "^4.0.9",
|
|
32
32
|
"chalk": "~5.6.2",
|
|
33
33
|
"columnify": "^1.6.0",
|
|
@@ -53,7 +53,8 @@
|
|
|
53
53
|
}
|
|
54
54
|
},
|
|
55
55
|
"resolutions": {
|
|
56
|
-
"node-fetch/whatwg-url": "14.2.0"
|
|
56
|
+
"node-fetch/whatwg-url": "14.2.0",
|
|
57
|
+
"inquirer/lodash": "4.17.23"
|
|
57
58
|
},
|
|
58
59
|
"keywords": [
|
|
59
60
|
"northflank",
|