@northflank/cli 0.10.8 → 0.10.10
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 +17 -20
- package/postinstall.js +0 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a14l=a14R;(function(O,R){const p=a14R,M=O();while(!![]){try{const i=-parseInt(p(0x95))/0x1*(-parseInt(p(0x7f))/0x2)+parseInt(p(0x8b))/0x3+-parseInt(p(0x81))/0x4+-parseInt(p(0x91))/0x5*(parseInt(p(0x92))/0x6)+-parseInt(p(0x9b))/0x7*(parseInt(p(0x99))/0x8)+parseInt(p(0x89))/0x9+-parseInt(p(0x8f))/0xa*(-parseInt(p(0x98))/0xb);if(i===R)break;else M['push'](M['shift']());}catch(K){M['push'](M['shift']());}}}(a14O,0xb7ad5));import a14M from'inquirer/lib/prompts/list.js';import a14i from'inquirer/lib/objects/choice.js';import a14K from'chalk';function incrementListIndex(O,R,M){const c=a14R,i=M['choices'][c(0x90)],K=c(0x7d)in M?Boolean(M[c(0x7d)]):!![];if(R==='up'){if(O>0x0)return O-0x1;return K?i-0x1:O;}if(R===c(0x8c)){if(O<i-0x1)return O+0x1;return K?0x0:O;}throw new Error(c(0x8d));}export class DynamicReloadPaginationPrompt extends a14M{[a14l(0x85)]=a14K[a14l(0x97)](a14l(0x88));[a14l(0x8e)];[a14l(0x80)]=![];['nextPageCursor'];constructor(O,R,M){const u=a14l;super(O,R,M),this[u(0x8e)]=this[u(0x93)],this[u(0x7e)]=this['pagOpt']['nextPageCursor'],this['nextPageCursor']!==undefined&&this['opt'][u(0x9a)][u(0x86)](new a14i(this[u(0x85)],this[u(0x85)]));}['onUpKey'](){const r=a14l;if(this[r(0x80)])return;this['selected']=incrementListIndex(this[r(0x82)],'up',this[r(0x93)]),this[r(0x87)]();}async[a14l(0x8a)](){const n=a14l;if(this[n(0x80)])return;this[n(0x82)]=incrementListIndex(this['selected'],n(0x8c),this[n(0x93)]),await this[n(0x96)](),this[n(0x87)]();}async[a14l(0x96)](){const Q=a14l;if(this[Q(0x82)]>=this[Q(0x93)][Q(0x9a)][Q(0x84)]-0x1){if(this[Q(0x7e)]===undefined)return;this['loading']=!![];let O=0x0;const R=setInterval(()=>{const L=Q,x=['⠋','⠙','⠹','⠸','⠼','⠴','⠦','⠧','⠇','⠏'],S=a14K[L(0x97)](x[O%x[L(0x84)]]+'\x20Loading\x20more\x20options');this[L(0x93)][L(0x9a)][L(0x9a)][this[L(0x82)]]['name']=''+S,O+=0x1,this[L(0x87)]();},0x50),{elements:M,nextPageCursor:K}=await this[Q(0x8e)][Q(0x94)]({'nextPageCursor':this[Q(0x7e)]})[Q(0x83)](()=>({'elements':[],'nextPageCursor':undefined}));this[Q(0x7e)]=K;const U=M['map'](x=>new a14i(x,x));this[Q(0x93)]['choices'][Q(0x9a)]['splice'](this[Q(0x82)],0x1),this['opt'][Q(0x9a)][Q(0x86)](...U),K!==undefined&&this[Q(0x93)][Q(0x9a)]['push'](new a14i(this[Q(0x85)],this['reloadText'])),clearInterval(R),this[Q(0x80)]=![];}}}function a14R(O,R){const M=a14O();return a14R=function(i,K){i=i-0x7d;let U=M[i];return U;},a14R(O,R);}function a14O(){const A=['nextPageCursor','446tcAWbW','loading','3389796cqRtrU','selected','catch','length','reloadText','push','render','..\x20Load\x20more\x20options\x20..','1315485VVcckS','onDownKey','1888596IyiymY','down','dir\x20must\x20be\x20up\x20or\x20down','pagOpt','3060tYJHqs','realLength','1813325vbaIRK','24SxeArp','opt','loadMore','3929zUINzl','handleDynamicPageLoad','italic','55792yNKwQJ','584RDTgPp','choices','14714zgmzvi','loop'];a14O=function(){return A;};return a14O();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const a15N=a15a;(function(S,a){const c=a15a,j=S();while(!![]){try{const v=parseInt(c(0xd2))/0x1*(-parseInt(c(0xa4))/0x2)+-parseInt(c(0x113))/0x3+-parseInt(c(0xa7))/0x4+parseInt(c(0x9b))/0x5+parseInt(c(0x11f))/0x6*(-parseInt(c(0xa9))/0x7)+parseInt(c(0x105))/0x8+-parseInt(c(0xb6))/0x9*(-parseInt(c(0xbc))/0xa);if(v===a)break;else j['push'](j['shift']());}catch(z){j['push'](j['shift']());}}}(a15S,0xcbaa9));function a15S(){const S1=['option','--project\x20--projectId\x20[NAME]','askForProject','3681723oFqhoG','protocol','hasOwnProperty','join','ApiClient','fwd','apply','/etc/hosts','platform','HTTP','hostnames','\x20addon\x20ports','6171726gcPJAl','map','chalk','skipHostnamesText','exit','forwardService','lodash','\x20is\x20exposed\x20on\x20','Services:','green','Project\x20for\x20forwarding','8153875FglCXI','getCurrentProjectName','\x27:\x20\x22','apiClient','Forwarding\x20addon\x20','--skipHostnames','askForService','customUserAgent','assertContextExisting','30MoBhaK','getProxyForwarder','address','1239248nGIiII','skipHostnames','7tzHluy','\x20mode:\x20the\x20locally\x20forwarded\x20port\x20differs\x20from\x20the\x20actual\x20port\x20on\x20the\x20forwarded\x20service/addon.','win32','prototype','Stop\x20forwarding\x20traffic\x20from\x20','forwardProject','getCommand','\x20-\x20','done','printHostsFileHint','warning','filter','\x20\x20\x20No\x20running\x20container\x20found\x20for\x20','20242503GehOYF','greenBright','uniq','\x20\x20-\x20Address:\x20','next','log','10whfyyq','CliPortForward','\x20\x20\x20\x20\x20\x20\x20\x20\x20','port','\x20to\x20','writable','__awaiter','darwin','addon','data.id','--addon\x20--addonId\x20[NAME]','Connection\x20error\x20occurred\x20when\x20forwarding\x20\x27','\x20flag\x20or\x20manually\x20append\x20following\x20entry\x20to\x20your\x20hosts\x20file\x20(','ports','\x20\x20If\x20you\x20have\x20added\x20entries\x20to\x20your\x20hosts\x20file,\x20it\x20is\x20recommended\x20to\x20remove\x20them\x20again\x20now.','Port-forwarding\x20for\x20the\x20specified\x20service','repeat','create','--service\x20--serviceId\x20[NAME]','forEach','throw','Running\x20on\x20macOS\x20in\x20','72609lITRhJ','portFwdCmd','data','Service\x20to\x20forward','Error\x20occured\x20while\x20trying\x20to\x20forward\x20','\x20and\x20','message','getOwnPropertyDescriptor','success','flat','--noDefaults','entries','\x20in\x20project\x20','hosts','defineProperty','type','printForwardingInfo','description',',\x20hostname:\x20','groupBy','get','@northflank/js-client','__importDefault','then','Please\x20ensure\x20the\x20','bold','Port-forwarding\x20for\x20the\x20specified\x20addon','configurable','connection-error','default','__setModuleDefault','noDefaultsText','__createBinding','InquirerHelper','capitalize','Running\x20in\x20','forward','Port-forwarding\x20for\x20Northflank\x20services\x20and\x20addons.','Addon\x20to\x20forward','\x20with\x20these\x20hostnames:','error','\x20\x20-\x20port\x20','length','No\x20services\x20and\x20addons\x20to\x20forward\x20found\x20in\x20project\x20','\x20is\x20exposed\x20with\x20multiple\x20','stop','askForAddon','Forwarding\x20service\x20','value','name','flatMap','4872672sPADau','service','forwarding','portName','../inquirer-helper','SIGINT','addCommand','Forwarding\x20','action','Failed:\x20','__esModule'];a15S=function(){return S1;};return a15S();}var __createBinding=this&&this[a15N(0xf2)]||(Object[a15N(0xcd)]?function(S,a,j,v){const Z=a15N;if(v===undefined)v=j;var z=Object[Z(0xd9)](a,j);(!z||(Z(0xe6)in z?!a[Z(0x10f)]:z[Z(0xc1)]||z[Z(0xed)]))&&(z={'enumerable':!![],'get':function(){return a[j];}}),Object[Z(0xe0)](S,v,z);}:function(S,a,j,v){if(v===undefined)v=j;S[v]=a[j];}),__setModuleDefault=this&&this[a15N(0xf0)]||(Object[a15N(0xcd)]?function(S,a){const D=a15N;Object['defineProperty'](S,D(0xef),{'enumerable':!![],'value':a});}:function(S,a){const e=a15N;S[e(0xef)]=a;}),__importStar=this&&this['__importStar']||function(S){const C=a15N;if(S&&S[C(0x10f)])return S;var a={};if(S!=null){for(var j in S)if(j!=='default'&&Object[C(0xac)][C(0x115)]['call'](S,j))__createBinding(a,S,j);}return __setModuleDefault(a,S),a;},__awaiter=this&&this[a15N(0xc2)]||function(S,a,j,v){function z(s){return s instanceof j?s:new j(function(u){u(s);});}return new(j||(j=Promise))(function(s,u){const h=a15a;function g(o){const q=a15a;try{i(v[q(0xba)](o));}catch(X){u(X);}}function w(o){const b=a15a;try{i(v[b(0xd0)](o));}catch(X){u(X);}}function i(o){const O=a15a;o[O(0xb1)]?s(o[O(0x102)]):z(o['value'])[O(0xe9)](g,w);}i((v=v[h(0x119)](S,a||[]))[h(0xba)]());});},__importDefault=this&&this[a15N(0xe8)]||function(S){const B=a15N;return S&&S[B(0x10f)]?S:{'default':S};};Object[a15N(0xe0)](exports,a15N(0x10f),{'value':!![]}),exports[a15N(0xbd)]=void 0x0;function a15a(S,a){const j=a15S();return a15a=function(v,z){v=v-0x94;let s=j[v];return s;},a15a(S,a);}const js_client_1=require(a15N(0xe7)),chalk_1=__importDefault(require(a15N(0x121))),utils_1=require('../utils'),inquirer_helper_1=require(a15N(0x109)),os=__importStar(require('os')),lodash_1=require(a15N(0x96)),{EOL}=require('os');class CliPortForward{constructor(S,a){const F=a15N;this[F(0xf1)]='Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.',this[F(0x122)]='Only\x20expose\x20on\x20IP\x20address,\x20not\x20on\x20hostnames.\x20With\x20this\x20option,\x20no\x20root\x20permissions\x20are\x20required.',this['apiClient']=new js_client_1[(F(0x117))](S,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':utils_1[F(0xa2)],'agent':a});const j=new inquirer_helper_1[(F(0xf3))](this['apiClient']);this['portFwdCmd']=(0x0,utils_1[F(0xaf)])()[F(0x103)](F(0xf6))['alias'](F(0x118))[F(0xe3)](F(0xf7));const v=(0x0,utils_1[F(0xaf)])(!![])[F(0x103)]('all')[F(0xe3)]('Port-forwarding\x20for\x20all\x20services\x20and\x20addons\x20in\x20the\x20given\x20project')[F(0x110)](F(0x111),'project\x20for\x20forwarding')[F(0x110)](F(0xdc),this[F(0xf1)],![])[F(0x110)](F(0xa0),this[F(0x122)],![])[F(0x10d)](({noDefaults:u,projectId:g,skipHostnames:w})=>__awaiter(this,void 0x0,void 0x0,function*(){const P=F;(0x0,utils_1[P(0xa3)])(this['apiClient']);const i=this[P(0xa5)](w),o=u?undefined:S[P(0x9c)](),X=g||o||(yield j[P(0x112)]());try{const {services:T,addons:H}=yield i[P(0xae)]({'projectId':X},w);if(T[P(0xfc)]+H[P(0xfc)]<=0x0)(0x0,utils_1[P(0xb3)])(P(0xfd)+chalk_1[P(0xef)][P(0xeb)](X));else{const E=T[P(0xb4)](K=>K[P(0xfc)]>0x0)[P(0xfc)],Y=H[P(0xb4)](K=>K[P(0xfc)]>0x0)[P(0xfc)],V=P(0xde)+chalk_1[P(0xef)][P(0xeb)](X);console[P(0xbb)](P(0x10c)+chalk_1[P(0xef)][P(0x99)][P(0xeb)](E+'\x20service\x20ports')+P(0xd7)+chalk_1[P(0xef)]['green'][P(0xeb)](Y+P(0x11e))+V),console[P(0xbb)](),console['log'](chalk_1['default'][P(0xeb)](P(0x98))),T[P(0xcf)](K=>{const m=P;if(K[m(0xfc)]>=0x1&&!K[0x0][m(0xfa)])this['printForwardingInfo'](K,{'type':'service','name':K[0x0]['data']['id']},w);}),console[P(0xbb)](chalk_1[P(0xef)][P(0xeb)]('Addons:')),H[P(0xcf)](K=>{const y=P;if(K[y(0xfc)]>=0x1&&!K[0x0]['error'])this[y(0xe2)](K,{'type':y(0xc4),'name':K[0x0][y(0xd4)]['id']},w);}),this[P(0xb2)]([...T['flat'](),...H[P(0xdb)]()],w);}}catch(K){(0x0,utils_1[P(0xfa)])(P(0x10e)+K[P(0xd8)]);}})),z=(0x0,utils_1[F(0xaf)])(!![])[F(0x103)](F(0x106))[F(0xe3)](F(0xcb))[F(0x110)]('--project\x20--projectId\x20[NAME]',F(0x9a))[F(0x110)](F(0xce),F(0xd5))['option'](F(0xdc),this[F(0xf1)],![])[F(0x110)](F(0xa0),this[F(0x122)],![])[F(0x10d)](({noDefaults:u,projectId:g,serviceId:w,skipHostnames:i})=>__awaiter(this,void 0x0,void 0x0,function*(){const U=F;(0x0,utils_1[U(0xa3)])(this[U(0x9e)]);const o=this['getProxyForwarder'](i),X=u?undefined:S['getCurrentProjectName'](),T=g||X||(yield j[U(0x112)]()),H=u?undefined:S['getCurrentServiceName'](),E=w||H||(yield j[U(0xa1)](T)());console[U(0xbb)](U(0x101)+chalk_1[U(0xef)][U(0xeb)](E)+U(0xde)+chalk_1[U(0xef)][U(0xeb)](T));try{const Y=yield o[U(0x95)]({'projectId':T,'serviceId':E},i);this[U(0xe2)](Y,{'name':E,'type':U(0x106)},i),this[U(0xb2)](Y,i);}catch(V){(0x0,utils_1[U(0xfa)])(U(0x10e)+V[U(0xd8)]);}})),s=(0x0,utils_1[F(0xaf)])(!![])['name'](F(0xc4))[F(0xe3)](F(0xec))[F(0x110)](F(0x111),F(0x9a))[F(0x110)](F(0xc6),F(0xf8))[F(0x110)](F(0xa0),this[F(0x122)],![])[F(0x10d)](({noDefaults:u,projectId:g,addonId:w,skipHostnames:i})=>__awaiter(this,void 0x0,void 0x0,function*(){const J=F;(0x0,utils_1[J(0xa3)])(this[J(0x9e)]);const o=this[J(0xa5)](i),X=u?undefined:S[J(0x9c)](),T=g||X||(yield j[J(0x112)]()),H=w||(yield j[J(0x100)](T)());console['log'](J(0x9f)+chalk_1['default'][J(0xeb)](H)+J(0xde)+chalk_1[J(0xef)]['bold'](T));try{const E={'projectId':T,'addonId':H},Y=yield o['forwardAddon'](E,i);this[J(0xe2)](Y,{'name':H,'type':J(0xc4)},i),this[J(0xb2)](Y,i);}catch(V){(0x0,utils_1[J(0xfa)])(J(0x10e)+V['message']);}}));this['portFwdCmd'][F(0x10b)](v),this[F(0xd3)]['addCommand'](z),this[F(0xd3)][F(0x10b)](s);}[a15N(0xa5)](S=![]){const W=a15N,a=this['apiClient'][W(0x107)];if(!S){const j=a['canExecuteWithHostnames']();if(j[W(0xfa)])throw new Error(j[W(0xd8)]);}return a['on']('tunnel-close',(v,z)=>{const l=W,s=chalk_1[l(0xef)]['bold'](z[l(0xe1)]+'\x20\x27'+z['id']+'\x27'),u=z[l(0x11d)][l(0xfc)]>0x0;(0x0,utils_1[l(0xb3)])(l(0xad)+z['address']+':'+z[l(0xbf)]+l(0xc0)+s),S&&u&&(0x0,utils_1[l(0xb3)])(l(0xca));}),a['on'](W(0xee),(v,z,s)=>{const f=W;(0x0,utils_1[f(0xb3)])(f(0xc7)+z[f(0xa6)]+':'+z[f(0xbf)]+f(0x9d)+(s===null||s===void 0x0?void 0x0:s['message'])+'\x22');}),process['on'](W(0x10a),()=>__awaiter(this,void 0x0,void 0x0,function*(){const I=W;try{yield a[I(0xff)]();}catch(v){(0x0,utils_1[I(0xfa)])('Cleaning\x20up\x20open\x20connections\x20failed:\x20'+v['message']);}finally{process[I(0x94)]();}})),a;}[a15N(0xe2)](S,a,j=![]){const r=a15N,{type:v,name:z}=a;if(S[r(0xfc)]<=0x0){const w=r(0xea)+a[r(0xe1)]+'\x20is\x20running\x20and\x20reachable\x20and\x20that\x20a\x20port\x20is\x20defined\x20on\x20the\x20networking\x20section.';(0x0,utils_1[r(0xb3)])(r(0xb5)+v+'\x20'+chalk_1['default'][r(0xeb)](z)+'.\x20'+w);return;}const s=(0x0,lodash_1[r(0xe5)])(S,r(0xc5)),u=i=>'\x20('+(i[r(0x108)]?i['portName']+r(0xb0):'')+i['protocol']+')';function g(i,o=0x2){const n=r;if(!j){const X=i[n(0x114)]===n(0x11c)?'http://':'';i[n(0x11d)][n(0xcf)](T=>{const k=n;console[k(0xbb)]((0x0,lodash_1[k(0xcc)])('\x20',o)+'-\x20'+X+T+':'+i[k(0xbf)]);});}}Object[r(0xdd)](s)['forEach'](([i,o])=>{const p=r;var X,T;const H='>\x20'+(0x0,lodash_1[p(0xf4)])(v)+'\x20\x27'+chalk_1[p(0xef)][p(0xb7)][p(0xeb)](i)+'\x27';if(v===p(0xc4)){if(o[p(0xfc)]===0x1){const E=o[0x0];if(E[p(0xfa)]){(0x0,utils_1[p(0xfa)])(p(0xd6)+i+':\x20'+E[p(0xfa)]['message']);return;}const Y=E[p(0xd4)],V=!j?'\x20'+chalk_1[p(0xef)]['reset']('with\x20hostname:\x20'+Y[p(0x11d)][p(0x116)](',')):'';(0x0,utils_1[p(0xda)])(H+p(0x97)+Y[p(0xa6)]+':'+Y[p(0xbf)]+u(Y)+V);}else{const K=(0x0,lodash_1['uniqBy'])(o,L=>{const G=p;var A,Q;return(Q=(A=L===null||L===void 0x0?void 0x0:L[G(0xd4)])===null||A===void 0x0?void 0x0:A[G(0x11d)])===null||Q===void 0x0?void 0x0:Q[G(0x116)](',');})[p(0xfc)]>0x1;(0x0,utils_1[p(0xda)])(H+p(0xfe)+(K?p(0xdf):p(0xc9))+':'),o[p(0xcf)](L=>{const d=p;if(L[d(0xfa)]){(0x0,utils_1[d(0xfa)])(d(0xd6)+i+':\x20'+L['error']['message']);return;}const A=L[d(0xd4)],Q=!j?d(0xe4)+A[d(0x11d)]['join'](','):'';console[d(0xbb)](d(0xb9)+A['address']+':'+A[d(0xbf)]+u(A)+Q);});}}if(v===p(0x106)){if(o[p(0xfc)]===0x1){const L=o[0x0];if(L[p(0xfa)]){(0x0,utils_1['error'])(p(0xd6)+i+':\x20'+L[p(0xfa)][p(0xd8)]);return;}const A=L[p(0xd4)],Q=!j?p(0xf9):':',R=A[p(0xa6)]+':'+A['port']+u(A);(0x0,utils_1['success'])(H+p(0x97)+R+Q),g(A);}else(0x0,utils_1[p(0xda)])(H+p(0x97)+((T=(X=o[0x0])===null||X===void 0x0?void 0x0:X[p(0xd4)])===null||T===void 0x0?void 0x0:T[p(0xa6)])+'\x20with\x20multiple\x20ports:'),o[p(0xcf)](M=>{const t=p;if(M[t(0xfa)]){(0x0,utils_1[t(0xfa)])(t(0xd6)+i+':\x20'+M[t(0xfa)][t(0xd8)]);return;}const x=M[t(0xd4)];(0x0,utils_1['success'])(t(0xfb)+x['port']+u(x)),g(x,0x4);});}});}[a15N(0xb2)](S,a=![]){const S0=a15N;if(a){const j=S[S0(0x104)](o=>o[S0(0xd4)])[S0(0xb4)](o=>o!==undefined),v=(process===null||process===void 0x0?void 0x0:process[S0(0x11b)])===S0(0xab),z=os[S0(0x11b)]()===S0(0xc3),s=v?'C:/Windows/System32/drivers/etc/hosts':S0(0x11a),u=chalk_1[S0(0xef)][S0(0xeb)](S0(0xa8)),g=z?EOL+S0(0xd1)+u+S0(0xaa):undefined;let w=S0(0xf5)+u+'\x20mode.\x20If\x20hostname\x20forwarding\x20is\x20required,\x20remove\x20'+S0(0xa0)+S0(0xc8)+s+'):';g!==undefined&&(0x0,utils_1[S0(0xb3)])(g!==null&&g!==void 0x0?g:'');(0x0,utils_1[S0(0xb3)])(w);const i=j[S0(0x120)](o=>o['address']+S0(0xbe)+o[S0(0x11d)][S0(0x116)]('\x20'));console[S0(0xbb)]((0x0,lodash_1[S0(0xb8)])(i)['join'](EOL)),console[S0(0xbb)]();}}}exports[a15N(0xbd)]=CliPortForward;
|
|
1
|
+
const a15H=a15R;(function(O,R){const d=a15R,M=O();while(!![]){try{const i=-parseInt(d(0x207))/0x1+parseInt(d(0x205))/0x2*(-parseInt(d(0x1ec))/0x3)+-parseInt(d(0x1e0))/0x4*(parseInt(d(0x1f0))/0x5)+parseInt(d(0x213))/0x6+-parseInt(d(0x1d7))/0x7*(-parseInt(d(0x232))/0x8)+parseInt(d(0x1f7))/0x9*(-parseInt(d(0x203))/0xa)+-parseInt(d(0x1eb))/0xb*(-parseInt(d(0x1da))/0xc);if(i===R)break;else M['push'](M['shift']());}catch(K){M['push'](M['shift']());}}}(a15O,0xb8028));function a15R(O,R){const M=a15O();return a15R=function(i,K){i=i-0x1cf;let U=M[i];return U;},a15R(O,R);}import{ApiClient}from'@northflank/js-client';import a15M from'chalk';import{assertContextExisting,customUserAgent,error,getCommand,success,warning}from'../utils.js';import{InquirerHelper}from'../inquirer-helper.js';function a15O(){const V=['printForwardingInfo','join','\x27:\x20\x22','Instance\x20to\x20forward','action','reset','platform','printHostsFileHint','21864VoUEAi','port','\x20is\x20exposed\x20on\x20','Services:','description','flat','service','canExecuteWithHostnames','\x20\x20\x20\x20\x20\x20\x20\x20\x20','portFwdCmd','greenBright','forwardProject','entries','Port-forwarding\x20for\x20the\x20specified\x20service','data','\x20mode:\x20the\x20locally\x20forwarded\x20port\x20differs\x20from\x20the\x20actual\x20port\x20on\x20the\x20forwarded\x20service/addon.','Only\x20expose\x20on\x20IP\x20address,\x20not\x20on\x20hostnames.\x20With\x20this\x20option,\x20no\x20root\x20permissions\x20are\x20required.','Port-forwarding\x20for\x20Northflank\x20services\x20and\x20addons.','fwd','973NeRKCd','askForProject','with\x20hostname:\x20','28495092ARCOOY','address','Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.','\x20-\x20','Please\x20ensure\x20the\x20','green','2975944ojEZzE','--instance\x20--instanceId\x20[NAME]','\x20flag\x20or\x20manually\x20append\x20following\x20entry\x20to\x20your\x20hosts\x20file\x20(','skipHostnamesText','addon','--addon\x20--addonId\x20[NAME]','project\x20for\x20forwarding','portName',',\x20hostname:\x20','noDefaultsText','getProxyForwarder','11fzwocm','171idFRhe','log','forEach','SIGINT','5IlnSUX','C:/Windows/System32/drivers/etc/hosts','Addon\x20to\x20forward','forward','option','forwarding','\x20service\x20ports','16866hBMqCT','>\x20Instance\x20\x27','\x20\x20\x20No\x20running\x20container\x20found\x20for\x20','protocol','Project\x20for\x20forwarding','Error\x20occured\x20while\x20trying\x20to\x20forward\x20','No\x20services\x20and\x20addons\x20to\x20forward\x20found\x20in\x20project\x20','\x20and\x20','name','exit','hosts','--project\x20--projectId\x20[NAME]','3070Oocesz','\x20addon\x20ports','7472aLTfGz','Connection\x20error\x20occurred\x20when\x20forwarding\x20\x27','601724iyZWOx','forwardService','alias','apiClient','Forwarding\x20addon\x20','Port-forwarding\x20for\x20all\x20services\x20and\x20addons\x20in\x20the\x20given\x20project','all','filter','data.id','\x20\x20If\x20you\x20have\x20added\x20entries\x20to\x20your\x20hosts\x20file,\x20it\x20is\x20recommended\x20to\x20remove\x20them\x20again\x20now.','--skipHostnames','hostnames','799236yAQfWK','askForAddon','bold','tunnel-close','ports','Forwarding\x20','/etc/hosts','message','length','http://','error','\x20in\x20project\x20','win32','--service\x20--serviceId\x20[NAME]','\x20is\x20exposed\x20with\x20multiple\x20','Failed:\x20','\x20with\x20these\x20hostnames:','addCommand','type','Stop\x20forwarding\x20traffic\x20from\x20','Forwarding\x20service\x20','map','getCurrentProjectName'];a15O=function(){return V;};return a15O();}import*as a15i from'os';import{uniqBy,uniq,repeat,groupBy,capitalize}from'lodash-es';import{EOL}from'os';export class CliPortForward{['portFwdCmd'];['apiClient'];[a15H(0x1e9)]=a15H(0x1dc);['skipHostnamesText']=a15H(0x1d4);constructor(O,R){const b=a15H;this[b(0x20a)]=new ApiClient(O,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':R});const M=new InquirerHelper(this[b(0x20a)]);this[b(0x23b)]=getCommand()[b(0x1ff)](b(0x1f3))[b(0x209)](b(0x1d6))[b(0x236)](b(0x1d5));const i=getCommand(!![])[b(0x1ff)](b(0x20d))[b(0x236)](b(0x20c))[b(0x1f4)](b(0x202),b(0x1e6))[b(0x1f4)]('--noDefaults',this[b(0x1e9)],![])[b(0x1f4)](b(0x211),this[b(0x1e3)],![])[b(0x22e)](async({noDefaults:x,projectId:S,skipHostnames:p})=>{const I=b;assertContextExisting(this[I(0x20a)]);const c=this[I(0x1ea)](p),l=x?undefined:O[I(0x229)](),u=S||l||await M[I(0x1d8)]();try{const {services:r,addons:n}=await c[I(0x1cf)]({'projectId':u},p);if(r['length']+n[I(0x21b)]<=0x0)warning(I(0x1fd)+a15M[I(0x215)](u));else{const Q=r['filter'](h=>h[I(0x21b)]>0x0)['length'],L=n[I(0x20e)](h=>h[I(0x21b)]>0x0)[I(0x21b)],A=I(0x21e)+a15M[I(0x215)](u);console[I(0x1ed)](I(0x218)+a15M['green'][I(0x215)](Q+I(0x1f6))+I(0x1fe)+a15M[I(0x1df)][I(0x215)](L+I(0x204))+A),console['log'](),console[I(0x1ed)](a15M[I(0x215)](I(0x235))),r['forEach'](h=>{const k=I;if(h[k(0x21b)]>=0x1&&!h[0x0][k(0x21d)])this[k(0x22a)](h,{'type':k(0x238),'name':h[0x0][k(0x1d2)]['id']},p);}),console[I(0x1ed)](a15M[I(0x215)]('Addons:')),n[I(0x1ee)](h=>{const q=I;if(h[q(0x21b)]>=0x1&&!h[0x0][q(0x21d)])this[q(0x22a)](h,{'type':'addon','name':h[0x0][q(0x1d2)]['id']},p);}),this[I(0x231)]([...r[I(0x237)](),...n[I(0x237)]()],p);}}catch(h){error('Failed:\x20'+h[I(0x21a)]);}}),K=getCommand(!![])[b(0x1ff)]('service')[b(0x236)](b(0x1d1))[b(0x1f4)](b(0x202),b(0x1fb))[b(0x1f4)](b(0x220),'Service\x20to\x20forward')['option'](b(0x1e1),b(0x22d))['option']('--noDefaults',this[b(0x1e9)],![])[b(0x1f4)]('--skipHostnames',this[b(0x1e3)],![])[b(0x22e)](async({noDefaults:x,projectId:S,serviceId:p,instanceId:c,skipHostnames:l})=>{const j=b;assertContextExisting(this[j(0x20a)]);const u=this[j(0x1ea)](l),r=x?undefined:O['getCurrentProjectName'](),n=S||r||await M[j(0x1d8)](),Q=x?undefined:O['getCurrentServiceName'](),L=p||Q||await M['askForService'](n)();console[j(0x1ed)](j(0x227)+a15M[j(0x215)](L)+j(0x21e)+a15M[j(0x215)](n));try{const A=await u[j(0x208)]({'projectId':n,'serviceId':L,'instanceId':c},l);this[j(0x22a)](A,{'name':L,'type':j(0x238),'instanceId':c},l),this['printHostsFileHint'](A,l);}catch(h){error(j(0x222)+h['message']);}}),U=getCommand(!![])[b(0x1ff)](b(0x1e4))[b(0x236)]('Port-forwarding\x20for\x20the\x20specified\x20addon')['option'](b(0x202),b(0x1fb))[b(0x1f4)](b(0x1e5),b(0x1f2))[b(0x1f4)]('--skipHostnames',this[b(0x1e3)],![])[b(0x22e)](async({noDefaults:x,projectId:S,addonId:p,skipHostnames:c})=>{const D=b;assertContextExisting(this[D(0x20a)]);const l=this[D(0x1ea)](c),u=x?undefined:O[D(0x229)](),r=S||u||await M[D(0x1d8)](),n=p||await M[D(0x214)](r)();console[D(0x1ed)](D(0x20b)+a15M[D(0x215)](n)+D(0x21e)+a15M[D(0x215)](r));try{const Q={'projectId':r,'addonId':n},L=await l['forwardAddon'](Q,c);this['printForwardingInfo'](L,{'name':n,'type':D(0x1e4)},c),this[D(0x231)](L,c);}catch(A){error(D(0x222)+A[D(0x21a)]);}});this[b(0x23b)]['addCommand'](i),this[b(0x23b)][b(0x224)](K),this['portFwdCmd'][b(0x224)](U);}[a15H(0x1ea)](O=![]){const Y=a15H,R=this[Y(0x20a)][Y(0x1f5)];if(!O){const M=R[Y(0x239)]();if(M[Y(0x21d)])throw new Error(M[Y(0x21a)]);}return R['on'](Y(0x216),(i,K)=>{const N=Y,U=a15M[N(0x215)](K['type']+'\x20\x27'+K['id']+'\x27'),x=K['hostnames'][N(0x21b)]>0x0;warning(N(0x226)+K['address']+':'+K['port']+'\x20to\x20'+U),O&&x&&warning(N(0x210));}),R['on']('connection-error',(i,K,U)=>{const z=Y;warning(z(0x206)+K[z(0x1db)]+':'+K[z(0x233)]+z(0x22c)+U?.[z(0x21a)]+'\x22');}),process['on'](Y(0x1ef),async()=>{const E=Y;try{await R['stop']();}catch(i){error('Cleaning\x20up\x20open\x20connections\x20failed:\x20'+i[E(0x21a)]);}finally{process[E(0x200)]();}}),R;}[a15H(0x22a)](O,R,M=![]){const T=a15H,{type:i,name:K,instanceId:U}=R;if(O[T(0x21b)]<=0x0){const c=T(0x1de)+R[T(0x225)]+'\x20is\x20running\x20and\x20reachable\x20and\x20that\x20a\x20port\x20is\x20defined\x20on\x20the\x20networking\x20section.';warning(T(0x1f9)+i+'\x20'+a15M[T(0x215)](K)+'.\x20'+c);return;}const x=groupBy(O,T(0x20f)),S=l=>'\x20('+(l[T(0x1e7)]?l[T(0x1e7)]+T(0x1dd):'')+l['protocol']+')';function p(l,u=0x2){const W=T;if(!M){const r=l[W(0x1fa)]==='HTTP'?W(0x21c):'';l[W(0x212)]['forEach'](n=>{const F=W;console[F(0x1ed)](repeat('\x20',u)+'-\x20'+r+n+':'+l[F(0x233)]);});}}Object[T(0x1d0)](x)[T(0x1ee)](([l,u])=>{const m=T,r=U?m(0x1f8)+a15M['greenBright'][m(0x215)](U)+'\x27\x20of\x20'+i+'\x20\x27'+a15M[m(0x23c)][m(0x215)](l)+'\x27':'>\x20'+capitalize(i)+'\x20\x27'+a15M[m(0x23c)][m(0x215)](l)+'\x27';if(i===m(0x1e4)){if(u[m(0x21b)]===0x1){const n=u[0x0];if(n[m(0x21d)]){error(m(0x1fc)+l+':\x20'+n[m(0x21d)][m(0x21a)]);return;}const Q=n[m(0x1d2)],L=!M?'\x20'+a15M[m(0x22f)](m(0x1d9)+Q['hostnames'][m(0x22b)](',')):'';success(r+m(0x234)+Q[m(0x1db)]+':'+Q['port']+S(Q)+L);}else{const A=uniqBy(u,h=>h?.[m(0x1d2)]?.[m(0x212)]?.[m(0x22b)](','))[m(0x21b)]>0x1;success(r+m(0x221)+(A?m(0x201):m(0x217))+':'),u[m(0x1ee)](h=>{const w=m;if(h['error']){error('Error\x20occured\x20while\x20trying\x20to\x20forward\x20'+l+':\x20'+h[w(0x21d)][w(0x21a)]);return;}const t=h[w(0x1d2)],G=!M?w(0x1e8)+t[w(0x212)][w(0x22b)](','):'';console[w(0x1ed)]('\x20\x20-\x20Address:\x20'+t[w(0x1db)]+':'+t[w(0x233)]+S(t)+G);});}}if(i===m(0x238)){if(u['length']===0x1){const h=u[0x0];if(h['error']){error(m(0x1fc)+l+':\x20'+h['error'][m(0x21a)]);return;}const t=h[m(0x1d2)],G=!M?m(0x223):':',s=t[m(0x1db)]+':'+t[m(0x233)]+S(t);success(r+m(0x234)+s+G),p(t);}else success(r+'\x20is\x20exposed\x20on\x20'+u[0x0]?.[m(0x1d2)]?.[m(0x1db)]+'\x20with\x20multiple\x20ports:'),u[m(0x1ee)](y=>{const e=m;if(y[e(0x21d)]){error('Error\x20occured\x20while\x20trying\x20to\x20forward\x20'+l+':\x20'+y[e(0x21d)]['message']);return;}const C=y[e(0x1d2)];success('\x20\x20-\x20port\x20'+C[e(0x233)]+S(C)),p(C,0x4);});}});}['printHostsFileHint'](O,R=![]){const B=a15H;if(R){const M=O['flatMap'](l=>l[B(0x1d2)])[B(0x20e)](l=>l!==undefined),i=process?.[B(0x230)]===B(0x21f),K=a15i['platform']()==='darwin',U=i?B(0x1f1):B(0x219),x=a15M[B(0x215)]('skipHostnames'),S=K?EOL+'Running\x20on\x20macOS\x20in\x20'+x+B(0x1d3):undefined;let p='Running\x20in\x20'+x+'\x20mode.\x20If\x20hostname\x20forwarding\x20is\x20required,\x20remove\x20'+B(0x211)+B(0x1e2)+U+'):';S!==undefined&&warning(S??'');warning(p);const c=M[B(0x228)](l=>l[B(0x1db)]+B(0x23a)+l[B(0x212)][B(0x22b)]('\x20'));console[B(0x1ed)](uniq(c)[B(0x22b)](EOL)),console[B(0x1ed)]();}}}
|
package/dist/utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a16c=a16R;(function(O,R){const p=a16R,M=O();while(!![]){try{const i=-parseInt(p(0xc5))/0x1*(parseInt(p(0xe8))/0x2)+parseInt(p(0xcb))/0x3+-parseInt(p(0xe6))/0x4+parseInt(p(0xe1))/0x5+parseInt(p(0xed))/0x6*(parseInt(p(0xd6))/0x7)+-parseInt(p(0xda))/0x8*(parseInt(p(0xc2))/0x9)+-parseInt(p(0xe4))/0xa*(-parseInt(p(0xf3))/0xb);if(i===R)break;else M['push'](M['shift']());}catch(K){M['push'](M['shift']());}}}(a16O,0x324b9));import a16M from'chalk';import{Command}from'commander';import{ProxyAgent}from'proxy-agent';import a16i from'node-fetch';import{readFileSync}from'fs';import{fileURLToPath}from'url';import{dirname,join}from'path';function a16R(O,R){const M=a16O();return a16R=function(i,K){i=i-0xbc;let U=M[i];return U;},a16R(O,R);}const __filename=fileURLToPath(import.meta[a16c(0xe9)]),__dirname=dirname(__filename),pgk=JSON[a16c(0xdc)](readFileSync(join(__dirname,a16c(0xc9)),a16c(0xeb)));export const customUserAgent=a16c(0xc7)+pgk?.[a16c(0xec)];function a16O(){const s=['10Snrfhg','addHelpCommand','986192VRUfWd','option','2JTAOlW','url','HTTP_PROXY','utf-8','version','36fZjFlw','HTTPS_PROXY','No\x20token\x20in\x20CLI\x20context.\x20Add\x20token\x20with\x20\x27northflank\x20set-token\x27','helpOption','Failed:\x20','error','5203319DdaaoN','min','from','example:\x202020-02-02T02:02:02Z\x20(date\x20string)\x20or\x201580608922\x20(unix\x20ts)','No\x20console\x20output','/latest','setLastUpdateCheck','env',',\x20the\x20latest\x20version\x20of\x20the\x20cli\x20is\x20','**\x20You\x27re\x20running\x20on\x20version\x20','contextProvider','padEnd','35172mbJVro','allowExcessArguments','--verbose','280931KSrPsx','getLastUpdateCheck','northflank-cli/','reduce','../package.json','replace','584553kagMvU','length','\x20Consider\x20updating\x20using\x20\x27npm\x20i\x20','enablePositionalOptions','getCurrentBaseUrl','split','https://registry.npmjs.org/','Do\x20not\x20validate\x20input\x20fields\x20on\x20client\x20side','getTime','then','yellow','6727UAKZhM','--quiet',',\x20expected\x20valid\x20date\x20string\x20(example:\x202020-02-02T02:02:02Z)\x20or\x20unix\x20timestamp\x20(example\x201580608922)','No\x20CLI\x20context\x20present.\x20Create\x20context\x20with\x20\x27northflank\x20login\x27','96ZrEhZI','resolve','parse','json','Verbose\x20output','\x20-g\x27\x20or\x20\x27yarn\x20global\x20add\x20','getCurrentToken','533690OMquWE','Invalid\x20date\x20received:\x20','redBright'];a16O=function(){return s;};return a16O();}export const agent=new ProxyAgent();export const proxyEnvsSet=process[a16c(0xbd)][a16c(0xea)]!==undefined||process[a16c(0xbd)][a16c(0xee)]!==undefined;export const decodeJwtPayload=O=>{try{const R=K=>{const l=a16R,U=K['replace'](/-/g,'+')[l(0xca)](/_/g,'/')[l(0xc1)](K[l(0xcc)]+(0x4-K[l(0xcc)]%0x4)%0x4,'=');return JSON[l(0xdc)](Buffer[l(0xf5)](U,'base64')['toString']());},[M,i]=O['split']('.');return R(i);}catch(K){return{};}};export async function checkUpdate(O){const u=a16c;function R(M,i){const K=new Date(Number(M));return K['setDate'](K['getDate']()+i),K;}try{if(R(O[u(0xc6)](),0x1)>new Date())return;const M=pgk[u(0xec)],{name:i}=pgk;if(!M)return;const K=u(0xd1)+i+u(0xf8),U=await a16i(K,{'agent':agent,'method':'GET','signal':AbortSignal['timeout'](0x1388)}),x=(await U[u(0xdd)]())[u(0xec)];needsUpdate(M,x)&&warning(u(0xbf)+M+u(0xbe)+x+'.'+(u(0xcd)+i+u(0xdf)+i+'\x27\x20**')),await O[u(0xbc)](new Date());}catch(S){}}function needsUpdate(O,R){const r=a16c,M=/(\.0+)+$/,K=O[r(0xca)](M,'')[r(0xd0)]('.'),U=R[r(0xca)](M,'')['split']('.');for(let x=0x0;x<Math[r(0xf4)](K[r(0xcc)],U['length']);x+=0x1){const S=parseInt(U[x],0xa)-parseInt(K[x],0xa);if(S>0x0)return!![];if(S<0x0)return![];}return U[r(0xcc)]>K['length'];}export function error(O){const n=a16c;console[n(0xf2)](a16M[n(0xe3)](n(0xf1)+O));}export function warning(O){const Q=a16c;console[Q(0xf2)](a16M[Q(0xd5)](''+O));}export function success(O){console['log'](a16M['green'](''+O));}export function getCommand(O=![]){const L=a16c,R=new Command();return R[L(0xf0)](undefined,'Display\x20help\x20for\x20command'),R[L(0xe5)](![]),R['storeOptionsAsProperties'](![]),R['allowUnknownOption'](![]),R[L(0xc3)](![]),R[L(0xce)](!![]),O&&(R[L(0xe7)](L(0xc4),L(0xde),![]),R['option'](L(0xd7),L(0xf7),![]),R['option']('--skipValidation',L(0xd2),![])),R;}export const retry=(O,R=0x32)=>M=>{let i=O;const K=async()=>{try{return await M();}catch(U){if(i<=0x0)throw U;return i-=0x1,await new Promise(x=>setTimeout(()=>x(),R)),K();}};return K();};export const asyncSequential=async(O,R)=>{const A=a16c,M=Promise[A(0xdb)]([]);return O[A(0xc8)]((i,K)=>i[A(0xd4)](U=>R(K)[A(0xd4)](x=>{return U['push'](x),U;})),M);};export function isValidJSON(O){const h=a16c;try{return JSON[h(0xdc)](O);}catch(R){return![];}}export function assertContextExisting(O){const t=a16c;if(O[t(0xc0)]['getCurrentContext']()===undefined)throw new Error(t(0xd9));if(O['contextProvider'][t(0xcf)]()===undefined)throw new Error('No\x20API\x20URL\x20present\x20in\x20context.\x20Create\x20new\x20context\x20with\x20\x27northflank\x20login\x27');if(O[t(0xc0)][t(0xe0)]()===undefined)throw new Error(t(0xef));}export const parseDateInput=O=>{const G=a16c;try{let R=new Date(O);if(isNaN(R['getTime']())){const M=O[G(0xcc)]===0xd?O/0x3e8:O,i=new Date(0x0);i['setUTCSeconds'](M);if(isNaN(i[G(0xd3)]()))throw new Error();return i;}return R;}catch(K){throw new Error(G(0xe2)+O+G(0xd8));}};export const tsHint=a16c(0xf6);
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@northflank/cli",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.10",
|
|
4
4
|
"author": "Marco Suter",
|
|
5
5
|
"description": "Provides a command-line interface to the Northflank platform.",
|
|
6
6
|
"homepage": "https://www.northflank.com",
|
|
7
7
|
"license": "MIT",
|
|
8
|
-
"
|
|
8
|
+
"type": "module",
|
|
9
9
|
"main": "./dist/cli.js",
|
|
10
10
|
"engines": {
|
|
11
11
|
"node": ">=18.0.0"
|
|
@@ -13,11 +13,10 @@
|
|
|
13
13
|
"scripts": {
|
|
14
14
|
"build": "tsc",
|
|
15
15
|
"clin": "node --no-deprecation dist/cli.js",
|
|
16
|
-
"cli": "
|
|
16
|
+
"cli": "tsx src/cli.ts",
|
|
17
17
|
"inq-pag": "ts-node src/pagination/_dev/index.ts",
|
|
18
18
|
"gen-fig-spec": "ts-node src/_dev/gen-fig-spec.ts",
|
|
19
|
-
"lint": "eslint ."
|
|
20
|
-
"postinstall": "node postinstall.js"
|
|
19
|
+
"lint": "eslint ."
|
|
21
20
|
},
|
|
22
21
|
"bin": {
|
|
23
22
|
"northflank": "dist/cli.js"
|
|
@@ -25,29 +24,27 @@
|
|
|
25
24
|
"files": [
|
|
26
25
|
"package.json",
|
|
27
26
|
"dist",
|
|
28
|
-
"postinstall.js",
|
|
29
27
|
"LICENSE"
|
|
30
28
|
],
|
|
31
29
|
"dependencies": {
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"inquirer": "7.3.3",
|
|
30
|
+
"bufferutil": "^4.0.9",
|
|
31
|
+
"chalk": "~5.6.2",
|
|
32
|
+
"columnify": "^1.6.0",
|
|
33
|
+
"commander": "^14.0.2",
|
|
34
|
+
"inquirer": "8.2.7",
|
|
38
35
|
"inquirer-search-list": "^1.2.6",
|
|
39
|
-
"js-yaml": "^
|
|
40
|
-
"lodash": "^4.17.
|
|
41
|
-
"node-fetch": "
|
|
42
|
-
"open": "^
|
|
36
|
+
"js-yaml": "^4.1.1",
|
|
37
|
+
"lodash-es": "^4.17.21",
|
|
38
|
+
"node-fetch": "^3.3.2",
|
|
39
|
+
"open": "^11.0.0",
|
|
43
40
|
"proxy-agent": "^6.5.0",
|
|
44
|
-
"utf-8-validate": "^
|
|
41
|
+
"utf-8-validate": "^6.0.5",
|
|
45
42
|
"whatwg-url": "14.2.0",
|
|
46
|
-
"ws": "^8.
|
|
43
|
+
"ws": "^8.18.3"
|
|
47
44
|
},
|
|
48
45
|
"devDependencies": {
|
|
49
|
-
"
|
|
50
|
-
"typescript": "^
|
|
46
|
+
"tsx": "^4.21.0",
|
|
47
|
+
"typescript": "^5.9.3"
|
|
51
48
|
},
|
|
52
49
|
"overrides": {
|
|
53
50
|
"node-fetch@2.6.7": {
|
package/postinstall.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
const chalk = require('chalk');
|
|
2
|
-
|
|
3
|
-
function cmdFmt(cmd) {
|
|
4
|
-
return `'${chalk.italic.underline(cmd)}'`;
|
|
5
|
-
}
|
|
6
|
-
function link(url) {
|
|
7
|
-
return chalk.blueBright.bold(url);
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
console.log(chalk.greenBright.bold(`The Northflank CLI has been installed successfully.`));
|
|
11
|
-
console.log(`Run ${cmdFmt('northflank login')} to connect to your Northflank account. `);
|
|
12
|
-
console.log(`If you don't have a token yet, create it on ${link('https://app.northflank.com')}`);
|
|
13
|
-
console.log('');
|
|
14
|
-
console.log(`For more help, run ${cmdFmt('northflank help')}`);
|
|
15
|
-
console.log(`Visit the documentation at ${link('https://northflank.com/docs/v1/api/use-the-cli')}`);
|
|
16
|
-
console.log('');
|