UNPKG

@northflank/cli

Version:

Provides a command-line interface to the Northflank platform.

1 lines 15.3 kB
'use strict';const a2x=a2a;function a2S(){const S3=['get','CliContext','done',':\x20\x0a\x20\x20Name:\x09\x09\x09','5512010WMvSca','InquirerHelper','--do-not-open-browser','next','length','search-list','login','/v1/login','set','addContext','apply','../formatting/console-format-helpers','18XtxWLD','printAsTable','__importStar','use','browserLogin','updateToken','-i,\x20--id\x20[ID]','token','sort','loadContextWrapper','../inquirer-helper','-t,\x20--token\x20[TOKEN]','apiTokenLogin','startLogin','../utils','moveCursor','list','__importDefault','service','configurable','host','Change\x20the\x20default\x20service\x20in\x20the\x20current\x20local\x20context','log','close','getCurrentContext','verifyToken','useServiceId','563216drKJhM','hasOwnProperty','prototype','node-fetch','2395358AltYZY','retry','getCommand','ProxyAgent','removeContext','apiClient','GET','action','askForContext','No\x20project\x20in\x20current\x20context.\x20Please\x20set\x20project\x20before\x20setting\x20a\x20project-scoped\x20resource','clearLine','project','contextAvailable','List\x20all\x20available\x20contexts','Job\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','getCurrentName','\x0a\x20\x20Default\x20Project:\x09','error','addCommand','defineProperty','Use\x20job\x20with\x20id:','call','getOwnPropertyDescriptor','Use\x20project\x20with\x20id:','loginPrompt','Override\x20existing\x20contexts\x20(this\x20will\x20remove\x20project\x20and\x20service\x20context)','\x0aSuccessfully\x20logged\x20in\x20using\x20','getProjectName','Connect\x20the\x20CLI\x20to\x20your\x20Northflank\x20account.','value','Local\x20context\x20\x27','1256305NrkPcA','18CFqdpH','Use\x20manual\x20login\x20with\x20API\x20token','throw','all','askForJob','chalk','--host\x20[HOST]','finally','set-token','browser-opened','__awaiter','lodash','Contexts','6aPeNuw','Choose\x20the\x20context\x20to\x20','https://','then','success','decodeJwtPayload','agent','Bearer\x20','defaultBaseUrl','create','useContext','Update\x20token\x20for\x20current\x20context','-n,\x20--name\x20[NAME]','useJobId','getInfo','current','test','tokenInternalId','sessionToken=********','\x0a\x20\x20Token\x20Role\x20ID:\x09','prompt','Use\x20service\x20with\x20id:','inquirer','tokenLogin','Local\x20context\x20name\x20to\x20remove.','contexts','askForService','contextProvider','stdout','getCurrentToken','description','Shows\x20full\x20context\x20information\x20(including\x20tokens)','timeout','366768zcPgPd','\x20(api\x20host:\x20','job','NorthflankApiBrowserLogin','https://api.northflank.com','option','Remove\x20a\x20context','default','map','browser\x20login','Shows\x20detailed\x20information\x20about\x20current\x20context','\x20(current)','__esModule','--override','replace','Use\x20browser\x20login\x20but\x20only\x20print\x20URL\x20which\x20can\x20be\x20used\x20to\x20login','name','remove','dir','fullUrl','\x0a\x20\x20Host:\x09\x09\x09','1468000TFrZgj','Current\x20token\x20info','show','Open\x20this\x20URL\x20in\x20your\x20browser\x20and\x20follow\x20the\x20steps:\x0a\x09','--all','Display\x20full\x20URL\x20to\x20allow\x20opening\x20the\x20link\x20manually','\x0a\x20\x20\x20\x20\x20\x20\x20\x20','getCurrentBaseUrl','251540NFAfMW','Changed\x20current\x20context\x20to\x20','askForProject','\x27\x20successfully\x20removed.','italic','No\x20context\x20available.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','alias','ctx','\x0a\x20\x20Default\x20Service:\x09','sanitiseHostname','message'];a2S=function(){return S3;};return a2S();}(function(S,a){const M=a2a,j=S();while(!![]){try{const v=-parseInt(M(0x1ab))/0x1+parseInt(M(0x1fe))/0x2*(parseInt(M(0x18a))/0x3)+parseInt(M(0x1c8))/0x4+-parseInt(M(0x17c))/0x5*(-parseInt(M(0x17d))/0x6)+-parseInt(M(0x15d))/0x7+-parseInt(M(0x1c0))/0x8*(-parseInt(M(0x1e3))/0x9)+-parseInt(M(0x1d7))/0xa;if(v===a)break;else j['push'](j['shift']());}catch(z){j['push'](j['shift']());}}}(a2S,0x76d41));var __createBinding=this&&this['__createBinding']||(Object[a2x(0x193)]?function(S,a,j,v){const c=a2x;if(v===undefined)v=j;var z=Object[c(0x173)](a,j);(!z||(c(0x1d3)in z?!a[c(0x1b7)]:z['writable']||z[c(0x1f6)]))&&(z={'enumerable':!![],'get':function(){return a[j];}}),Object['defineProperty'](S,v,z);}:function(S,a,j,v){if(v===undefined)v=j;S[v]=a[j];}),__setModuleDefault=this&&this['__setModuleDefault']||(Object['create']?function(S,a){const N=a2x;Object[N(0x170)](S,N(0x1b2),{'enumerable':!![],'value':a});}:function(S,a){const Z=a2x;S[Z(0x1b2)]=a;}),__importStar=this&&this[a2x(0x1e5)]||function(S){const D=a2x;if(S&&S[D(0x1b7)])return S;var a={};if(S!=null){for(var j in S)if(j!==D(0x1b2)&&Object[D(0x200)][D(0x1ff)][D(0x172)](S,j))__createBinding(a,S,j);}return __setModuleDefault(a,S),a;},__awaiter=this&&this[a2x(0x187)]||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 q=a2a;function g(o){try{i(v['next'](o));}catch(X){u(X);}}function w(o){const e=a2a;try{i(v[e(0x17f)](o));}catch(X){u(X);}}function i(o){const C=a2a;o[C(0x1d5)]?s(o[C(0x17a)]):z(o[C(0x17a)])['then'](g,w);}i((v=v[q(0x1e1)](S,a||[]))[q(0x1da)]());});},__importDefault=this&&this[a2x(0x1f4)]||function(S){const b=a2x;return S&&S[b(0x1b7)]?S:{'default':S};};Object[a2x(0x170)](exports,'__esModule',{'value':!![]}),exports[a2x(0x1d4)]=void 0x0;const _=__importStar(require(a2x(0x188))),proxy_agent_1=require('proxy-agent'),chalk_1=__importDefault(require(a2x(0x182))),utils_1=require(a2x(0x1f1)),inquirer_helper_1=require(a2x(0x1ed)),console_format_helpers_1=require(a2x(0x1e2)),browser_login_1=require('../login/browser-login'),node_fetch_1=__importDefault(require(a2x(0x201))),inquirer=require(a2x(0x1a0));class CliContext{constructor(S,a=undefined,j=a2x(0x1af)){const O=a2x;this[O(0x190)]=a,this[O(0x192)]=j,this[O(0x1d1)]=H=>{const h=O;let E=H;return!/^https?:\/\//i[h(0x19a)](E)&&(E=h(0x18c)+E),E=E[h(0x1b9)](/\/+$/,''),E;},this[O(0x162)]=S;const v=new inquirer_helper_1[(O(0x1d8))](S);this['login']=(0x0,utils_1[O(0x15f)])()[O(0x1bb)](O(0x1dd))['description'](O(0x179))[O(0x1b0)]('--token-login',O(0x17e),![])['option'](O(0x1d9),O(0x1ba),![])['option'](O(0x196),'Name\x20for\x20login\x20context')[O(0x1b0)](O(0x1ee),'Token\x20for\x20this\x20context.\x20When\x20set,\x20browser\x20login\x20is\x20not\x20used')[O(0x1b0)](O(0x183),'host\x20url\x20for\x20this\x20context',this[O(0x192)])[O(0x1b0)](O(0x1b8),O(0x176),![])[O(0x164)](H=>__awaiter(this,void 0x0,void 0x0,function*(){const B=O;_[B(0x1df)](H,B(0x1f7),this['sanitiseHostname'](H[B(0x1f7)]));const E=H[B(0x1a1)]||H[B(0x1ea)]!==undefined,{name:Y,host:V,token:K,override:L}=E?yield this['apiTokenLogin'](H,v):yield this[B(0x1e7)](H,v);try{yield this[B(0x162)]['contextProvider'][B(0x1e0)]({'name':Y,'host':V,'token':K},L);}catch(A){(0x0,utils_1[B(0x16e)])(A[B(0x1d2)]);return;}if(!(yield this['verifyToken']()))(0x0,utils_1[B(0x16e)])('Failed\x20to\x20login\x20with\x20the\x20provided\x20token,\x20make\x20sure\x20to\x20use\x20a\x20valid\x20token\x20and\x20host.'),yield this[B(0x162)][B(0x1a5)][B(0x161)](Y);else{const Q=E?'token\x20login':B(0x1b4),R=B(0x177)+Q+',\x20added\x20context\x20with\x20name\x20'+chalk_1[B(0x1b2)][B(0x1cc)](Y)+B(0x1ac)+V+')';(0x0,utils_1[B(0x18e)])(R);}})),this['contexts']=(0x0,utils_1[O(0x15f)])()[O(0x1bb)]('context')[O(0x1a8)]('Retrieve\x20and\x20update\x20local\x20context\x20settings.')[O(0x1ce)](O(0x1a3))['alias'](O(0x1cf));const z=(0x0,utils_1[O(0x15f)])()['name']('list')['name']('ls')['description'](O(0x16a))[O(0x1b0)](O(0x1c4),O(0x1a9))[O(0x164)](H=>__awaiter(this,void 0x0,void 0x0,function*(){const F=O;console[F(0x1f9)](S[F(0x1a5)][F(0x198)]());const E=S[F(0x1a5)]['loadContextWrapper']();if(H[F(0x180)]===!![]){console[F(0x1bd)](E);return;}const Y=E[F(0x199)],V=E[F(0x1a3)][F(0x1eb)]((K,L)=>K[F(0x1bb)]===Y?-0x1:L[F(0x1bb)]===Y?0x1:0x0)[F(0x1b3)](K=>{const P=F,L=Y===K[P(0x1bb)]?P(0x1b6):'';return{'Name':''+K['name']+L,'Host':K[P(0x1f7)],'Default\x20Project':K[P(0x168)]||'-','Default\x20Service':K[P(0x1f5)]||'-'};});(0x0,console_format_helpers_1[F(0x1e4)])(V,F(0x189));})),s=(0x0,utils_1['getCommand'])()['name'](O(0x1c2))[O(0x1a8)](O(0x1b5))['action'](()=>__awaiter(this,void 0x0,void 0x0,function*(){const m=O;console[m(0x1f9)](S[m(0x1a5)][m(0x198)]());const H=S['contextProvider']['getCurrentContext']();if(H===undefined){console['log']('No\x20current\x20context\x20set.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20one\x20or\x20\x27northflank\x20context\x20use\x27\x20to\x20select\x20an\x20existing\x20one.');return;}const E=(0x0,utils_1[m(0x18f)])(H['token']),Y=H[m(0x1f7)];console['log'](chalk_1[m(0x1b2)]['bold'](m(0x1c1))+m(0x1d6)+H[m(0x1bb)]+m(0x1bf)+Y+m(0x16d)+(H['project']||'-')+m(0x1d0)+(H['service']||'-')+'\x0a\x20\x20Token\x20ID:\x09\x09'+((E===null||E===void 0x0?void 0x0:E[m(0x19b)])||'-')+m(0x19d)+((E===null||E===void 0x0?void 0x0:E['roleInternalId'])||'-')+m(0x1c6));})),u=(0x0,utils_1[O(0x15f)])();u['name'](O(0x1e6))[O(0x1a8)]('Switch\x20between\x20your\x20local\x20contexts')[O(0x1b0)](O(0x196),'Change\x20current\x20context\x20to\x20context\x20identified\x20by\x20this\x20name')['action'](H=>__awaiter(this,void 0x0,void 0x0,function*(){const y=O,E=(H===null||H===void 0x0?void 0x0:H['name'])||(yield this[y(0x165)](y(0x1e6)));yield this[y(0x162)][y(0x1a5)]['useContext'](E),(0x0,utils_1[y(0x18e)])('Changed\x20current\x20context\x20to\x20'+E);}));const g=O(0x1e9),w=(0x0,utils_1[O(0x15f)])()['name']('project')[O(0x1a8)]('Change\x20the\x20default\x20project\x20in\x20the\x20current\x20local\x20context')[O(0x1b0)](g,'Project\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context')[O(0x164)](H=>__awaiter(this,void 0x0,void 0x0,function*(){const U=O,E=(H===null||H===void 0x0?void 0x0:H['id'])||(yield v[U(0x1ca)]());yield this[U(0x162)][U(0x1a5)]['useProjectId'](E),console[U(0x1f9)](U(0x174),E);})),i=(0x0,utils_1[O(0x15f)])()['name'](O(0x1f5))[O(0x1a8)](O(0x1f8))[O(0x1b0)](g,'Service\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context')[O(0x164)](H=>__awaiter(this,void 0x0,void 0x0,function*(){const J=O,E=(H===null||H===void 0x0?void 0x0:H['id'])||(yield v[J(0x1a4)](this[J(0x178)]())());console[J(0x1f9)](J(0x19f),E),yield this[J(0x162)][J(0x1a5)][J(0x1fd)](E);})),o=(0x0,utils_1[O(0x15f)])()[O(0x1bb)](O(0x1ad))['description']('Change\x20the\x20default\x20job\x20in\x20the\x20current\x20local\x20context')[O(0x1b0)](g,O(0x16b))['action'](H=>__awaiter(this,void 0x0,void 0x0,function*(){const W=O,E=(H===null||H===void 0x0?void 0x0:H['id'])||(yield v[W(0x181)](this['getProjectName']())());console[W(0x1f9)](W(0x171),E),yield this[W(0x162)][W(0x1a5)][W(0x197)](E);}));u['addCommand'](w),u['addCommand'](o),u[O(0x16f)](i);const X=(0x0,utils_1[O(0x15f)])()[O(0x1bb)](O(0x1bc))[O(0x1ce)]('delete')[O(0x1ce)]('rm')['description'](O(0x1b1))[O(0x1b0)](g,O(0x1a2))[O(0x164)](H=>__awaiter(this,void 0x0,void 0x0,function*(){const l=O;var E;const Y=(H===null||H===void 0x0?void 0x0:H['id'])||(yield this[l(0x165)](l(0x1bc))),V=(E=this[l(0x162)]['contextProvider'][l(0x1fb)]())===null||E===void 0x0?void 0x0:E[l(0x1bb)];yield this['apiClient'][l(0x1a5)][l(0x161)](Y),(0x0,utils_1['success'])(l(0x17b)+Y+l(0x1cb));if(!this[l(0x169)]()){(0x0,utils_1['warning'])(l(0x1cd));return;}if(V===Y){const K=(H===null||H===void 0x0?void 0x0:H[l(0x1bb)])||(yield this[l(0x165)]('use\x20from\x20now\x20on'));yield this[l(0x162)][l(0x1a5)][l(0x194)](K),(0x0,utils_1[l(0x18e)])(l(0x1c9)+K);}})),T=(0x0,utils_1['getCommand'])()[O(0x1bb)]('update-token')[O(0x1ce)](O(0x185))['description'](O(0x195))[O(0x1b0)]('-t,\x20--token\x20[TOKEN]','Token\x20for\x20this\x20context')[O(0x164)](H=>__awaiter(this,void 0x0,void 0x0,function*(){const f=O,{contextProvider:E}=this[f(0x162)],Y=(H===null||H===void 0x0?void 0x0:H[f(0x1ea)])||(yield v['tokenPrompt']()),V=E[f(0x1a7)]();yield E[f(0x1e8)](Y);if(yield this[f(0x1fc)]())(0x0,utils_1[f(0x18e)])('Token\x20for\x20current\x20context\x20\x27'+E[f(0x16c)]()+'\x27\x20successfully\x20updated.');else{if(V)yield E[f(0x1e8)](V);(0x0,utils_1[f(0x16e)])('Failed\x20to\x20login\x20with\x20the\x20provided\x20token.\x20Token\x20was\x20not\x20changed');}}));this[O(0x1a3)][O(0x16f)](z),this[O(0x1a3)]['addCommand'](s),this[O(0x1a3)][O(0x16f)](u),this[O(0x1a3)][O(0x16f)](X),this['contexts'][O(0x16f)](T);}[a2x(0x1e7)](S,a){var j,v,z,s;return __awaiter(this,void 0x0,void 0x0,function*(){const I=a2a,u=!S['doNotOpenBrowser'],g=(j=S[I(0x1f7)])!==null&&j!==void 0x0?j:this[I(0x192)],w=new browser_login_1[(I(0x1ae))](g,u,this[I(0x190)]);let i;w['on'](I(0x186),({url:H})=>{const r=I;if(u){const E=H[r(0x1b9)](/sessionToken=.*/,r(0x19c));console[r(0x1f9)]('Follow\x20the\x20steps\x20displayed\x20on\x20the\x20page\x20opened\x20in\x20the\x20browser\x20(URL\x20opened:\x20'+E+')'),i=inquirer[r(0x19e)]([{'type':'confirm','name':r(0x1be),'message':r(0x1c5),'default':![]}]),i[r(0x18d)](Y=>{const n=r;process[n(0x1a6)][n(0x1f2)](0x0,-0x1),process[n(0x1a6)][n(0x167)](0x1),Y['fullUrl']&&console['log'](n(0x1c3)+H+'\x20');});}else console['log'](r(0x1c3)+H+'\x20');});const {token:o,contextName:X}=yield w[I(0x1f0)]()['catch'](H=>__awaiter(this,void 0x0,void 0x0,function*(){const k=I;(0x0,utils_1[k(0x16e)])('Error\x20occured\x20during\x20browser\x20login:\x20'+H['message']+'.\x20Using\x20fallback.');const E=yield this['apiTokenLogin'](S,a);return{'token':E[k(0x1ea)],'contextName':E[k(0x1bb)]};}))[I(0x184)](()=>{const p=I;if(i)i['ui'][p(0x1fa)]();}),T=(z=(v=S['name'])!==null&&v!==void 0x0?v:X)!==null&&z!==void 0x0?z:'autologin-'+new Date()['valueOf']();return{'name':T,'token':o,'host':g,'override':(s=S['override'])!==null&&s!==void 0x0?s:![]};});}[a2x(0x1ef)](S,a){return __awaiter(this,void 0x0,void 0x0,function*(){const G=a2a,j=this[G(0x162)][G(0x1a5)][G(0x1ec)]()['contexts'],{name:v,token:z,host:s,override:u}=yield a[G(0x175)](S,j);return{'name':v,'token':z,'host':s,'override':u};});}[a2x(0x178)](){const d=a2x,S=this[d(0x162)][d(0x1a5)]['getCurrentProjectName']();if(S===undefined)throw new Error(d(0x166));return S;}[a2x(0x165)](S){return __awaiter(this,void 0x0,void 0x0,function*(){const t=a2a;if(!this['contextAvailable']())throw new Error('No\x20context\x20available.\x20Please\x20use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.');const a=this[t(0x162)][t(0x1a5)]['loadContextWrapper']()[t(0x1a3)][t(0x1b3)](v=>v['name']),j=a['length']>0x4?t(0x1dc):t(0x1f3);return(yield inquirer['prompt']([{'type':j,'name':t(0x1bb),'message':t(0x18b)+S+':','choices':a}]))[t(0x1bb)];});}[a2x(0x169)](){const S0=a2x;return this[S0(0x162)][S0(0x1a5)]['loadContextWrapper']()[S0(0x1a3)][S0(0x1db)]>0x0;}[a2x(0x1fc)](){return __awaiter(this,void 0x0,void 0x0,function*(){const S1=a2a;try{const S=this[S1(0x162)][S1(0x1a5)][S1(0x1c7)](),a=this[S1(0x162)]['contextProvider'][S1(0x1a7)](),j=S+S1(0x1de),v={'Authorization':S1(0x191)+a},z=new proxy_agent_1[(S1(0x160))](),s=yield(0x0,utils_1[S1(0x15e)])(0x3)(()=>__awaiter(this,void 0x0,void 0x0,function*(){const S2=S1;return(0x0,node_fetch_1[S2(0x1b2)])(j,{'method':S2(0x163),'signal':AbortSignal[S2(0x1aa)](0xbb8),'headers':v,'agent':z});}));if(s['ok'])return!![];return![];}catch(u){return![];}});}}function a2a(S,a){const j=a2S();return a2a=function(v,z){v=v-0x15d;let s=j[v];return s;},a2a(S,a);}exports[a2x(0x1d4)]=CliContext;