@northflank/cli
Version:
Provides a command-line interface to the Northflank platform.
1 lines • 24.2 kB
JavaScript
const a9A=a9j;(function(X,j){const y=a9j,V=X();while(!![]){try{const H=-parseInt(y(0x223))/0x1*(parseInt(y(0x1f7))/0x2)+-parseInt(y(0x21b))/0x3+parseInt(y(0x1cb))/0x4*(parseInt(y(0x1c5))/0x5)+-parseInt(y(0x1ab))/0x6+parseInt(y(0x1e2))/0x7*(-parseInt(y(0x237))/0x8)+parseInt(y(0x1a9))/0x9+parseInt(y(0x282))/0xa;if(H===j)break;else V['push'](V['shift']());}catch(O){V['push'](V['shift']());}}}(a9X,0xf1c94));import a9V from'chalk';function a9j(X,j){const V=a9X();return a9j=function(H,O){H=H-0x193;let F=V[H];return F;},a9j(X,j);}import*as a9H from'fs';import{isValidJSON,retry,success,warning}from'./utils.js';import{fetchResourceList}from'./api-helpers.js';import{DynamicReloadPaginationPrompt}from'./pagination/inquirer-pagination-prompt.js';import a9O from'inquirer';function a9X(){const XE=['prompt','backups','restores','example','toUpperCase','secrets','askForClusterId','askForSubdomainPath','5939715TUszON','askConfirm','length','clusters','project','No,\x20repeat','service','\x20(completedAt:\x20','2CvVIOf','domain','volumes','apiClient','askForBackupDestination','data','No,\x20edit','getQuestionString','tag','cursor','cloud','anyOf','projects','push','then','description','red','pop','askForJob','items','224888SAQKjl','volume','json','test','maxLength','\x20and\x20it\x20','services','includes','builds','minLength','REPEAT','\x20(startedAt:\x20','askGeneric','subdomain','credentials','No,\x20abort','message','askForVolume','saveFile','addons','ask','tags','list','pagination-prompt','isArray','string','\x20Example:\x20','\x20to\x20use:','blueBright','Default\x20project\x20in\x20context\x20not\x20set\x20and\x20no\x20argument\x20provided.','askForProjectScopedResourcePaginated','addEntry','YES','for\x20this\x20','nextCursor','Choose\x20the\x20login\x20token:','slice','doesn\x27t\x20match\x20pattern\x20\x27','charAt','found','containers','all-builds','What\x27s\x20the\x20','askForContainer','askForSecret','What\x20do\x20you\x20want\x20to\x20use\x20as','job\x20containers','startedAt','addon','.*\x5c.(json|yaml|yml)$','required','integer','WARNING:\x20You\x20are\x20about\x20to\x20delete\x20','createdAt','\x20characters,\x20is\x20','yaml','writeFileSync','fileName',',\x20supported\x20types:\x20[json|yaml|yml]','map','askForProject','Should\x20it\x20be','whiteBright','backup\x20destination','editor','bgGrey','registerPrompt','input','cluster\x20id','validate','override','pagination','toString','yml','dump','33523690asuMkc','resultCache','yellowBright','service\x20containers','all','ABORT','\x20(full\x20domain:\x20','pipeline','skipValidation','pipelines','Configuration\x20file\x20written\x20to\x20','must\x20be\x20a\x20number,\x20is\x20','default','job','array','getCurrentProjectName','choice','defaultPaginationPageSize','must\x20be\x20longer\x20than\x20or\x20equal\x20to\x20','Do\x20you\x20want\x20to\x20add','No\x20','load','secret','boolean','getPathString','service:\x20\x27','askForLogSink','propToType','bold','to\x20use:','askForAddon','13526640LNijoi','function','8199960kCxbYh','rawObject','askForResourcePaginated','No,\x20but\x20save\x20as\x20file','uri','retrievePayloadViaInteractiveCli','getType','completedAt','domain\x20(','Aborted.','loginPrompt','Provide\x20a\x20file\x20path\x20to\x20write\x20the\x20configuration\x20to\x20(<name>.[json|yaml|yml])','grey','subdomains','subdomainPath','don\x27t\x20change','cmdPath','askForService','Yes,\x20send','No\x20containers\x20found','nextPageCursor','Unexpected\x20file\x20type:\x20','template\x20run','underline','domains','templates','945005WagCwM','\x20characters','greenBright','tmpCmdPath','blue','service\x20build','4YTEYEx','tokenPrompt','confirm','backup','editedResult','confirmation','not\x20completed','registryCredentials','filter','SAVE','askForBuild','name','repeat','askForAddonBackup','editPayload','askForTemplate','minimum','pattern','main-context','find','get','logSinks','Please\x20confirm\x20following\x20configuration:\x0a','119BtCmAF','must\x20be\x20shorter\x20than\x20or\x20equal\x20to\x20','stringify','oneOf','token','deleteWarningPrompt','pathVars','values','No\x20builds\x20found','\x27\x20already\x20exists.\x20Do\x20you\x20want\x20to\x20override\x20this\x20context\x20(y)\x20or\x20enter\x20a\x20new\x20name\x20(N)?','log\x20sink','runs','EDIT','Choose\x20the\x20name\x20of\x20the\x20new\x20local\x20context:','type','join','backupDestinations','search-list','template','addon:\x20\x27','enum','229522qxtmZd','restore','job:\x20\x27','getInnerType','Something\x20unexpected\x20happened.','),\x20subdomain\x20(','project:\x20\x27','properties','askForResource','maximum','Enter\x20the\x20','Context\x20with\x20name\x20\x27','.\x20This\x20is\x20irreversible.\x20Please\x20confirm!','Go\x20to\x20editor','isNaN','max','askForTemplateRun','askForSubdomain','confirmationPrompt','trim','unshift','contextProvider','split','Context\x20name\x20already\x20exists.','object','green','templateRuns','askForProjectScopedResource'];a9X=function(){return XE;};return a9X();}import a9F from'inquirer-search-list';import a9h from'js-yaml';import{set,has,get,isEmpty,unset}from'lodash-es';var ConfirmChoices;(function(X){const e=a9j;X['YES']=e(0x1bd),X[e(0x241)]=e(0x220),X[e(0x1ee)]=e(0x229),X['SAVE']=e(0x1ae),X['ABORT']=e(0x246);}(ConfirmChoices||(ConfirmChoices={})));export class InquirerHelper{[a9A(0x226)];[a9A(0x283)];['tmpCmdPath'];[a9A(0x28a)];[a9A(0x1e8)];[a9A(0x19b)]=0x32;constructor(X){const l=a9A;this[l(0x226)]=X,a9O[l(0x279)]('search-list',a9F),a9O[l(0x279)](l(0x24e),DynamicReloadPaginationPrompt);}[a9A(0x1d9)]=async X=>{const T=a9A,{editedResult:j}=await a9O[T(0x213)]([{'type':T(0x277),'name':T(0x1cf),'message':T(0x204),'default':a9h['dump'](X)}]);return a9h[T(0x19f)](j);};[a9A(0x249)]=async X=>{const W=a9A,j=F=>W(0x1c0)+F+W(0x271);async function V(){const v=W;return a9O[v(0x213)]([{'type':v(0x27a),'name':v(0x270),'message':v(0x1b6),'validate':F=>new RegExp(v(0x268))['test'](F)?!![]:j(F)}]);}const {fileName:H}=await V(),O=H[W(0x27f)]()['split']('.')[W(0x234)]();try{switch(O){case W(0x239):success(W(0x194)+H);return a9H[W(0x26f)](H,JSON[W(0x1e4)](X,null,'\x20\x20'));case W(0x26e):case W(0x280):success('Configuration\x20file\x20written\x20to\x20'+H);return a9H['writeFileSync'](H,a9h[W(0x281)](X));default:warning(j(O));}}catch(F){warning('Writing\x20configuration\x20failed:\x20'+F[W(0x247)]);}return undefined;};async[a9A(0x209)](X,j){const G=a9A,V=a9h['dump'](X),H=Math[G(0x206)](...V[G(0x20d)]('\x0a')[G(0x272)](h=>h[G(0x21d)])),O=a9V[G(0x1b7)]('-'[G(0x1d7)](H)+'\x0a'),{confirm:F}=await a9O[G(0x213)]([{'type':G(0x24d),'name':G(0x1cd),'message':''+a9V[G(0x1a6)][G(0x210)](G(0x1e1))+O+a9V[G(0x253)](V)+O,'choices':Object[G(0x1e9)](ConfirmChoices)}]);switch(F){case ConfirmChoices[G(0x257)]:return X;case ConfirmChoices[G(0x287)]:throw new Error(G(0x1b4));case ConfirmChoices[G(0x241)]:return this[G(0x1b0)](j);case ConfirmChoices[G(0x1ee)]:return this['confirmationPrompt'](await this[G(0x1d9)](X),j);case ConfirmChoices[G(0x1d4)]:await this[G(0x249)](X);return this['confirmationPrompt'](X,j);default:throw new Error(G(0x1fb));}}async[a9A(0x1b0)](X,j){const d=a9A;if(j?.[d(0x283)]!==undefined)this[d(0x283)]=j?.[d(0x283)];this[d(0x1c8)]=j?.[d(0x1bb)],this[d(0x28a)]=j?.[d(0x28a)];const V={};return await this[d(0x1a5)]([],X['opt']['body'],V),this[d(0x283)]=V,await this[d(0x209)](V,X);}async[a9A(0x1a5)](X,j,V,H){const x=a9A;let O;if(j[x(0x1e5)]&&!has(j,'properties')){if(j[x(0x1e5)][x(0x21d)]>0x1){const {choice:F}=await a9O[x(0x213)]([{'type':x(0x24d),'name':x(0x19a),'message':x(0x261)+(X[X[x(0x21d)]-0x1]||'')+'\x20type?','choices':j[x(0x1e5)][x(0x272)](h=>h[x(0x232)]??'??')}]);O=await this[x(0x1b1)](X,j[x(0x1e5)][x(0x1de)](h=>h[x(0x232)]===F),V,H);}else{const h=j[x(0x1e5)][0x0];set(h,x(0x232),j[x(0x232)]),O=await this[x(0x1b1)](X,h,V,H);}O={};}else{if(j['anyOf']&&!has(j,'properties')){if(j[x(0x22e)][x(0x21d)]>0x1){const {choice:P}=await a9O[x(0x213)]([{'type':x(0x24d),'name':x(0x19a),'message':x(0x261)+(X[X[x(0x21d)]-0x1]||'')+'\x20type?','choices':[...j[x(0x22e)][x(0x272)](o=>o[x(0x232)]??'??'),x(0x1ba)]}]);P!==x(0x1ba)&&(O=await this[x(0x1b1)](X,j[x(0x22e)][x(0x1de)](o=>o[x(0x232)]===P),V,H));}else{const o=j[x(0x22e)][0x0];set(o,x(0x232),j[x(0x232)]),O=await this[x(0x1b1)](X,o,V,H);}O={};}else O=await this[x(0x1b1)](X,j,V,H);}return O;}async[a9A(0x1fa)](X,j,V,H){const M=a9A;if(H===![]){const {addEntry:h}=await a9O[M(0x213)]([{'type':M(0x1cd),'name':M(0x256),'message':this[M(0x1a2)](j,M(0x19d),X?.[M(0x232)]),'default':![]}]);if(!h)return V;}const O=Object['keys'](X?.[M(0x1fe)]??[]),F=X[M(0x269)]||[];if(O[M(0x21d)]>0x0)for(const P of O){const o=j['concat'](P);if(j[M(0x21d)]>0x0&&!has(V,j[M(0x1f1)]('.')))set(V,j[M(0x1f1)]('.'),{});await this[M(0x1a5)](o,X[M(0x1fe)][P],V,F[M(0x23e)](P));}else await this['getType'](j,{...X,'type':M(0x1ac)},V,H);return V;}async['askArrayEntry'](X,j,V,H){const g=a9A;if(j&&V)return!![];const O=j?g(0x19d):'Do\x20you\x20want\x20to\x20add\x20more',{addEntry:F}=await a9O[g(0x213)]([{'type':g(0x1cd),'name':g(0x256),'message':this['getPathString'](X,O,j?H:undefined),'default':![]}]);return F;}async['getType'](X,j,V,H){const J=a9A;let O;const F=X[J(0x1f1)]('.');switch(j?.[J(0x1f0)]){case J(0x198):{let h=!![];while(await this['askArrayEntry'](X,h,H,j?.[J(0x232)])){const P=get(V,F);unset(V,F),await this['getType'](X,j[J(0x236)],V);const o=get(V,F);!Array[J(0x24f)](P)?set(V,F,[o]):(P[J(0x230)](o),set(V,F,P)),h=![];}return O||[];}case J(0x20f):{return O=await this[J(0x1fa)](j,X,V,H),O;}case J(0x1ac):O=isValidJSON(await this[J(0x24b)](X,j,H))||undefined;break;case J(0x250):case J(0x1a1):case J(0x26a):default:O=await this['ask'](X,j,H,V);break;}return O!==undefined&&set(V,F,O),O;}async['ask'](X,j,V,H){const b=a9A,O=X[X[b(0x21d)]-0x1],{defaultValue:defaultValue=j?.[b(0x216)]??j?.[b(0x196)],choices:choices=j?.[b(0x1f6)],pagination:F}=await fetchResourceList(O,this[b(0x226)],this[b(0x1c8)],H,this[b(0x1e8)],X);let h='input';if(choices!==undefined&&choices['length']>0x0){if(F!==undefined&&F[b(0x1bf)]!==undefined)h=b(0x24e);else choices['length']>0x4&&typeof choices[0x0]===b(0x250)?h=b(0x1f3):h=b(0x24d);}else{if(j?.[b(0x1f0)]===b(0x1a1))h=b(0x1cd);else{if(j?.[b(0x1f0)]===b(0x26a))h=b(0x27a);else j?.['type']===b(0x1ac)&&(h=b(0x277));}}let P=V!==![]?!(defaultValue!==null&&(typeof defaultValue===b(0x20f)||typeof defaultValue===b(0x1aa)))?defaultValue:JSON['stringify'](defaultValue):typeof defaultValue===b(0x1a1)?defaultValue:'don\x27t\x20change';if(choices)P=P[b(0x27f)]();has(this[b(0x283)],X['join']('.'))&&(P=this[b(0x283)][X[b(0x1f1)]('.')]);const o=choices&&V===![]?[b(0x1ba),...choices]:choices,C=j?.['type']==='integer',B={'type':h,'name':'id','message':this['getQuestionString'](X,j),'choices':o,'default':P,'filter':this['filter'](h,V),'validate':this[b(0x27c)](j,V,C),...F},s=(await a9O[b(0x213)]([B]))['id'];if(s===b(0x1ba)||s==='')return undefined;if(C)return parseInt(s,0xa);return s;}['filter']=(X,j)=>V=>{const E=a9A,H=typeof V===E(0x250)?V[E(0x20a)]():V;return j===![]&&H==='don\x27t\x20change'?'':H;};[a9A(0x22a)](X,j){const t=a9A,V=j?.[t(0x1f0)]!==t(0x1a1)?t(0x264):t(0x274);return this['getPathString'](X,V,j?.[t(0x232)]);}['validate']=(X,j,V)=>H=>{const Z=a9A;if(this[Z(0x28a)]===!![])return!![];const O=[];if(H===''||H===Z(0x1ba)){if(j!==![])O['push']('this\x20option\x20is\x20required,\x20please\x20answer');else return!![];}X[Z(0x1f0)]===Z(0x250)&&X[Z(0x1dc)]!==undefined&&O[Z(0x230)](new RegExp(X['pattern'])[Z(0x23a)](H)?!![]:Z(0x25c)+X['pattern']+'\x27');X[Z(0x1f0)]==='string'&&X['minLength']!==undefined&&O[Z(0x230)](H[Z(0x21d)]>=X[Z(0x240)]?!![]:Z(0x19c)+X[Z(0x240)]+Z(0x26d)+H[Z(0x21d)]+Z(0x1c6));X[Z(0x1f0)]===Z(0x250)&&X[Z(0x23b)]!==undefined&&O[Z(0x230)](H[Z(0x21d)]<=X[Z(0x23b)]?!![]:Z(0x1e3)+X[Z(0x23b)]+Z(0x26d)+H[Z(0x21d)]+Z(0x1c6));V&&Number[Z(0x205)](parseInt(H,0xa))&&O['push'](Z(0x195)+H);X[Z(0x1f0)]===Z(0x26a)&&X[Z(0x1db)]!==undefined&&O[Z(0x230)](H>=X[Z(0x1db)]?!![]:'must\x20be\x20bigger\x20than\x20or\x20equal\x20to\x20'+X['minimum']);X[Z(0x1f0)]==='integer'&&X[Z(0x200)]!==undefined&&O[Z(0x230)](H<=X['maximum']?!![]:'must\x20be\x20smaller\x20than\x20or\x20equal\x20to\x20'+X['maximum']);if(X[Z(0x1f0)]===Z(0x1ac)){const P=isValidJSON(H);O[Z(0x230)](P===![]||isEmpty(P)?'must\x20be\x20a\x20valid\x20non-empty\x20json\x20string':!![]);}const F=O[Z(0x1d3)](o=>o!==!![]),h=X?.[Z(0x216)]?'\x0a'+a9V[Z(0x233)]('>>')+Z(0x251)+a9V[Z(0x275)](JSON[Z(0x1e4)](X[Z(0x216)])):'';return F[Z(0x21d)]>0x0?F[Z(0x1f1)](a9V[Z(0x1c2)](Z(0x23c)))+h:!![];};[a9A(0x1a2)]=(X,j,V)=>{const N=a9A,H=X[X['length']-0x1];function O(){const w=a9j;return X['slice'](0x0,-0x1)[w(0x272)](P=>P[w(0x25d)](0x0)[w(0x217)]()+P[w(0x25b)](0x1))[w(0x1f1)]('>');}const F=X[N(0x21d)]>0x1?a9V[N(0x278)][N(0x275)](O())+':\x20':'',h=V?'\x20('+a9V[N(0x1c9)](V)+')':'';return a9V['reset'](''+F+j+'\x20'+a9V[N(0x1a6)][N(0x1c7)](H)+h+'?');};async[a9A(0x273)](){const p=a9A,X=await this[p(0x226)][p(0x24d)][p(0x22f)][p(0x286)]({})[p(0x231)](j=>j['data']['projects'][p(0x272)](V=>V['id']));return await this[p(0x1ff)](p(0x21f),X);}async[a9A(0x212)](X,j,V,H){const m=a9A,O=V||this[m(0x226)][m(0x20c)][m(0x199)]();if(O===undefined)throw new Error(m(0x254));const F=await j(O);return await this[m(0x1ff)](X,F,(H?H+'\x20in\x20':'')+m(0x1fd)+O+'\x27');}async[a9A(0x255)](X,j,V,H){const k=a9A,O=V||this[k(0x226)][k(0x20c)]['getCurrentProjectName']();if(O===undefined)throw new Error('Default\x20project\x20in\x20context\x20not\x20set\x20and\x20no\x20argument\x20provided.');const F=await j(O);return await this['askForResourcePaginated'](X,F,(H?H+'\x20in\x20':'')+k(0x1fd)+O+'\x27');}[a9A(0x1ff)]=async(X,j,V)=>{const I=a9A;if(j[I(0x21d)]<0x1){const F=V?'for\x20this\x20'+V:I(0x25e);throw new Error(I(0x19e)+X+'\x20'+F+'.');}const H='Choose\x20the\x20'+X+I(0x252),O=j[I(0x21d)]>0x4?I(0x1f3):I(0x24d);return(await a9O[I(0x213)]([{'type':O,'name':I(0x1d6),'message':H,'choices':j}]))[I(0x1d6)];};['askForResourcePaginated']=async(X,j,V)=>{const K=a9A,{elements:H,nextCursor:O}=await j();if(H[K(0x21d)]<0x1){const P=V?K(0x258)+V:K(0x25e);throw new Error(K(0x19e)+X+'\x20'+P+'.');}const F='Choose\x20the\x20'+X+K(0x252);if(O!==undefined){const o=async({nextPageCursor:C})=>{const L=K,B=await j(C);return{'elements':B['elements'],'nextPageCursor':B[L(0x259)]};};return(await a9O[K(0x213)]([{'type':K(0x24e),'name':K(0x1d6),'message':F,'choices':H,'nextPageCursor':O,'loadMore':o}]))[K(0x1d6)];}const h=H['length']>0x4?K(0x1f3):'list';return(await a9O['prompt']([{'type':h,'name':K(0x1d6),'message':F,'choices':H}]))['name'];};[a9A(0x243)]=(X,j)=>async()=>{const a=a9A,V=''+(j?'('+a9V[a(0x1c9)](j)+')\x20':''),H=a(0x201)+a9V[a(0x210)](X)+'\x20'+V+a(0x1a7),O=this[a(0x27c)]({'type':a(0x250),'required':!![]});return(await a9O[a(0x213)]([{'type':a(0x27a),'name':a(0x1d6),'message':H,'validate':O}]))[a(0x1d6)];};[a9A(0x21c)]=async X=>{const r=a9A;return(await a9O['prompt']([{'type':r(0x1cd),'name':r(0x1d6),'message':X,'default':!![]}]))[r(0x1d6)];};[a9A(0x1bc)]=X=>async()=>{const n=a9A,j=async V=>{const R=a9j,H=await this[R(0x226)][R(0x24d)][R(0x23d)][R(0x286)]({'parameters':{'projectId':V}}),O=H['data'][R(0x23d)][R(0x272)](F=>F['id']);return O;};return this[n(0x212)](n(0x221),j,X);};[a9A(0x1da)]=()=>async()=>{const Y=a9A,X=async j=>{const D=a9j,V=await this[D(0x226)][D(0x24d)][D(0x1c4)]({'options':{'per_page':this[D(0x19b)],'cursor':j}}),H=V[D(0x228)][D(0x1c4)][D(0x272)](O=>O['id']);return{'elements':H,'nextCursor':V[D(0x27e)]?.['cursor']};};return this['askForResourcePaginated'](Y(0x1f4),X);};['askForTag']=()=>async()=>{const Q=a9A,X=async j=>{const u=a9j,V=await this[u(0x226)][u(0x24d)][u(0x24c)]({'options':{'per_page':this[u(0x19b)],'cursor':j}}),H=V[u(0x228)][u(0x24c)]?.[u(0x272)](O=>O['id'])??[];return{'elements':H,'nextCursor':V[u(0x27e)]?.[u(0x22c)]};};return this[Q(0x1ad)](Q(0x22b),X);};[a9A(0x227)]=()=>async()=>{const f=a9A,X=await this['apiClient'][f(0x24d)][f(0x1f2)][f(0x286)]({}),j=X[f(0x228)][f(0x1f2)][f(0x272)](V=>V[f(0x1d6)])??[];return this[f(0x1ff)](f(0x276),j);};[a9A(0x219)]=()=>async()=>{const U=a9A,X=async j=>{const z=a9j,V=await this['apiClient'][z(0x24d)][z(0x22d)][z(0x21e)]({'options':{'per_page':this['defaultPaginationPageSize'],'cursor':j}}),H=V[z(0x228)][z(0x21e)]?.[z(0x272)](O=>O[z(0x1d6)])??[];return{'elements':H,'nextCursor':V[z(0x27e)]?.[z(0x22c)]};};return this['askForResourcePaginated'](U(0x27b),X);};[a9A(0x207)]=X=>async()=>{const i=a9A;if(X===undefined)throw new Error('Template\x20id\x20not\x20provided.');const j=async V=>{const q=a9j;let H=this['defaultPaginationPageSize'];const O=await this['apiClient']['list'][q(0x211)]({'parameters':{'templateId':X},'options':{'per_page':H,'cursor':V}}),F=O[q(0x228)][q(0x211)]['map'](h=>h['id']+q(0x242)+h[q(0x26c)]+')');return{'elements':F,'nextCursor':O[q(0x27e)]?.[q(0x22c)]};};return this['askForResourcePaginated'](i(0x1c1),j)[i(0x231)](V=>V[i(0x20d)]('\x20')[0x0]);};[a9A(0x1a4)]=()=>async()=>{const X1=a9A,X=async j=>{const X0=a9j;let V=this[X0(0x19b)];const H=await this[X0(0x226)]['list'][X0(0x1e0)]({'options':{'per_page':V,'cursor':j}}),O=H['data']['logSinks']['map'](F=>F['id']);return{'elements':O,'nextCursor':H['pagination']?.['cursor']};};return this[X1(0x1ad)](X1(0x1ec),X);};['askForPipeline']=X=>async()=>{const X3=a9A,j=async V=>{const X2=a9j,H=await this['apiClient'][X2(0x24d)][X2(0x193)]['all']({'parameters':{'projectId':V}});return H[X2(0x228)]['pipelines'][X2(0x272)](O=>O['id']);};return this[X3(0x212)](X3(0x289),j,X);};[a9A(0x235)]=X=>async()=>{const X5=a9A,j=async V=>{const X4=a9j,H=await this[X4(0x226)][X4(0x24d)]['jobs'][X4(0x286)]({'parameters':{'projectId':V}}),O=H[X4(0x228)]['jobs'][X4(0x272)](F=>F['id']);return O;};return this[X5(0x212)](X5(0x197),j,X);};['askForJobRun']=(X,j,V=![])=>async()=>{const X7=a9A,H='all-job-runs',O=F=>async h=>{const X6=a9j,P=await this[X6(0x226)][X6(0x1df)][X6(0x197)][X6(0x1ed)]({'parameters':{'projectId':F,'jobId':X},'options':{'per_page':this[X6(0x19b)],'cursor':h}}),o=P['data'][X6(0x1ed)][X6(0x272)](C=>C['id']+X6(0x242)+C[X6(0x266)]+')');return V&&o[X6(0x20b)](H),{'elements':o,'nextCursor':P[X6(0x27e)]?.[X6(0x22c)]};};return this[X7(0x255)]('job\x20runs',O,j,X7(0x1f9)+X+'\x27')[X7(0x231)](F=>{const X8=X7,h=F[X8(0x20d)]('\x20')[0x0];if(h===H)return undefined;return h;});};[a9A(0x1d5)]=(X,j,V,H=![])=>async()=>{const X9=a9A,O=X9(0x260);if(V!==undefined){const F=h=>async P=>{const XX=X9,o=await this[XX(0x226)][XX(0x1df)]['job']['builds']({'parameters':{'projectId':h,'jobId':V},'options':{'per_page':this[XX(0x19b)],'cursor':P}}),C=o[XX(0x228)][XX(0x23f)]['map'](B=>B['id']+XX(0x242)+B[XX(0x26c)]+')');return H&&C[XX(0x20b)](O),{'elements':C,'nextCursor':o[XX(0x27e)]?.[XX(0x22c)]};};return this[X9(0x255)]('job\x20builds',F,X,X9(0x1f9)+V+'\x27')[X9(0x231)](h=>{const Xj=X9,P=h[Xj(0x20d)]('\x20')[0x0];if(P===O)return undefined;return P;});}if(j!==undefined){const h=P=>async o=>{const XV=X9,C=await this[XV(0x226)][XV(0x1df)]['service'][XV(0x23f)]({'parameters':{'projectId':P,'serviceId':j},'options':{'per_page':this[XV(0x19b)],'cursor':o}}),B=C[XV(0x228)][XV(0x23f)][XV(0x272)](s=>s['id']+'\x20(startedAt:\x20'+s[XV(0x26c)]+')');if(H)B[XV(0x20b)](O);return{'elements':B,'nextCursor':C[XV(0x27e)]?.[XV(0x22c)]};};return this['askForProjectScopedResourcePaginated'](X9(0x1ca),h,X,'service:\x20\x27'+V+'\x27')[X9(0x231)](P=>{const XH=X9,o=P[XH(0x20d)]('\x20')[0x0];if(o===O)return undefined;return o;});}throw new Error(X9(0x1ea));};[a9A(0x262)]=(X,j,V,H=![])=>async()=>{const XF=a9A,O='all-containers';if(V!==undefined){const F=h=>async P=>{const XO=a9j,o=await this['apiClient'][XO(0x1df)][XO(0x197)][XO(0x25f)]({'parameters':{'projectId':h,'jobId':V},'options':{'per_page':this[XO(0x19b)],'cursor':P}}),C=o['data'][XO(0x25f)]??[],B=C?.[XO(0x272)](s=>s[XO(0x1d6)]+XO(0x242)+s[XO(0x26c)]+')');return H&&B[XO(0x20b)](O),{'elements':B,'nextCursor':o[XO(0x27e)]?.[XO(0x22c)]};};return this[XF(0x255)](XF(0x265),F,X,XF(0x1f9)+V+'\x27')['then'](h=>{const Xh=XF,P=h[Xh(0x20d)]('\x20')[0x0];if(P===O)return undefined;return P;});}if(j!==undefined){const h=P=>async o=>{const XP=XF,C=await this[XP(0x226)][XP(0x1df)][XP(0x221)][XP(0x25f)]({'parameters':{'projectId':P,'serviceId':j},'options':{'per_page':this[XP(0x19b)],'cursor':o}}),B=C[XP(0x228)][XP(0x25f)]??[],s=B[XP(0x272)](S=>S[XP(0x1d6)]+XP(0x242)+S[XP(0x26c)]+')');if(H)s?.[XP(0x20b)](O);return{'elements':s,'nextCursor':C[XP(0x27e)]?.[XP(0x22c)]};};return this[XF(0x255)](XF(0x285),h,X,XF(0x1a3)+V+'\x27')['then'](P=>{const Xo=XF,o=P[Xo(0x20d)]('\x20')[0x0];if(o===O)return undefined;return o;});}throw new Error(XF(0x1be));};[a9A(0x1a8)]=X=>async()=>{const XB=a9A,j=async V=>{const XC=a9j,H=await this[XC(0x226)]['list'][XC(0x24a)]['all']({'parameters':{'projectId':V}});return H[XC(0x228)]['addons'][XC(0x272)](O=>O['id']);};return this[XB(0x212)](XB(0x267),j,X);};[a9A(0x1d8)]=(X,j)=>async()=>{const XS=a9A,V=H=>async O=>{const Xs=a9j,F=await this['apiClient'][Xs(0x1df)][Xs(0x267)][Xs(0x214)]({'parameters':{'projectId':H,'addonId':j},'options':{'per_page':this[Xs(0x19b)],'cursor':O}});return{'elements':F[Xs(0x228)][Xs(0x214)]['map'](h=>h['id']+Xs(0x222)+(h[Xs(0x1b2)]||Xs(0x1d1))+')'),'nextCursor':F['pagination']?.[Xs(0x22c)]};};return this['askForProjectScopedResourcePaginated'](XS(0x214),V,X,XS(0x1f5)+j+'\x27')[XS(0x231)](H=>H['split']('\x20')[0x0]);};['askForAddonRestore']=(X,j,V)=>async()=>{const Xe=a9A,H=O=>async F=>{const Xy=a9j,h=await this[Xy(0x226)][Xy(0x1df)][Xy(0x267)][Xy(0x1ce)][Xy(0x215)]({'parameters':{'projectId':O,'addonId':j,'backupId':V},'options':{'per_page':this[Xy(0x19b)],'cursor':F}});return{'elements':h[Xy(0x228)][Xy(0x215)]['map'](P=>P['id']+Xy(0x222)+(P[Xy(0x1b2)]||Xy(0x1d1))+')'),'nextCursor':h[Xy(0x27e)]?.['cursor']};};return this[Xe(0x255)](Xe(0x1f8),H,X,'addon:\x20\x27'+j+'\x27')[Xe(0x231)](O=>O[Xe(0x20d)]('\x20')[0x0]);};[a9A(0x248)]=X=>async()=>{const XA=a9A,j=async V=>(await this[XA(0x226)][XA(0x24d)][XA(0x225)]({'parameters':{'projectId':V}}))[XA(0x228)][XA(0x272)](H=>H['id']);return this[XA(0x212)](XA(0x238),j,X);};[a9A(0x263)]=X=>async()=>{const XT=a9A,j=async V=>{const Xl=a9j,H=await this['apiClient']['list']['secrets'][Xl(0x286)]({'parameters':{'projectId':V}});return H[Xl(0x228)][Xl(0x218)]['map'](O=>O['id']);};return this['askForProjectScopedResource'](XT(0x1a0),j,X);};async['askForDomain'](){const XW=a9A,X=await this['apiClient'][XW(0x24d)][XW(0x1c3)]['all']({}),j=X[XW(0x228)][XW(0x1c3)]['map'](V=>V[XW(0x1d6)]);return this[XW(0x1ff)]('domain',j);}async['askForCredentials'](){const Xv=a9A,X=await this[Xv(0x226)][Xv(0x24d)][Xv(0x1d2)][Xv(0x286)]({}),j=X[Xv(0x228)][Xv(0x245)][Xv(0x272)](V=>V['id']);return this[Xv(0x1ff)]('credentials',j);}[a9A(0x208)]=X=>async()=>{const XG=a9A,j=await this[XG(0x226)]['get'][XG(0x224)]({'parameters':{'domain':X}}),V=j[XG(0x228)][XG(0x1b8)][XG(0x272)](O=>O['name']+XG(0x288)+O['fullName']+')'),H='domain\x20('+X+')';return this[XG(0x1ff)](XG(0x244),V,H)[XG(0x231)](O=>O[XG(0x20d)]('\x20')[0x0]);};[a9A(0x21a)]=(X,j)=>async()=>{const Xd=a9A,V=await this[Xd(0x226)]['list']['subdomain']['path']({'parameters':{'domain':X,'subdomain':j}}),H=V['data']['paths'][Xd(0x272)](F=>''+F[Xd(0x1af)]),O=Xd(0x1b3)+X+Xd(0x1fc)+j+')';return this[Xd(0x1ff)](Xd(0x1b9),H,O);};[a9A(0x1e7)]=async X=>{const Xx=a9A;return(await a9O[Xx(0x213)]([{'type':'confirm','name':Xx(0x1d0),'message':a9V[Xx(0x284)](Xx(0x26b)+(X||'a\x20Northflank\x20resource')+Xx(0x203)),'default':![]}]))[Xx(0x1d0)];};[a9A(0x1b5)]=async(X,j)=>{const XM=a9A;X[XM(0x1d6)]===undefined&&(j[XM(0x21d)]<=0x0?set(X,XM(0x1d6),XM(0x196)):await retry(0xa)(async()=>{const Xg=XM,{name:V}=await a9O[Xg(0x213)]([{'type':Xg(0x27a),'name':Xg(0x1d6),'message':Xg(0x1ef),'default':Xg(0x1dd)}]);if(!X[Xg(0x27d)]&&j[Xg(0x1de)](H=>H[Xg(0x1d6)]===V)){const {c:H}=await a9O[Xg(0x213)]([{'type':Xg(0x1cd),'name':'c','message':Xg(0x202)+V+Xg(0x1eb),'default':![]}]);if(H===![])throw new Error(Xg(0x20e));set(X,Xg(0x27d),!![]);}set(X,Xg(0x1d6),V);}));if(X[XM(0x1e6)]===undefined){const V=await this[XM(0x1cc)]();set(X,'token',V);}return X;};['tokenPrompt']=async()=>{const XJ=a9A,{token:X}=await a9O[XJ(0x213)]([{'type':'password','name':XJ(0x1e6),'mask':'*','message':XJ(0x25a)}]);return X;};['setPathVars'](X){const Xb=a9A;this[Xb(0x1e8)]=X;}}