@northflank/cli
Version:
Provides a command-line interface to the Northflank platform.
1 lines • 3.48 kB
JavaScript
const a10T=a10j;(function(X,j){const l=a10j,V=X();while(!![]){try{const H=parseInt(l(0x1c8))/0x1*(-parseInt(l(0x1ce))/0x2)+parseInt(l(0x1b2))/0x3*(-parseInt(l(0x1b4))/0x4)+-parseInt(l(0x1ab))/0x5*(-parseInt(l(0x1c6))/0x6)+-parseInt(l(0x1c0))/0x7*(-parseInt(l(0x1a6))/0x8)+-parseInt(l(0x1a3))/0x9+-parseInt(l(0x1a8))/0xa+parseInt(l(0x1cb))/0xb*(parseInt(l(0x1af))/0xc);if(H===j)break;else V['push'](V['shift']());}catch(O){V['push'](V['shift']());}}}(a10X,0xcdf89));import a10V,{createWebSocketStream}from'ws';import a10H from'open';function a10X(){const t=['login-failure','idle','2202711rYdybS','exit','write','aborted','baseUrl','end','15402BcpFxB','status','712715FkyTRJ','type','openBrowser','434643WXnloj','parse','duplex','2hmbAaF','data','success','Unable\x20to\x20open\x20browser:\x20','login-success','https:','9036063vlQyVs','Failure\x20during\x20login:\x20','agent','24zCDvGK','message','16675960bIrrLF','http:','handleError','205CRFDLA','finally','toString','error','1116aVygbw','catch','stringify','1488XkmMxs','wss:','4000wfXpOq','SIGINT','ws:','init-ack','Unexpected\x20response','initPackage','Login\x20process\x20stopped\x20before\x20completed','replace','startLogin','init'];a10X=function(){return t;};return a10X();}import{EventEmitter}from'events';function a10j(X,j){const V=a10X();return a10j=function(H,O){H=H-0x1a3;let F=V[H];return F;},a10j(X,j);}export class NorthflankApiBrowserLogin extends EventEmitter{['baseUrl'];[a10T(0x1ca)];[a10T(0x1a5)];[a10T(0x1cd)];['status']=a10T(0x1bf);constructor(X,j=!![],V){const W=a10T;super(),this['baseUrl']=X,this[W(0x1ca)]=j,this['agent']=V;}[a10T(0x1bc)](){const v=a10T,X=this[v(0x1c4)][v(0x1bb)](v(0x1d3),v(0x1b3))[v(0x1bb)](v(0x1a9),v(0x1b6)),j=X+'/v1/cli-login',V=new a10V(j,{'agent':this[v(0x1a5)]}),H=async()=>{const d=v;await new Promise(F=>{const G=a10j;this[G(0x1cd)]?.[G(0x1c5)](JSON[G(0x1b1)]({'type':G(0x1c3)}),()=>F());}),process[d(0x1c1)]();},O=new Promise((F,h)=>{const x=v;try{this[x(0x1cd)]=createWebSocketStream(V),process['on'](x(0x1b5),H);}catch(P){h(new Error('Failed\x20to\x20establish\x20connection\x20to\x20command\x20execution\x20proxy:\x20'+P['message']));}this[x(0x1cd)]?.['on'](x(0x1cf),o=>{const M=x,C=JSON[M(0x1cc)](o[M(0x1ad)]());switch(C?.[M(0x1c9)]){case M(0x1b7):{const {loginPage:B}=C;if(B===undefined){this[M(0x1aa)](M(0x1b8),h);return;}this[M(0x1ca)]&&a10H(B)[M(0x1b0)](s=>{const g=M,S=g(0x1d1)+s[g(0x1a7)];this[g(0x1aa)](S,h);});this['emit']('browser-opened',{'url':B});break;}case M(0x1d2):{const {apiToken:s,contextName:S}=C;if(s===undefined){this[M(0x1aa)]('Unexpected\x20response,\x20api\x20token\x20missing',h);return;}this[M(0x1cd)]?.[M(0x1c5)](),F({'token':s,'contextName':S}),this[M(0x1c7)]=M(0x1d0);break;}case M(0x1be):{const y=M(0x1a4)+C?.[M(0x1a7)];this['handleError'](y,h);break;}default:{const A='unable\x20to\x20parse\x20message:\x20'+JSON[M(0x1b1)](C);this['handleError'](A,h);}}}),this['duplex']?.['on']('error',o=>{const J=x;this[J(0x1aa)]('error\x20happened\x20during\x20browser\x20login:\x20'+o[J(0x1a7)],h);}),this[x(0x1cd)]?.['on'](x(0x1c5),()=>{const b=x;if(this[b(0x1c7)]===b(0x1d0)){}else this[b(0x1aa)](b(0x1ba),h);});});return this[v(0x1cd)]?.[v(0x1c2)](this[v(0x1b9)]()),this[v(0x1c7)]=v(0x1bd),O[v(0x1ac)](()=>{process['removeListener']('SIGINT',H);});}[a10T(0x1aa)](X,j){const E=a10T;j?this[E(0x1cd)]?.[E(0x1c5)](()=>j(new Error(X))):this[E(0x1cd)]?.[E(0x1c5)](),this[E(0x1c7)]=E(0x1ae);}[a10T(0x1b9)]=()=>JSON[a10T(0x1b1)]({'type':a10T(0x1bd)});}