UNPKG

@northflank/cli

Version:

Provides a command-line interface to the Northflank platform.

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