@northflank/cli 0.11.2 → 0.11.3

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.
@@ -1 +1 @@
1
- (function(D,V){const p=a0V,P=D();while(!![]){try{const z=-parseInt(p(0x1b8))/0x1+-parseInt(p(0x1d5))/0x2+-parseInt(p(0x1d9))/0x3*(-parseInt(p(0x1ed))/0x4)+parseInt(p(0x1b5))/0x5+parseInt(p(0x1d4))/0x6+parseInt(p(0x1d6))/0x7*(-parseInt(p(0x1d1))/0x8)+parseInt(p(0x1c3))/0x9*(parseInt(p(0x1e4))/0xa);if(z===V)break;else P['push'](P['shift']());}catch(e){P['push'](P['shift']());}}}(a0D,0x98bc3));function a0V(D,V){const P=a0D();return a0V=function(z,e){z=z-0x1b2;let g=P[z];return g;},a0V(D,V);}import{warning}from'./utils.js';function a0D(){const y=['14783cyipPV','backupId','nextPageCursor','templates','registryCredentials','keys','region','plans','resources','find','type','225cYYVtQ','list','No\x20available\x20versions\x20to\x20upgrade\x20to.','regions','map','length','options','keyName','serviceId','backups','source','envs','versions','updateaddonversion','8NhtNxj','replicas','projectId','1656546rexpoV','1222858omMDvc','8329279ZoRIUi','projects','logSink','2124516tSFRkE','data','credentials','owningObject','cursor','addonId','get','pagination','services','addons','includes','304970BMLewt','latest','default','deploymentPlan','storage','secret','types','secrets','version','4XQNTvU','addonDependencies','templateId','addon','3475120qaAhgh','internalId','addonTypes'];a0D=function(){return y;};return a0D();}const defaultPaginationPageSize=0x64,getProjects=(D,V)=>async P=>{const c=a0V,z=await D['list'][c(0x1d7)]({...V?{'parameters':{'teamId':V}}:{},'options':{'per_page':defaultPaginationPageSize,'cursor':P?.[c(0x1ba)]}});return{'elements':z[c(0x1da)][c(0x1d7)][c(0x1c7)](e=>e['id']),'nextPageCursor':z['pagination']?.['cursor']};},getServices=(D,V,P)=>async z=>{const K=a0V,e=await D[K(0x1c4)]['services']({'parameters':{'projectId':V,'teamId':P},'options':{'per_page':defaultPaginationPageSize,'cursor':z?.[K(0x1ba)]}});return{'elements':e[K(0x1da)][K(0x1e1)][K(0x1c7)](g=>g['id']),'nextPageCursor':e[K(0x1e0)]?.['cursor']};},getAddons=(D,V,P)=>async z=>{const v=a0V,e=await D['list'][v(0x1e2)]({'parameters':{'teamId':P,'projectId':V},'options':{'per_page':defaultPaginationPageSize,'cursor':z?.[v(0x1ba)]}});return{'elements':e['data']['addons'][v(0x1c7)](g=>g['id']),'nextPageCursor':e['pagination']?.['cursor']};},getAddonBackups=(D,V,P,z)=>async e=>{const r=a0V,g=await D[r(0x1df)][r(0x1b4)][r(0x1cc)]({'parameters':{'teamId':z,'projectId':V,'addonId':P},'options':{'per_page':defaultPaginationPageSize,'cursor':e?.[r(0x1ba)]}});return{'elements':g[r(0x1da)][r(0x1cc)]['map'](b=>b['id']),'nextPageCursor':g['pagination']?.[r(0x1dd)]};};export async function fetchResourceList(D,V,P,z,g,b){const w=a0V,B=undefined,h=g?.['teamId'];try{if(D===w(0x1e7)){const S=await V[w(0x1c4)][w(0x1bf)]({}),n=S[w(0x1da)]['plans']['map'](A=>A?.['internalId']??A?.['id']);return{'choices':n,'defaultValue':B};}if(D===w(0x1be)&&!P?.[w(0x1e3)](w(0x1d8))){const A=await V[w(0x1c4)][w(0x1c6)]({}),X=A[w(0x1da)][w(0x1c6)][w(0x1c7)](U=>U?.[w(0x1b6)]??U?.['id']);return{'choices':X,'defaultValue':B};}if(D===w(0x1d3)){const U=await getProjects(V,h),{elements:R,nextPageCursor:k}=await U();return{'choices':R,'defaultValue':B,'pagination':{'nextPageCursor':k,'loadMore':U}};}if(D===w(0x1db)){const H=await V['list'][w(0x1bc)]({...h?{'parameters':{'teamId':h}}:{}}),G=H[w(0x1da)][w(0x1db)]['map'](o=>o['id']);return{'choices':G,'defaultValue':B};}const l=g?.['projectId'],t=D===w(0x1cb)||D==='id'&&b?.['includes'](w(0x1dc));if(l!==undefined&&t){const o=await getServices(V,l,h),{elements:F,nextPageCursor:E}=await o();return{'choices':F,'defaultValue':B,'pagination':{'nextPageCursor':E,'loadMore':o}};}const i=P?.[w(0x1e3)](w(0x1b4));if(i){const J=async x=>{const j=w,C=await V[j(0x1df)][j(0x1b4)][j(0x1ea)]({});return C[j(0x1da)][j(0x1b7)]?.[j(0x1c7)](M=>M[j(0x1c2)])[j(0x1c1)](M=>M[j(0x1c2)]===x);};if(D===w(0x1c2)){const x=await V[w(0x1df)][w(0x1b4)][w(0x1ea)]({}),C=x['data'][w(0x1b7)]?.[w(0x1c7)](M=>M[w(0x1c2)]);return{'choices':C,'defaultValue':B};}if(D===w(0x1ec)&&z?.['type']!==undefined){const M=(await J(z['type']))?.[w(0x1cf)],W=M!==undefined?[w(0x1e5),...M]:undefined;return{'choices':W,'defaultValue':B};}if(D===w(0x1e8)&&z?.[w(0x1c2)]!==undefined){const d=(await J(z[w(0x1c2)]))?.['resources']?.[w(0x1e8)];return{'choices':d?.[w(0x1c9)],'defaultValue':d?.[w(0x1e6)]};}if(D==='replicas'&&z?.['type']!==undefined){const f=(await J(z[w(0x1c2)]))?.[w(0x1c0)]?.[w(0x1d2)];return{'choices':f?.[w(0x1c9)],'defaultValue':f?.['default']};}}if(D===w(0x1de)&&g?.[w(0x1d3)]!==undefined){const T=await getAddons(V,g?.[w(0x1d3)],h),{elements:m,nextPageCursor:q}=await T();return{'choices':m,'defaultValue':B,'pagination':{'nextPageCursor':q,'loadMore':T}};}if(D===w(0x1b9)&&l!==undefined&&z?.['source']?.[w(0x1de)]!==undefined){const L=getAddonBackups(V,l,z?.[w(0x1cd)]?.[w(0x1de)],h),{elements:Z,nextPageCursor:u}=await L();return{'choices':Z,'defaultValue':B,'pagination':{'nextPageCursor':u,'loadMore':L}};}const s=g?.[w(0x1de)]??z?.[w(0x1b2)]?.['addonId'];if(P?.['join']('')===w(0x1d0)&&D===w(0x1ec)&&l!==undefined&&s!==undefined){const {upgradeTo:N}=(await V['get'][w(0x1b4)]['version']({'parameters':{'teamId':h,'addonId':s,'projectId':l}}))[w(0x1da)];if(N===undefined||N[w(0x1c8)]<=0x0){warning(w(0x1c5));throw new Error();}return{'choices':N['map'](O=>O['version']),'defaultValue':B};}if(D===w(0x1b3)){const O=await V[w(0x1c4)][w(0x1bb)]({...h?{'parameters':{'teamId':h}}:{}}),I=O[w(0x1da)][w(0x1bb)][w(0x1c7)](a=>a?.['id']);return{'choices':I,'defaultValue':B};}if((P?.[w(0x1e3)]('secretLink')||P?.['includes'](w(0x1e9)))&&D===w(0x1ca)&&s!==undefined&&l!==undefined){const a=(await V['get'][w(0x1b4)][w(0x1db)]({'parameters':{'addonId':s,'projectId':l,'teamId':h}}))[w(0x1da)];return{'choices':[...Object[w(0x1bd)](a?.[w(0x1ce)])??[],...Object['keys'](a?.[w(0x1eb)])??[]]};}}catch(Y){}return{'choices':undefined,'defaultValue':B};}
1
+ (function(Q,A){const W=a0A,N=Q();while(!![]){try{const t=parseInt(W(0x11b))/0x1*(-parseInt(W(0x126))/0x2)+-parseInt(W(0x11c))/0x3+-parseInt(W(0xfd))/0x4+-parseInt(W(0xfa))/0x5*(parseInt(W(0x10f))/0x6)+parseInt(W(0x112))/0x7*(parseInt(W(0x128))/0x8)+-parseInt(W(0x11f))/0x9+parseInt(W(0x120))/0xa*(parseInt(W(0x10c))/0xb);if(t===A)break;else N['push'](N['shift']());}catch(a){N['push'](N['shift']());}}}(a0Q,0x49e46));import{warning}from'./utils.js';function a0Q(){const e=['default','addons','3933279kKlqtZ','3130460eybsqI','nextPageCursor','envs','projectId','version','updateaddonversion','2MsLqFW','addon','24MARwlD','includes','keyName','internalId','storage','get','options','pagination','1918135VdKvBR','secret','addonDependencies','967640cLYDqc','find','data','regions','owningObject','backups','addonTypes','No\x20available\x20versions\x20to\x20upgrade\x20to.','projects','list','serviceId','cursor','types','teamId','region','55cCXwUn','plans','addonId','6vtNeip','map','services','852621JwjTmE','source','templates','versions','logSink','credentials','resources','secretLink','type','437982IVFnQw','382281iUBFUr'];a0Q=function(){return e;};return a0Q();}const defaultPaginationPageSize=0x64,getProjects=(Q,A)=>async N=>{const o=a0A,t=await Q[o(0x106)][o(0x105)]({...A?{'parameters':{'teamId':A}}:{},'options':{'per_page':defaultPaginationPageSize,'cursor':N?.['nextPageCursor']}});return{'elements':t['data']['projects']['map'](a=>a['id']),'nextPageCursor':t['pagination']?.['cursor']};},getServices=(Q,A,N)=>async t=>{const q=a0A,a=await Q[q(0x106)][q(0x111)]({'parameters':{'projectId':A,'teamId':N},'options':{'per_page':defaultPaginationPageSize,'cursor':t?.[q(0x121)]}});return{'elements':a[q(0xff)][q(0x111)][q(0x110)](p=>p['id']),'nextPageCursor':a[q(0xf9)]?.['cursor']};},getAddons=(Q,A,N)=>async t=>{const C=a0A,a=await Q[C(0x106)][C(0x11e)]({'parameters':{'teamId':N,'projectId':A},'options':{'per_page':defaultPaginationPageSize,'cursor':t?.[C(0x121)]}});return{'elements':a[C(0xff)][C(0x11e)]['map'](p=>p['id']),'nextPageCursor':a['pagination']?.[C(0x108)]};},getAddonBackups=(Q,A,N,t)=>async a=>{const r=a0A,p=await Q['get'][r(0x127)][r(0x102)]({'parameters':{'teamId':t,'projectId':A,'addonId':N},'options':{'per_page':defaultPaginationPageSize,'cursor':a?.['nextPageCursor']}});return{'elements':p['data'][r(0x102)][r(0x110)](P=>P['id']),'nextPageCursor':p[r(0xf9)]?.[r(0x108)]};};function a0A(Q,A){const N=a0Q();return a0A=function(t,a){t=t-0xf3;let p=N[t];return p;},a0A(Q,A);}export async function fetchResourceList(Q,A,N,t,a,p){const b=a0A,P=undefined,l=a?.[b(0x10a)];try{if(Q==='deploymentPlan'){const Z=await A['list'][b(0x10d)]({}),M=Z[b(0xff)][b(0x10d)]['map'](k=>k?.['internalId']??k?.['id']);return{'choices':M,'defaultValue':P};}if(Q===b(0x10b)&&!N?.[b(0xf3)](b(0x116))){const k=await A['list'][b(0x100)]({}),B=k[b(0xff)]['regions']['map'](w=>w?.[b(0xf5)]??w?.['id']);return{'choices':B,'defaultValue':P};}if(Q===b(0x123)){const w=await getProjects(A,l),{elements:x,nextPageCursor:Y}=await w();return{'choices':x,'defaultValue':P,'pagination':{'nextPageCursor':Y,'loadMore':w}};}if(Q==='credentials'){const E=await A[b(0x106)]['registryCredentials']({...l?{'parameters':{'teamId':l}}:{}}),D=E[b(0xff)][b(0x117)][b(0x110)](s=>s['id']);return{'choices':D,'defaultValue':P};}const X=a?.[b(0x123)],S=Q===b(0x107)||Q==='id'&&p?.[b(0xf3)](b(0x101));if(X!==undefined&&S){const s=await getServices(A,X,l),{elements:i,nextPageCursor:T}=await s();return{'choices':i,'defaultValue':P,'pagination':{'nextPageCursor':T,'loadMore':s}};}const g=N?.['includes']('addon');if(g){const m=async n=>{const c=b,R=await A['get'][c(0x127)]['types']({});return R[c(0xff)][c(0x103)]?.['map'](u=>u[c(0x11a)])[c(0xfe)](u=>u[c(0x11a)]===n);};if(Q===b(0x11a)){const n=await A[b(0xf7)][b(0x127)][b(0x109)]({}),R=n[b(0xff)]['addonTypes']?.[b(0x110)](u=>u[b(0x11a)]);return{'choices':R,'defaultValue':P};}if(Q===b(0x124)&&t?.['type']!==undefined){const u=(await m(t['type']))?.[b(0x115)],V=u!==undefined?['latest',...u]:undefined;return{'choices':V,'defaultValue':P};}if(Q==='storage'&&t?.['type']!==undefined){const U=(await m(t[b(0x11a)]))?.['resources']?.[b(0xf6)];return{'choices':U?.[b(0xf8)],'defaultValue':U?.[b(0x11d)]};}if(Q==='replicas'&&t?.[b(0x11a)]!==undefined){const L=(await m(t[b(0x11a)]))?.[b(0x118)]?.['replicas'];return{'choices':L?.[b(0xf8)],'defaultValue':L?.[b(0x11d)]};}}if(Q==='addonId'&&a?.[b(0x123)]!==undefined){const h=await getAddons(A,a?.['projectId'],l),{elements:O,nextPageCursor:I}=await h();return{'choices':O,'defaultValue':P,'pagination':{'nextPageCursor':I,'loadMore':h}};}if(Q==='backupId'&&X!==undefined&&t?.['source']?.[b(0x10e)]!==undefined){const z=getAddonBackups(A,X,t?.[b(0x113)]?.[b(0x10e)],l),{elements:F,nextPageCursor:f}=await z();return{'choices':F,'defaultValue':P,'pagination':{'nextPageCursor':f,'loadMore':z}};}const d=a?.['addonId']??t?.[b(0xfc)]?.[b(0x10e)];if(N?.['join']('')===b(0x125)&&Q===b(0x124)&&X!==undefined&&d!==undefined){const {upgradeTo:y}=(await A[b(0xf7)]['addon'][b(0x124)]({'parameters':{'teamId':l,'addonId':d,'projectId':X}}))[b(0xff)];if(y===undefined||y['length']<=0x0){warning(b(0x104));throw new Error();}return{'choices':y[b(0x110)](G=>G[b(0x124)]),'defaultValue':P};}if(Q==='templateId'){const G=await A[b(0x106)][b(0x114)]({...l?{'parameters':{'teamId':l}}:{}}),H=G[b(0xff)][b(0x114)][b(0x110)](v=>v?.['id']);return{'choices':H,'defaultValue':P};}if((N?.[b(0xf3)](b(0x119))||N?.[b(0xf3)](b(0xfb)))&&Q===b(0xf4)&&d!==undefined&&X!==undefined){const v=(await A[b(0xf7)]['addon'][b(0x117)]({'parameters':{'addonId':d,'projectId':X,'teamId':l}}))[b(0xff)];return{'choices':[...Object['keys'](v?.[b(0x122)])??[],...Object['keys'](v?.['secrets'])??[]]};}}catch(K){}return{'choices':undefined,'defaultValue':P};}
package/dist/cli.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env -S node --no-deprecation
2
- const a1D8=a1V;(function(D,V){const D7=a1V,P=D();while(!![]){try{const z=parseInt(D7(0x19f))/0x1+-parseInt(D7(0x169))/0x2+-parseInt(D7(0x192))/0x3*(parseInt(D7(0x112))/0x4)+parseInt(D7(0x16d))/0x5+-parseInt(D7(0x17c))/0x6*(parseInt(D7(0x118))/0x7)+-parseInt(D7(0x1b7))/0x8+parseInt(D7(0x10d))/0x9;if(z===V)break;else P['push'](P['shift']());}catch(e){P['push'](P['shift']());}}}(a1D,0x1f37d));import{ApiClient,ApiClientFileContextProvider,GetApiEndpointPaginated}from'@northflank/js-client';import{Command}from'commander';import a1P from'fs';function a1V(D,V){const P=a1D();return a1V=function(z,e){z=z-0xd9;let g=P[z];return g;},a1V(D,V);}import a1z from'chalk';import{CliContext}from'./context/contextCommands.js';import{agent,assertContextExisting,asyncSequential,checkUpdate,customUserAgent,error,getCommand,proxyEnvsSet,warning}from'./utils.js';import*as a1e from'./defaults.js';import{InquirerHelper}from'./inquirer-helper.js';function a1D(){const DU=['quiet','underline','repository','trim','=>\x20running\x20command\x20with:\x20','includes','call','name','secret','downloadCmd','teamId','endsWith','concat','askForPipeline','getCurrentContext','after','file','askForAddonBackup','setPathVars','contextProvider','domainId','-v,\x20--version','body','startsWith','existsSync','yml','list','askForService','project','helpCommand','uploadCmd','pipelineId','subdomain','.json','error','length','keys','runs','green','cred','restores','resourceTagId','update','\x20--','portFwdCmd','askGeneric','custom-columns=','Unknown\x20input\x20file\x20type:\x20','resource','jobId',',\x20-','buildId','File\x20does\x20not\x20exist:\x20','projectId','join','retrievePayloadViaInteractiveCli','forEach','data','rgn','execCmd','action','serviceId','askForSubdomain','stringify','480510RCsjsh','.yaml','credential','service','862340UQgrws','toString','northflank','replace','delete','message','job','helpOption','subdomainId','endpoints','split','Expecting\x20resource\x20input\x20with\x20\x27--input\x27\x20or\x20\x27--file\x27\x20argument','noDefaults','isArray','load','30GzCBes','alias','regions','pagination','getCurrentJobName','invoice','entries','opt','backups','isPaginatedEndpoint','parse','description','volumeId','verbose','log','sshCmd','filter','Update\x20Northflank\x20','requiredPermissions','OPTIONAL:\x20','Documentation:\x20','map','3dkzFGY','clusterId','contexts','help\x20[command]','templateId','bind','yaml','some','boolean','../package.json','request','addon','templates','80838GoDWQq','statusText','VERBOSE:\x20Using\x20endpoint\x20->\x20','credentialId','askForBuild','askForBackupDestination','repositories','output','credentials','prj','json','getOwnPropertyNames','deleteWarningPrompt','askForProject','askForLogSink','option','svc','url','askForSecret','template','backupDestinationId','find','services','askForJobRun','412400ZmDQrb',',\x20NF\x20error\x20id:\x20','page','paginationArgs','plans','\x0a\x09details\x20:','askForCredentials','-i,\x20--input\x20<resource-def>','region','method','readFileSync','repos','enablePositionalOptions','get','runId','branches','askForTemplate','File\x20to\x20load\x20resource\x20json\x20from','Failed\x20to\x20validate\x20input\x20(incorrect\x20format):\x20','defaults','hasNextPage','getCurrentProjectName','utf-8','backupId','VERBOSE:\x20HTTP_PROXY\x20or\x20HTTPS_PROXY\x20environment\x20variable\x20set:\x20tunnelling\x20traffic\x20through\x20HTTP\x20proxy.','VERBOSE:\x20Request\x20body\x20->\x20','getMetricsCommand','loadAll','API\x20request\x20failed\x0a\x09Message:\x20','getCurrentServiceName','jobs','domain','version','italic','teamScoped','base','vol','askForAddon','plan','getTokenScope','backup','Resource\x20was\x20not\x20deleted.','askForTemplateRun','all','getLogsCommand','moveCursor','docsTagsPath','dmn','askForTag','volumes','askForVolume','askForSubdomainPath','/docs/v1/api/','askForDomain','path','tag','backup-destination','backup-destinations','query','addonId','repo','4125015RarIVd','Northflank\x20cli\x20version:\x20','secretId','Display\x20help\x20for\x20command','invoices','703268RnFuQM','addCommand','rawResponse','brn','Print\x20the\x20current\x20version\x20of\x20the\x20Northflank\x20cli','nonInteractiveEndpoint','162610FQRwbZ','getNextPage','type','stdout','askForTeam','subdomainPath','addons','there\x20are\x20more\x20rows,\x20load?','host','\x20Northflank\x20resources','askConfirm','adn','toUpperCase','askForJob','argv','aliases','logSinkId'];a1D=function(){return DU;};return a1D();}import{consoleFormat,handleJsonOutput,handleYamlOutput,printAsTable}from'./formatting/console-format-helpers.js';import{getCommandOverview}from'./formatting/command-overview.js';import{CliPortForward}from'./port-forward/index.js';import{CliExec}from'./exec/index.js';import{CliSsh}from'./ssh/index.js';import{CliLogs}from'./logs/index.js';import{CliMetrics}from'./metrics/index.js';import{CliFileCopy}from'./copy/index.js';import{isEqual,has,set,kebabCase,upperFirst,isString,omit}from'lodash-es';import a1g from'js-yaml';import{readFileSync}from'fs';import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta[a1D8(0x1b0)]),__dirname=dirname(__filename),pgk=JSON[a1D8(0x186)](readFileSync(join(__dirname,a1D8(0x19b)),a1D8(0xe6)));export const getProgram=D=>{const D9=a1D8,V=new Command(D9(0x16f));V[D9(0x187)]('Manage\x20your\x20Northflank\x20resources\x20from\x20the\x20command\x20line'),V[D9(0xdc)](!![]),V[D9(0xf0)](D9(0x10e)+a1z[D9(0x12a)](pgk['version']),D9(0x13e),D9(0x116));const P=new ApiClient(D,{'throwErrorOnHttpErrorCode':![],'customUserAgent':customUserAgent,'agent':agent}),z=new CliContext(P,agent),e=new CliPortForward(D,agent),g=new CliExec(D,agent),b=new CliSsh(D,agent),B=new CliFileCopy(D,agent),h=new CliLogs(D,agent),l=new CliMetrics(D,agent);return V['addCommand'](e[D9(0x155)]),V['addCommand'](g[D9(0x164)]),V[D9(0x113)](b[D9(0x18b)]),V[D9(0x113)](B[D9(0x132)]),V[D9(0x113)](B[D9(0x147)]),V[D9(0x113)](z['login']),V['addCommand'](z[D9(0x194)]),generateCommands(P,P[D9(0x176)],V,h,l),V[D9(0x113)](getCommandOverview(V)),V[D9(0x146)](D9(0x195),D9(0x110)),V[D9(0x174)](undefined,D9(0x110)),V;};((async()=>{const DD=a1D8;try{const D=new ApiClientFileContextProvider();await checkUpdate(D);const V=getProgram(D);await V['parseAsync'](process[DD(0x126)]);}catch(P){error('Error\x20occured\x20while\x20trying\x20to\x20run\x20command,\x20error:\x20'+P[DD(0x172)]),process[DD(0x126)][DD(0x1b4)](z=>z==='--verbose')&&console['log'](P),process['exitCode']=0x1;}})());function isListCommand(D){const DV=a1D8,V=[[DV(0xdd),DV(0x19d),DV(0x184)],[DV(0xdd),'job',DV(0x14e)]];return D[DV(0x1b4)](P=>P===DV(0x143))||V[DV(0x199)](P=>isEqual(D,P));}function generateCommands(D,V,P,z,e,g=a1e[a1D8(0xe3)],b=[]){const DP=a1D8,B=new InquirerHelper(new ApiClient(D[DP(0x13c)],{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':agent}));function h(s,S){return s['required']!==![]&&S===undefined;}function l(s,S){const Dz=DP,{opt:n,name:A}=s,X=n['default'],U=h(n,X),R=E=>E['length']>0x1?'--'+E:'-'+E,k=n?.[Dz(0x17d)],H=k?Array[Dz(0x17a)](k)?'-'+k?.[Dz(0x191)](E=>R(E))['join'](Dz(0x15b))+',':''+R(k):'',G=U?'':Dz(0x18f),o=typeof n['type']===Dz(0x19a)||n[Dz(0x11a)]==='boolean'?H+Dz(0x154)+A:H+'\x20--'+A+'\x20<'+A[Dz(0x124)]()+'>',F=G+n[Dz(0x187)];S['option'](o[Dz(0x12c)](),F,X);}function t(s,S){const De=DP;if(S['commands'][De(0x199)](n=>n[De(0x130)]()==='logs'))return;isEqual(s,[De(0xdd),'service'])&&(S[De(0x113)](z[De(0xfc)]('service')),S[De(0x113)](e[De(0xea)](De(0x16c))),S['addCommand'](z[De(0xfc)](De(0x16c),!![])),S[De(0x113)](e[De(0xea)]('service',!![]))),isEqual(s,[De(0xdd),De(0x173)])&&(S['addCommand'](z[De(0xfc)](De(0x173))),S[De(0x113)](e['getMetricsCommand'](De(0x173))),S['addCommand'](z[De(0xfc)](De(0x173),!![])),S[De(0x113)](e['getMetricsCommand'](De(0x173),!![]))),isEqual(s,[De(0xdd),'addon'])&&(S[De(0x113)](z['getLogsCommand'](De(0x19d))),S[De(0x113)](e[De(0xea)](De(0x19d)))),isEqual(s,[De(0xdd),'addon',De(0xf8)])&&S[De(0x113)](z[De(0xfc)](De(0x19d),![],!![])),isEqual(s,['get','addon',De(0x151)])&&S['addCommand'](z[De(0xfc)](De(0x19d),![],!![],!![]));}return Object[DP(0x1aa)](g)[DP(0x161)](s=>{const Dg=DP,S=V[s],n=g[s],A=b[Dg(0x135)]([s]);function X(x,C){const Db=Dg,M=Object[Db(0x1aa)](x||{});M['map'](W=>{return{'name':W,'opt':x[W]};})['sort']((W,d)=>!h(W['opt'])?!h(d['opt'])?0x0:0x1:-0x1)['forEach'](W=>{l(W,C);});}function U(x,C){const DB=Dg,M=[[DB(0x145),'projects',DB(0x1a8)],[DB(0x16c),DB(0x1b5),DB(0x1af)],[DB(0x1a7),DB(0x16b),DB(0x150)],[DB(0x19d),DB(0x11e),DB(0x123)],[DB(0x173),DB(0xee)],[DB(0xf6),DB(0x1bb),'pln'],[DB(0x1bf),DB(0x17e),DB(0x163)],[DB(0xef),'domains',DB(0xff)],[DB(0x131),'secrets','scrt'],[DB(0x101),'volume',DB(0xf4)],[DB(0xdf),'branch',DB(0x115)],[DB(0x181),DB(0x111),'inv'],[DB(0x1b2),DB(0x19e),'tpl'],[DB(0xdb),DB(0x12b),DB(0x1a5),DB(0x10c)],[DB(0x108),DB(0x109)],[DB(0x107),'tags']],W=M[DB(0x1b4)](d=>d[DB(0x12e)](C));if(W!==undefined)x[DB(0x127)](W[DB(0x18c)](d=>d!==C));}async function R(x){const Dh=Dg,C={},{contextProvider:M}=D,W=A['includes'](Dh(0x171)),d=x[Dh(0x179)]===!![];async function f(q,L,Z,u){const Dl=Dh;if(u||has(n[Dl(0x183)]?.['path']??{},q)){const N=!d&&!W&&Z?Z():undefined,O=x[q]||N||await L();O!==undefined&&set(C,q,O);}}const T=Object[Dh(0x182)](n[Dh(0x183)]?.[Dh(0x106)]??{}),m=await D[Dh(0x13c)][Dh(0xf7)]();return n[Dh(0x183)]?.[Dh(0xf2)]&&m==='org'&&!T[Dh(0x199)](([q])=>q===Dh(0x133))&&await f(Dh(0x133),B[Dh(0x11c)](!![])[Dh(0x197)](B),undefined,!![]),await asyncSequential(T,async([q,L])=>{const Dt=Dh,Z=C?.['projectId'],u=C?.['teamId'],N=C?.['templateId'];switch(q){case Dt(0x133):return await f(Dt(0x133),B[Dt(0x11c)](!![])['bind'](B));case Dt(0x15e):return await f(Dt(0x15e),B[Dt(0x1ac)](u)[Dt(0x197)](B),M[Dt(0xe5)][Dt(0x197)](M));case Dt(0x166):return await f(Dt(0x166),B[Dt(0x144)](Z,u)[Dt(0x197)](B),M[Dt(0xed)][Dt(0x197)](M));case Dt(0x10b):return await f(Dt(0x10b),B[Dt(0xf5)](Z,u)[Dt(0x197)](B));case'jobId':return await f(Dt(0x15a),B[Dt(0x125)](Z,u)[Dt(0x197)](B),M[Dt(0x180)]['bind'](M));case Dt(0xde):return await f(Dt(0xde),B[Dt(0x1b6)](C[Dt(0x15a)],Z,![],u)[Dt(0x197)](B));case'secretId':return await f(Dt(0x10f),B[Dt(0x1b1)](Z,u)['bind'](B));case Dt(0xef):case Dt(0x13d):return await f('domain',B[Dt(0x105)](u)[Dt(0x197)](B));case Dt(0x1a2):return await f(Dt(0x1a2),B[Dt(0x1bd)](u)[Dt(0x197)](B));case'volumeId':return await f(Dt(0x188),B[Dt(0x102)](Z,u)[Dt(0x197)](B));case Dt(0x149):return await f(Dt(0x149),B['askForSubdomain'](C[Dt(0xef)],u)['bind'](B));case Dt(0x175):return await f(Dt(0x175),B[Dt(0x167)](C['domainId'],u)[Dt(0x197)](B));case Dt(0x11d):return await f('subdomainPath',B[Dt(0x103)](C['domain'],C[Dt(0x149)]??C[Dt(0x175)],u)[Dt(0x197)](B));case'backupId':return await f(Dt(0xe7),B[Dt(0x13a)](Z,C['addonId'],u)[Dt(0x197)](B));case Dt(0x15c):return await f(Dt(0x15c),B[Dt(0x1a3)](Z,C['serviceId'],C[Dt(0x15a)],u)[Dt(0x197)](B));case'templateId':return await f(Dt(0x196),B[Dt(0xe0)](u)['bind'](B));case'templateRunId':return await f('templateRunId',B[Dt(0xfa)](N,u)[Dt(0x197)](B));case Dt(0x128):return await f(Dt(0x128),B[Dt(0x1ad)](u)['bind'](B));case'pipelineId':return await f(Dt(0x148),B[Dt(0x136)](Z,u)[Dt(0x197)](B));case Dt(0x152):return await f('resourceTagId',B[Dt(0x100)](u)[Dt(0x197)](B));case'backupDestinationId':return await f(Dt(0x1b3),B[Dt(0x1a4)](u)[Dt(0x197)](B));case Dt(0x193):return await f('clusterId',B['askForClusterId'](u)[Dt(0x197)](B));default:return await f(q,B[Dt(0x156)](q,L?.[Dt(0x187)])['bind'](B));}}),C;}async function k(x){const Di=Dg,C={},M=n[Di(0x183)]?.[Di(0x185)]?a1e[Di(0x1ba)]:{},W={...n['opt']?.[Di(0x10a)]??{},...M},d=Object['keys'](W)[Di(0x18c)](f=>f!==Di(0xeb));return await asyncSequential(d,async f=>{if(x[f]!==undefined)return set(C,f,x[f]);}),C;}function H(){const Ds=Dg;switch(A[0x0]){case Ds(0xdd):return'Get\x20information\x20about\x20Northflank\x20'+(A[0x1]||Ds(0x159))+'s';case Ds(0x153):return Ds(0x18d)+(A[0x1]||Ds(0x159))+'\x20properties';default:return upperFirst(s)+Ds(0x121);}}function G(x,C){const DS=Dg;if(!C){const Z=getCommand()[DS(0x130)](kebabCase(s))[DS(0x187)](H());return U(Z,s),Z;}const M=x?.['requiredPermissions']?a1z[DS(0xf1)]('\x0a>\x20Token\x20permissions\x20required:\x20'+x[DS(0x18e)]):'',W=D['contextProvider'][DS(0x137)](),d=W!==undefined&&n?.[DS(0x183)]?.[DS(0xfe)]!==undefined,f=W?.[DS(0x120)][DS(0x170)]('api.',''),T=d?DS(0x190)+f+DS(0x104)+n?.[DS(0x183)]?.[DS(0xfe)]:'',m=x?.[DS(0x187)]||'',q=getCommand(!![])[DS(0x130)](kebabCase(s))[DS(0x187)](m)['addHelpText'](DS(0x138),[M,T]['join']('\x0a'));U(q,s);(n[DS(0x183)]?.[DS(0x13f)]||n[DS(0x183)]?.[DS(0x117)])&&(q[DS(0x1ae)]('-f,\x20--file\x20<file-path>',DS(0xe1)),q[DS(0x1ae)](DS(0x1be),'JSON-formatted\x20resource\x20definition,\x20takes\x20precedence\x20over\x20\x22--file\x22'));X(n[DS(0x183)]?.[DS(0x106)],q),X(n['opt']?.[DS(0x10a)],q);const L=n[DS(0x183)]?.[DS(0x185)];return L&&X(a1e[DS(0x1ba)],q),X(n[DS(0x183)]?.[DS(0xf3)],q),q[DS(0x165)](async()=>{const Dn=DS;assertContextExisting(D);const u=q['opts']();u?.[Dn(0x189)]&&proxyEnvsSet&&warning(Dn(0xe8));const N=u[Dn(0x1b9)]!==undefined||u['cursor']!==undefined;if(u['loadAll']===!![]&&N)throw new Error('Options\x20\x27loadAll\x27\x20can\x20not\x20be\x20combined\x20with\x20\x27page\x27\x20or\x20\x27cursor\x27');const O=u?.[Dn(0x1a6)],I=O===Dn(0x1a9),a=O===Dn(0x198)||O==='yml',Y=await R(u);B[Dn(0x13b)](Y);const p=await k(u),c=Object[Dn(0x14d)](n[Dn(0x183)]?.[Dn(0x106)]??{})[Dn(0x191)](j=>j+'='+a1z[Dn(0x14f)](Y[j]))[Dn(0x15f)](',\x20');if(c['length']>0x0&&!I&&!a){const j=Dn(0x12d)+c;console['log'](j);}const K=n[Dn(0x183)]?.['body']||n[Dn(0x183)]?.['nonInteractiveEndpoint']?await i(u,n,A):undefined;if(!u['force']&&A[Dn(0x12e)](Dn(0x171))&&!await B[Dn(0x1ab)]()){warning(Dn(0xf9));return;}const v=L&&(u[Dn(0xeb)]||(u['output']===Dn(0x1a9)||u[Dn(0x1a6)]===Dn(0x198))&&!N);let r=v&&S instanceof GetApiEndpointPaginated?await S[Dn(0xfb)]({'parameters':Y,'options':p,'data':K}):await S[Dn(0x12f)]({'parameters':Y,'options':{...p},'data':K});if(u?.['verbose']){const y=r[Dn(0x19c)];console[Dn(0x18a)](Dn(0x1a1)+y[Dn(0xd9)]['toUpperCase']()+':'+y[Dn(0x1b0)]),K!==undefined&&console[Dn(0x18a)](Dn(0xe9)+a1z[Dn(0xf1)](JSON[Dn(0x168)](K)));}if(r[Dn(0x14b)]){const {details:Q,id:D0,message:D1,status:D2}=r[Dn(0x14b)],D3=Q?Dn(0x1bc)+JSON[Dn(0x168)](Q):'',D4=D0?Dn(0x1b8)+D0:'',D5='(HTTP\x20status\x20code:\x20'+D2+D4+')';throw new Error(Dn(0xec)+D1+'\x20'+D5+D3);}let w=0x0;printCallResult(u,I,r[Dn(0x162)],a,A,O,![],w,r[Dn(0x114)][Dn(0x1a0)]);if(!u['quiet']&&!v&&!N&&r[Dn(0x17f)]?.[Dn(0xe4)])while(r[Dn(0x17f)]?.[Dn(0xe4)]){const D6=await B[Dn(0x122)](Dn(0x11f));if(D6)process[Dn(0x11b)][Dn(0xfd)](0x0,-0x1),process['stdout']['clearLine'](0x1),w+=r['pagination']['count'],r=await r['pagination'][Dn(0x119)](),printCallResult(u,I,r[Dn(0x162)],a,A,O,!![],w,r['rawResponse'][Dn(0x1a0)]);else return;}}),q;}const o=has(n,Dg(0x183)),F=S,E=G(F,o);t(A,E),P[Dg(0x113)](E);const J=omit(n,Dg(0x183));Object[Dg(0x14d)](J)[Dg(0x14c)]>0x0&&generateCommands(D,S,E,z,e,J,A);});async function i(s,S,n){const DA=DP,{input:A,file:X}=s;if(A!==undefined)try{return JSON[DA(0x186)](A);}catch(U){try{return a1g[DA(0x17b)](A);}catch(R){throw new Error('Unknown\x20input\x20format.\x20Not\x20valid\x20json\x20and\x20not\x20valid\x20yaml.');}}if(X!==undefined){if(!a1P[DA(0x141)](X))throw new Error(DA(0x15d)+X);const k=a1P[DA(0xda)](X)[DA(0x16e)]();let H;try{if(isString(k)){if(s[DA(0x139)][DA(0x134)](DA(0x14a)))H=JSON[DA(0x186)](k);else{if(s[DA(0x139)][DA(0x134)](DA(0x16a))||s[DA(0x139)][DA(0x134)](DA(0x142)))H=a1g[DA(0x17b)](k);else throw new Error(DA(0x158)+s[DA(0x139)][DA(0x177)]('.')['pop']());}}else H=k;return H;}catch(G){throw new Error(DA(0xe2)+G[DA(0x172)]);}}if(S?.['opt']?.[DA(0x117)])throw new Error(DA(0x178));return await B[DA(0x160)](S,{'cmdPath':n,'skipValidation':s['skipValidation']});}}const printCallResult=(D,V,P,z,e,g,b,B,h)=>{const DX=a1D8;if(!D?.[DX(0x129)]){if(V)handleJsonOutput(D?.[DX(0x1a6)],P);else{if(z)handleYamlOutput(D?.[DX(0x1a6)],P);else{if(isListCommand(e)){const l=g?.[DX(0x140)]('custom-columns=')?g[DX(0x170)](DX(0x157),'')[DX(0x177)](',')['map'](n=>n['toLowerCase']()):undefined,t=e[e['length']-0x1],i=''+t+(t[DX(0x134)]('s')?'':'s'),s=upperFirst(i),S=has(P,i)?P[i]:P;printAsTable(S,s,l,b,B);}else console[DX(0x18a)](consoleFormat(P,h));}}}};
2
+ const a1Q8=a1A;(function(Q,A){const Q7=a1A,N=Q();while(!![]){try{const t=-parseInt(Q7(0x151))/0x1+parseInt(Q7(0x81))/0x2*(parseInt(Q7(0xb1))/0x3)+parseInt(Q7(0xa2))/0x4*(parseInt(Q7(0x9a))/0x5)+-parseInt(Q7(0x70))/0x6+parseInt(Q7(0xdf))/0x7+-parseInt(Q7(0x114))/0x8+parseInt(Q7(0x106))/0x9;if(t===A)break;else N['push'](N['shift']());}catch(a){N['push'](N['shift']());}}}(a1Q,0xf1a01));import{ApiClient,ApiClientFileContextProvider,GetApiEndpointPaginated}from'@northflank/js-client';import{Command}from'commander';function a1Q(){const QY=['backupDestinationId','askForVolume','632fpFBWC','askForPipeline','\x20--','askForSubdomainPath','\x20Northflank\x20resources','call','inv','askForService','buildId','API\x20request\x20failed\x0a\x09Message:\x20','askForTeam','\x0a>\x20Token\x20permissions\x20required:\x20','nonInteractiveEndpoint','subdomainPath','delete','10866IxZvsL','domainId','resource','uploadCmd','base','domain','plans','askConfirm','getNextPage','helpOption','query','argv','version','pipelineId','projectId','\x0a\x09details\x20:','Failed\x20to\x20validate\x20input\x20(incorrect\x20format):\x20','Error\x20occured\x20while\x20trying\x20to\x20run\x20command,\x20error:\x20','VERBOSE:\x20Using\x20endpoint\x20->\x20','hasNextPage','defaults','concat','keys','stdout','secret','loadAll','help\x20[command]','helpCommand','addon','askGeneric','backup','boolean','replace','after','toUpperCase','getCurrentContext','isArray','yml','askForTemplateRun','addonId','VERBOSE:\x20HTTP_PROXY\x20or\x20HTTPS_PROXY\x20environment\x20variable\x20set:\x20tunnelling\x20traffic\x20through\x20HTTP\x20proxy.','VERBOSE:\x20Request\x20body\x20->\x20','volumeId','templateId','Unknown\x20input\x20file\x20type:\x20','sort','2972221UBtqaT','there\x20are\x20more\x20rows,\x20load?','startsWith','getCurrentServiceName','backups','force','yaml','repo','branch','addons','quiet','tags','teamScoped','contextProvider','rgn','statusText','method','rawResponse','toLowerCase','teamId','deleteWarningPrompt','pln','body','repositories','templateRunId','get','backupId','portFwdCmd','askForCredentials','path','regions','cursor','split','project','opt','bind','File\x20to\x20load\x20resource\x20json\x20from','-f,\x20--file\x20<file-path>','Unknown\x20input\x20format.\x20Not\x20valid\x20json\x20and\x20not\x20valid\x20yaml.','28959156pBTiGM','askForSecret','northflank','repository','getLogsCommand','backup-destinations','askForSubdomain','volume','option','logs','docsTagsPath','green','askForLogSink','jobs','15015104NPsnZh','custom-columns=','paginationArgs','alias','JSON-formatted\x20resource\x20definition,\x20takes\x20precedence\x20over\x20\x22--file\x22','tpl','plan','stringify','trim','some','askForProject','--verbose','credential','invoice','isPaginatedEndpoint','output','region','entries','vol','host','addHelpText','templates','join','branches','invoices','action','(HTTP\x20status\x20code:\x20','moveCursor','Manage\x20your\x20Northflank\x20resources\x20from\x20the\x20command\x20line','volumes','secrets','jobId','cred','.json','logSinkId','exitCode','=>\x20running\x20command\x20with:\x20','existsSync',',\x20NF\x20error\x20id:\x20','serviceId','askForJobRun','json','message','domains','file','login','toString','count','askForTemplate','filter','skipValidation','verbose','name','subdomain','Documentation:\x20','noDefaults','clearLine','Print\x20the\x20current\x20version\x20of\x20the\x20Northflank\x20cli','scrt','execCmd','brn','605951ENvoaz','addCommand','description','11732346kPXFdG','service','load','underline','requiredPermissions','askForAddonBackup','runId','askForBackupDestination','downloadCmd','italic','length','job','endsWith','pagination','includes','getMetricsCommand','Update\x20Northflank\x20','118hMWICK','credentialId','required','map','services','getOwnPropertyNames','template','log','repos','-i,\x20--input\x20<resource-def>','../package.json','backup-destination','askForDomain','url','clusterId','subdomainId','error','find','askForAddon','opts','default','Expecting\x20resource\x20input\x20with\x20\x27--input\x27\x20or\x20\x27--file\x27\x20argument','runs','Northflank\x20cli\x20version:\x20','enablePositionalOptions','49745jiSuwS','data','api.','resourceTagId','Display\x20help\x20for\x20command','Options\x20\x27loadAll\x27\x20can\x20not\x20be\x20combined\x20with\x20\x27page\x27\x20or\x20\x27cursor\x27'];a1Q=function(){return QY;};return a1Q();}import a1N from'fs';import a1t from'chalk';import{CliContext}from'./context/contextCommands.js';import{agent,assertContextExisting,asyncSequential,checkUpdate,customUserAgent,error,getCommand,proxyEnvsSet,warning}from'./utils.js';function a1A(Q,A){const N=a1Q();return a1A=function(t,a){t=t-0x6f;let p=N[t];return p;},a1A(Q,A);}import*as a1a from'./defaults.js';import{InquirerHelper}from'./inquirer-helper.js';import{consoleFormat,handleJsonOutput,handleYamlOutput,printAsTable}from'./formatting/console-format-helpers.js';import{getCommandOverview}from'./formatting/command-overview.js';import{CliPortForward}from'./port-forward/index.js';import{CliExec}from'./exec/index.js';import{CliSsh}from'./ssh/index.js';import{CliLogs}from'./logs/index.js';import{CliMetrics}from'./metrics/index.js';import{CliFileCopy}from'./copy/index.js';import{isEqual,has,set,kebabCase,upperFirst,isString,omit}from'lodash-es';import a1p from'js-yaml';import{readFileSync}from'fs';import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta[a1Q8(0x8e)]),__dirname=dirname(__filename),pgk=JSON['parse'](readFileSync(join(__dirname,a1Q8(0x8b)),'utf-8'));export const getProgram=Q=>{const Q9=a1Q8,A=new Command(Q9(0x108));A['description'](Q9(0x130)),A[Q9(0x99)](!![]),A[Q9(0xbd)](Q9(0x98)+a1t[Q9(0x73)](pgk['version']),'-v,\x20--version',Q9(0x14d));const N=new ApiClient(Q,{'throwErrorOnHttpErrorCode':![],'customUserAgent':customUserAgent,'agent':agent}),t=new CliContext(N,agent),a=new CliPortForward(Q,agent),p=new CliExec(Q,agent),P=new CliSsh(Q,agent),l=new CliFileCopy(Q,agent),X=new CliLogs(Q,agent),S=new CliMetrics(Q,agent);return A[Q9(0x152)](a[Q9(0xfa)]),A[Q9(0x152)](p[Q9(0x14f)]),A[Q9(0x152)](P['sshCmd']),A[Q9(0x152)](l[Q9(0x78)]),A[Q9(0x152)](l[Q9(0xb4)]),A[Q9(0x152)](t[Q9(0x141)]),A['addCommand'](t['contexts']),generateCommands(N,N['endpoints'],A,X,S),A[Q9(0x152)](getCommandOverview(A)),A[Q9(0xcc)](Q9(0xcb),Q9(0x9e)),A[Q9(0xba)](undefined,Q9(0x9e)),A;};((async()=>{const QQ=a1Q8;try{const Q=new ApiClientFileContextProvider();await checkUpdate(Q);const A=getProgram(Q);await A['parseAsync'](process[QQ(0xbc)]);}catch(N){error(QQ(0xc2)+N['message']),process[QQ(0xbc)][QQ(0x92)](t=>t===QQ(0x11f))&&console['log'](N),process[QQ(0x137)]=0x1;}})());function isListCommand(Q){const QA=a1Q8,A=[[QA(0xf8),QA(0xcd),QA(0xe3)],[QA(0xf8),QA(0x7b),QA(0x97)]];return Q[QA(0x92)](N=>N==='list')||A[QA(0x11d)](N=>isEqual(Q,N));}function generateCommands(Q,A,N,t,a,p=a1a[a1Q8(0xc5)],P=[]){const QN=a1Q8,l=new InquirerHelper(new ApiClient(Q[QN(0xec)],{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':agent}));function X(Z,M){const Qt=QN;return Z[Qt(0x83)]!==![]&&M===undefined;}function S(Z,M){const Qa=QN,{opt:k,name:B}=Z,w=k[Qa(0x95)],x=X(k,w),Y=m=>m[Qa(0x7a)]>0x1?'--'+m:'-'+m,E=k?.[Qa(0x117)],D=E?Array[Qa(0xd5)](E)?'-'+E?.[Qa(0x84)](m=>Y(m))[Qa(0x12a)](',\x20-')+',':''+Y(E):'',s=x?'':'OPTIONAL:\x20',i=typeof k['type']==='boolean'||k['type']===Qa(0xd0)?D+Qa(0xa4)+B:D+'\x20--'+B+'\x20<'+B[Qa(0xd3)]()+'>',T=s+k[Qa(0x6f)];M[Qa(0x10e)](i[Qa(0x11c)](),T,w);}function g(Z,M){const Qp=QN;if(M['commands'][Qp(0x11d)](k=>k[Qp(0x148)]()===Qp(0x10f)))return;isEqual(Z,[Qp(0xf8),Qp(0x71)])&&(M[Qp(0x152)](t['getLogsCommand'](Qp(0x71))),M[Qp(0x152)](a[Qp(0x7f)]('service')),M[Qp(0x152)](t[Qp(0x10a)](Qp(0x71),!![])),M[Qp(0x152)](a[Qp(0x7f)](Qp(0x71),!![]))),isEqual(Z,['get',Qp(0x7b)])&&(M['addCommand'](t[Qp(0x10a)](Qp(0x7b))),M['addCommand'](a[Qp(0x7f)](Qp(0x7b))),M['addCommand'](t[Qp(0x10a)](Qp(0x7b),!![])),M[Qp(0x152)](a[Qp(0x7f)](Qp(0x7b),!![]))),isEqual(Z,['get',Qp(0xcd)])&&(M['addCommand'](t[Qp(0x10a)](Qp(0xcd))),M['addCommand'](a['getMetricsCommand']('addon'))),isEqual(Z,[Qp(0xf8),Qp(0xcd),Qp(0xcf)])&&M[Qp(0x152)](t[Qp(0x10a)](Qp(0xcd),![],!![])),isEqual(Z,[Qp(0xf8),Qp(0xcd),'restores'])&&M['addCommand'](t[Qp(0x10a)](Qp(0xcd),![],!![],!![]));}return Object[QN(0x86)](p)['forEach'](Z=>{const QP=QN,M=A[Z],k=p[Z],B=P[QP(0xc6)]([Z]);function w(R,u){const Ql=QP,V=Object[Ql(0x86)](R||{});V['map'](U=>{return{'name':U,'opt':R[U]};})[Ql(0xde)]((U,L)=>!X(U['opt'])?!X(L[Ql(0x101)])?0x0:0x1:-0x1)['forEach'](U=>{S(U,u);});}function x(R,u){const QX=QP,V=[[QX(0x100),'projects','prj'],[QX(0x71),QX(0x85),'svc'],['credentials',QX(0x120),QX(0x134)],[QX(0xcd),QX(0xe8),'adn'],['job',QX(0x113)],[QX(0x11a),QX(0xb7),QX(0xf4)],[QX(0x124),QX(0xfd),QX(0xed)],[QX(0xb6),QX(0x13f),'dmn'],[QX(0xc9),QX(0x132),QX(0x14e)],[QX(0x131),QX(0x10d),QX(0x126)],[QX(0x12b),QX(0xe7),QX(0x150)],[QX(0x121),QX(0x12c),QX(0xa8)],[QX(0x87),QX(0x129),QX(0x119)],[QX(0x89),QX(0x109),QX(0xf6),QX(0xe6)],[QX(0x8c),QX(0x10b)],['tag',QX(0xea)]],U=V[QX(0x92)](L=>L[QX(0x7e)](u));if(U!==undefined)R['aliases'](U[QX(0x145)](L=>L!==u));}async function Y(R){const QS=QP,u={},{contextProvider:V}=Q,U=B['includes'](QS(0xb0)),L=R[QS(0x14b)]===!![];async function h(z,F,f,y){const Qg=QS;if(y||has(k[Qg(0x101)]?.[Qg(0xfc)]??{},z)){const G=!L&&!U&&f?f():undefined,H=R[z]||G||await F();H!==undefined&&set(u,z,H);}}const O=Object[QS(0x125)](k[QS(0x101)]?.['path']??{}),I=await Q[QS(0xec)]['getTokenScope']();return k[QS(0x101)]?.[QS(0xeb)]&&I==='org'&&!O['some'](([z])=>z==='teamId')&&await h('teamId',l[QS(0xac)](!![])[QS(0x102)](l),undefined,!![]),await asyncSequential(O,async([z,F])=>{const Qd=QS,f=u?.['projectId'],y=u?.[Qd(0xf2)],G=u?.[Qd(0xdc)];switch(z){case'teamId':return await h(Qd(0xf2),l[Qd(0xac)](!![])[Qd(0x102)](l));case'projectId':return await h(Qd(0xbf),l[Qd(0x11e)](y)[Qd(0x102)](l),V['getCurrentProjectName'][Qd(0x102)](V));case Qd(0x13b):return await h('serviceId',l[Qd(0xa9)](f,y)[Qd(0x102)](l),V[Qd(0xe2)]['bind'](V));case Qd(0xd8):return await h(Qd(0xd8),l[Qd(0x93)](f,y)[Qd(0x102)](l));case Qd(0x133):return await h(Qd(0x133),l['askForJob'](f,y)[Qd(0x102)](l),V['getCurrentJobName'][Qd(0x102)](V));case Qd(0x76):return await h(Qd(0x76),l[Qd(0x13c)](u[Qd(0x133)],f,![],y)[Qd(0x102)](l));case'secretId':return await h('secretId',l[Qd(0x107)](f,y)[Qd(0x102)](l));case'domain':case'domainId':return await h(Qd(0xb6),l[Qd(0x8d)](y)[Qd(0x102)](l));case Qd(0x82):return await h(Qd(0x82),l[Qd(0xfb)](y)[Qd(0x102)](l));case'volumeId':return await h(Qd(0xdb),l[Qd(0xa1)](f,y)[Qd(0x102)](l));case'subdomain':return await h('subdomain',l[Qd(0x10c)](u[Qd(0xb6)],y)['bind'](l));case Qd(0x90):return await h('subdomainId',l[Qd(0x10c)](u[Qd(0xb2)],y)['bind'](l));case Qd(0xaf):return await h('subdomainPath',l[Qd(0xa5)](u[Qd(0xb6)],u[Qd(0x149)]??u['subdomainId'],y)[Qd(0x102)](l));case'backupId':return await h(Qd(0xf9),l[Qd(0x75)](f,u['addonId'],y)['bind'](l));case Qd(0xaa):return await h('buildId',l['askForBuild'](f,u['serviceId'],u[Qd(0x133)],y)['bind'](l));case'templateId':return await h('templateId',l[Qd(0x144)](y)['bind'](l));case Qd(0xf7):return await h('templateRunId',l[Qd(0xd7)](G,y)[Qd(0x102)](l));case Qd(0x136):return await h(Qd(0x136),l[Qd(0x112)](y)['bind'](l));case Qd(0xbe):return await h(Qd(0xbe),l[Qd(0xa3)](f,y)['bind'](l));case Qd(0x9d):return await h(Qd(0x9d),l['askForTag'](y)[Qd(0x102)](l));case Qd(0xa0):return await h(Qd(0xa0),l[Qd(0x77)](y)['bind'](l));case Qd(0x8f):return await h(Qd(0x8f),l['askForClusterId'](y)['bind'](l));default:return await h(z,l[Qd(0xce)](z,F?.[Qd(0x6f)])[Qd(0x102)](l));}}),u;}async function E(R){const QZ=QP,u={},V=k[QZ(0x101)]?.[QZ(0x122)]?a1a[QZ(0x116)]:{},U={...k['opt']?.['query']??{},...V},L=Object[QZ(0xc7)](U)[QZ(0x145)](h=>h!==QZ(0xca));return await asyncSequential(L,async h=>{if(R[h]!==undefined)return set(u,h,R[h]);}),u;}function D(){const QM=QP;switch(B[0x0]){case QM(0xf8):return'Get\x20information\x20about\x20Northflank\x20'+(B[0x1]||QM(0xb3))+'s';case'update':return QM(0x80)+(B[0x1]||QM(0xb3))+'\x20properties';default:return upperFirst(Z)+QM(0xa6);}}function s(R,u){const Qk=QP;if(!u){const f=getCommand()[Qk(0x148)](kebabCase(Z))[Qk(0x6f)](D());return x(f,Z),f;}const V=R?.[Qk(0x74)]?a1t[Qk(0x79)](Qk(0xad)+R[Qk(0x74)]):'',U=Q[Qk(0xec)][Qk(0xd4)](),L=U!==undefined&&k?.['opt']?.['docsTagsPath']!==undefined,h=U?.[Qk(0x127)]['replace'](Qk(0x9c),''),O=L?Qk(0x14a)+h+'/docs/v1/api/'+k?.[Qk(0x101)]?.[Qk(0x110)]:'',I=R?.['description']||'',z=getCommand(!![])['name'](kebabCase(Z))[Qk(0x6f)](I)[Qk(0x128)](Qk(0xd2),[V,O][Qk(0x12a)]('\x0a'));x(z,Z);(k[Qk(0x101)]?.[Qk(0xf5)]||k[Qk(0x101)]?.[Qk(0xae)])&&(z['option'](Qk(0x104),Qk(0x103)),z[Qk(0x10e)](Qk(0x8a),Qk(0x118)));w(k[Qk(0x101)]?.[Qk(0xfc)],z),w(k[Qk(0x101)]?.[Qk(0xbb)],z);const F=k[Qk(0x101)]?.[Qk(0x122)];return F&&w(a1a[Qk(0x116)],z),w(k[Qk(0x101)]?.[Qk(0xb5)],z),z[Qk(0x12d)](async()=>{const QB=Qk;assertContextExisting(Q);const y=z[QB(0x94)]();y?.[QB(0x147)]&&proxyEnvsSet&&warning(QB(0xd9));const G=y['page']!==undefined||y[QB(0xfe)]!==undefined;if(y[QB(0xca)]===!![]&&G)throw new Error(QB(0x9f));const H=y?.[QB(0x123)],v=H===QB(0x13d),K=H===QB(0xe5)||H==='yml',W=await Y(y);l['setPathVars'](W);const o=await E(y),q=Object[QB(0xc7)](k[QB(0x101)]?.[QB(0xfc)]??{})[QB(0x84)](e=>e+'='+a1t[QB(0x111)](W[e]))[QB(0x12a)](',\x20');if(q[QB(0x7a)]>0x0&&!v&&!K){const e=QB(0x138)+q;console['log'](e);}const C=k[QB(0x101)]?.[QB(0xf5)]||k[QB(0x101)]?.[QB(0xae)]?await d(y,k,B):undefined;if(!y[QB(0xe4)]&&B[QB(0x7e)](QB(0xb0))&&!await l[QB(0xf3)]()){warning('Resource\x20was\x20not\x20deleted.');return;}const r=F&&(y[QB(0xca)]||(y[QB(0x123)]===QB(0x13d)||y[QB(0x123)]===QB(0xe5))&&!G);let b=r&&M instanceof GetApiEndpointPaginated?await M['all']({'parameters':W,'options':o,'data':C}):await M[QB(0xa7)]({'parameters':W,'options':{...o},'data':C});if(y?.['verbose']){const J=b['request'];console['log'](QB(0xc3)+J[QB(0xef)][QB(0xd3)]()+':'+J['url']),C!==undefined&&console[QB(0x88)](QB(0xda)+a1t['italic'](JSON[QB(0x11b)](C)));}if(b['error']){const {details:j,id:Q0,message:Q1,status:Q2}=b[QB(0x91)],Q3=j?QB(0xc0)+JSON[QB(0x11b)](j):'',Q4=Q0?QB(0x13a)+Q0:'',Q5=QB(0x12e)+Q2+Q4+')';throw new Error(QB(0xab)+Q1+'\x20'+Q5+Q3);}let c=0x0;printCallResult(y,v,b[QB(0x9b)],K,B,H,![],c,b[QB(0xf0)][QB(0xee)]);if(!y[QB(0xe9)]&&!r&&!G&&b[QB(0x7d)]?.[QB(0xc4)])while(b[QB(0x7d)]?.[QB(0xc4)]){const Q6=await l[QB(0xb8)](QB(0xe0));if(Q6)process[QB(0xc8)][QB(0x12f)](0x0,-0x1),process['stdout'][QB(0x14c)](0x1),c+=b[QB(0x7d)][QB(0x143)],b=await b[QB(0x7d)][QB(0xb9)](),printCallResult(y,v,b['data'],K,B,H,!![],c,b[QB(0xf0)]['statusText']);else return;}}),z;}const i=has(k,'opt'),T=M,m=s(T,i);g(B,m),N[QP(0x152)](m);const n=omit(k,QP(0x101));Object[QP(0xc7)](n)['length']>0x0&&generateCommands(Q,M,m,t,a,n,B);});async function d(Z,M,k){const Qw=QN,{input:B,file:w}=Z;if(B!==undefined)try{return JSON['parse'](B);}catch(x){try{return a1p[Qw(0x72)](B);}catch(Y){throw new Error(Qw(0x105));}}if(w!==undefined){if(!a1N[Qw(0x139)](w))throw new Error('File\x20does\x20not\x20exist:\x20'+w);const E=a1N['readFileSync'](w)[Qw(0x142)]();let D;try{if(isString(E)){if(Z['file'][Qw(0x7c)](Qw(0x135)))D=JSON['parse'](E);else{if(Z[Qw(0x140)][Qw(0x7c)]('.yaml')||Z[Qw(0x140)][Qw(0x7c)](Qw(0xd6)))D=a1p['load'](E);else throw new Error(Qw(0xdd)+Z[Qw(0x140)]['split']('.')['pop']());}}else D=E;return D;}catch(s){throw new Error(Qw(0xc1)+s[Qw(0x13e)]);}}if(M?.[Qw(0x101)]?.[Qw(0xae)])throw new Error(Qw(0x96));return await l['retrievePayloadViaInteractiveCli'](M,{'cmdPath':k,'skipValidation':Z[Qw(0x146)]});}}const printCallResult=(Q,A,N,t,a,p,P,l,X)=>{const Qx=a1Q8;if(!Q?.[Qx(0xe9)]){if(A)handleJsonOutput(Q?.[Qx(0x123)],N);else{if(t)handleYamlOutput(Q?.[Qx(0x123)],N);else{if(isListCommand(a)){const S=p?.[Qx(0xe1)](Qx(0x115))?p[Qx(0xd1)](Qx(0x115),'')[Qx(0xff)](',')[Qx(0x84)](k=>k[Qx(0xf1)]()):undefined,g=a[a['length']-0x1],d=''+g+(g['endsWith']('s')?'':'s'),Z=upperFirst(d),M=has(N,d)?N[d]:N;printAsTable(M,Z,S,P,l);}else console[Qx(0x88)](consoleFormat(N,X));}}}};
@@ -1 +1 @@
1
- const a2F=a2V;(function(D,V){const o=a2V,P=D();while(!![]){try{const z=-parseInt(o(0x100))/0x1*(parseInt(o(0x141))/0x2)+parseInt(o(0x133))/0x3+-parseInt(o(0xdb))/0x4+parseInt(o(0x122))/0x5*(parseInt(o(0x11d))/0x6)+parseInt(o(0xbf))/0x7*(parseInt(o(0xc1))/0x8)+parseInt(o(0x119))/0x9+-parseInt(o(0x139))/0xa*(-parseInt(o(0x13a))/0xb);if(z===V)break;else P['push'](P['shift']());}catch(e){P['push'](P['shift']());}}}(a2D,0xc781a));import{ProxyAgent}from'proxy-agent';import a2P from'chalk';import{error,getCommand,retry,success,warning,decodeJwtPayload}from'../utils.js';import{InquirerHelper}from'../inquirer-helper.js';import{printAsTable}from'../formatting/console-format-helpers.js';import{NorthflankApiBrowserLogin}from'../login/browser-login.js';import a2z from'node-fetch';import{set}from'lodash-es';import a2e from'inquirer';function a2D(){const K=['Connect\x20the\x20CLI\x20to\x20your\x20Northflank\x20account.','9371390EeeFmz','Use\x20project\x20with\x20id:','8FPjnRi','contextAvailable','remove','-t,\x20--token\x20[TOKEN]','host','--override','\x0a\x20\x20Default\x20Project:\x09','browserLogin','Job\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','moveCursor','--all','ctx','addCommand','\x0aSuccessfully\x20logged\x20in\x20using\x20','getCurrentContext','-i,\x20--id\x20[ID]','contexts','all','No\x20current\x20context\x20set.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20one\x20or\x20\x27northflank\x20context\x20use\x27\x20to\x20select\x20an\x20existing\x20one.','alias','Change\x20the\x20default\x20project\x20in\x20the\x20current\x20local\x20context','Change\x20current\x20context\x20to\x20context\x20identified\x20by\x20this\x20name','.\x20Using\x20fallback.','tokenScope','useServiceId','fullUrl','5364840WNlixb','askForContext','Project\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','getCurrentName','-n,\x20--name\x20[NAME]','Contexts','Shows\x20full\x20context\x20information\x20(including\x20tokens)','stdout','clearLine','apiTokenLogin','login','Use\x20manual\x20login\x20with\x20API\x20token','Change\x20the\x20default\x20job\x20in\x20the\x20current\x20local\x20context','description','log','Local\x20context\x20name\x20to\x20remove.','\x0a\x20\x20Token\x20Scope:\x09\x09','doNotOpenBrowser','message','tokenLogin','--host\x20[HOST]','project','use','timeout','\x0a\x20\x20Token\x20ID:\x09\x09','verifyToken','--token-login','action','name','replace','Choose\x20the\x20context\x20to\x20','test','Token\x20for\x20current\x20context\x20\x27','length','getCurrentToken','loadContextWrapper','Switch\x20between\x20your\x20local\x20contexts','622067yhndGa','\x27\x20successfully\x20removed.','Failed\x20to\x20login\x20with\x20the\x20provided\x20token,\x20make\x20sure\x20to\x20use\x20a\x20valid\x20token\x20and\x20host.','italic','prompt','use\x20from\x20now\x20on','loginPrompt','confirm','getCurrentBaseUrl','https://','useProjectId','Display\x20full\x20URL\x20to\x20allow\x20opening\x20the\x20link\x20manually','finally','valueOf','Shows\x20detailed\x20information\x20about\x20current\x20context','Use\x20browser\x20login\x20but\x20only\x20print\x20URL\x20which\x20can\x20be\x20used\x20to\x20login','/v1/login','\x0a\x20\x20Host:\x09\x09\x09','Change\x20the\x20default\x20service\x20in\x20the\x20current\x20local\x20context','\x27\x20successfully\x20updated.','browser\x20login','job','\x0a\x20\x20Token\x20Role\x20ID:\x09','Current\x20token\x20info','host\x20url\x20for\x20this\x20context','9231165wvWLyQ','catch','addContext','browser-opened','6sYxIqD','Use\x20job\x20with\x20id:','autologin-','defaultBaseUrl','\x20(api\x20host:\x20','4545215ghGiul','Changed\x20current\x20context\x20to\x20','tokenInternalId','removeContext','askForJob','Override\x20existing\x20contexts\x20(this\x20will\x20remove\x20project\x20and\x20service\x20context)','No\x20context\x20available.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','Name\x20for\x20login\x20context','askForProject','Remove\x20a\x20context','sort','list','askForService','updateToken','agent','option','search-list','35553tZMNNY','Follow\x20the\x20steps\x20displayed\x20on\x20the\x20page\x20opened\x20in\x20the\x20browser\x20(URL\x20opened:\x20','getProjectName','dir','roleInternalId','\x20(current)','1171730ipPckm','11pLduhD','getInfo','service',',\x20added\x20context\x20with\x20name\x20','Bearer\x20','\x0a\x20\x20Default\x20Service:\x09','set-token','4SGVKHV','No\x20context\x20available.\x20Please\x20use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','apiClient','contextProvider','Open\x20this\x20URL\x20in\x20your\x20browser\x20and\x20follow\x20the\x20steps:\x0a\x09','GET','https://api.northflank.com','show','map','token\x20login','token','Token\x20for\x20this\x20context','No\x20project\x20in\x20current\x20context.\x20Please\x20set\x20project\x20before\x20setting\x20a\x20project-scoped\x20resource','update-token'];a2D=function(){return K;};return a2D();}function a2V(D,V){const P=a2D();return a2V=function(z,e){z=z-0xb2;let g=P[z];return g;},a2V(D,V);}export class CliContext{[a2F(0x130)];[a2F(0x120)];['apiClient'];[a2F(0xd1)];[a2F(0xe5)];constructor(D,V=undefined,P=a2F(0xb6)){const E=a2F;this['agent']=V,this[E(0x120)]=P,this[E(0xb2)]=D;const z=new InquirerHelper(D);this[E(0xe5)]=getCommand()[E(0xf7)](E(0xe5))['description'](E(0xbe))[E(0x131)](E(0xf5),E(0xe6),![])[E(0x131)]('--do-not-open-browser',E(0x10f),![])['option']('-n,\x20--name\x20[NAME]',E(0x129))[E(0x131)](E(0xc4),'Token\x20for\x20this\x20context.\x20When\x20set,\x20browser\x20login\x20is\x20not\x20used')['option'](E(0xef),E(0x118),this[E(0x120)])[E(0x131)](E(0xc6),E(0x127),![])[E(0xf6)](async S=>{const J=E;set(S,J(0xc5),this['sanitiseHostname'](S[J(0xc5)]));const n=S[J(0xee)]||S[J(0xba)]!==undefined,{name:A,host:X,token:U,override:R}=n?await this['apiTokenLogin'](S,z):await this[J(0xc8)](S,z);try{await this['apiClient']['contextProvider'][J(0x11b)]({'name':A,'host':X,'token':U},R);}catch(k){error(k[J(0xed)]);return;}if(!await this[J(0xf4)]())error(J(0x102)),await this[J(0xb2)][J(0xb3)][J(0x125)](A);else{const H=n?J(0xb9):J(0x114),G=J(0xce)+H+J(0x13d)+a2P[J(0x103)](A)+J(0x121)+X+')';success(G);}}),this['contexts']=getCommand()['name']('context')[E(0xe8)]('Retrieve\x20and\x20update\x20local\x20context\x20settings.')[E(0xd4)](E(0xd1))[E(0xd4)](E(0xcc));const e=getCommand()['name'](E(0x12d))[E(0xf7)]('ls')[E(0xe8)]('List\x20all\x20available\x20contexts')['option'](E(0xcb),E(0xe1))['action'](async S=>{const x=E;console['log'](D[x(0xb3)]['getInfo']());const n=D[x(0xb3)][x(0xfe)]();if(S[x(0xd2)]===!![]){console[x(0x136)](n);return;}const A=n['current'],X=n[x(0xd1)][x(0x12c)]((U,R)=>U[x(0xf7)]===A?-0x1:R['name']===A?0x1:0x0)['map'](U=>{const C=x,R=A===U['name']?C(0x138):'';return{'Name':''+U['name']+R,'Host':U[C(0xc5)],'Token\x20scope':U[C(0xd8)],'Default\x20Project':U[C(0xf0)]||'-','Default\x20Service':U[C(0x13c)]||'-'};});printAsTable(X,x(0xe0));}),g=getCommand()[E(0xf7)](E(0xb7))[E(0xe8)](E(0x10e))[E(0xf6)](async()=>{const M=E;console[M(0xe9)](D[M(0xb3)][M(0x13b)]());const S=D[M(0xb3)][M(0xcf)]();if(S===undefined){console['log'](M(0xd3));return;}const n=decodeJwtPayload(S[M(0xba)]),A=S[M(0xc5)];console[M(0xe9)](a2P['bold'](M(0x117))+':\x20\x0a\x20\x20Name:\x09\x09\x09'+S[M(0xf7)]+M(0x111)+A+M(0xeb)+S[M(0xd8)]+M(0xc7)+(S[M(0xf0)]||'-')+M(0x13f)+(S[M(0x13c)]||'-')+M(0xf3)+(n?.[M(0x124)]||'-')+M(0x116)+(n?.[M(0x137)]||'-')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20');}),b=getCommand();b[E(0xf7)](E(0xf1))['description'](E(0xff))[E(0x131)](E(0xdf),E(0xd6))['action'](async S=>{const W=E,n=S?.[W(0xf7)]||await this[W(0xdc)](W(0xf1));this[W(0xb2)][W(0xb3)]['useContext'](n),success(W(0x123)+n);});const B=E(0xd0),h=getCommand()[E(0xf7)](E(0xf0))[E(0xe8)](E(0xd5))[E(0x131)](B,E(0xdd))[E(0xf6)](async S=>{const d=E,n=S?.['id']||await z[d(0x12a)]()();this['apiClient']['contextProvider'][d(0x10a)](n),console[d(0xe9)](d(0xc0),n);}),l=getCommand()[E(0xf7)](E(0x13c))['description'](E(0x112))[E(0x131)](B,'Service\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context')[E(0xf6)](async S=>{const f=E,n=S?.['id']||await z[f(0x12e)](this[f(0x135)]())();console[f(0xe9)]('Use\x20service\x20with\x20id:',n),this[f(0xb2)][f(0xb3)][f(0xd9)](n);}),t=getCommand()['name'](E(0x115))['description'](E(0xe7))[E(0x131)](B,E(0xc9))[E(0xf6)](async S=>{const T=E,n=S?.['id']||await z[T(0x126)](this['getProjectName']())();console['log'](T(0x11e),n),await this[T(0xb2)][T(0xb3)]['useJobId'](n);});b[E(0xcd)](h),b['addCommand'](t),b[E(0xcd)](l);const i=getCommand()['name']('remove')['alias']('delete')[E(0xd4)]('rm')[E(0xe8)](E(0x12b))['option'](B,E(0xea))[E(0xf6)](async S=>{const m=E,n=S?.['id']||await this[m(0xdc)](m(0xc3)),A=this[m(0xb2)][m(0xb3)][m(0xcf)]()?.[m(0xf7)];this[m(0xb2)][m(0xb3)]['removeContext'](n),success('Local\x20context\x20\x27'+n+m(0x101));if(!this[m(0xc2)]()){warning(m(0x128));return;}if(A===n){const X=S?.[m(0xf7)]||await this[m(0xdc)](m(0x105));this[m(0xb2)][m(0xb3)]['useContext'](X),success('Changed\x20current\x20context\x20to\x20'+X);}}),s=getCommand()['name'](E(0xbd))[E(0xd4)](E(0x140))[E(0xe8)]('Update\x20token\x20for\x20current\x20context')[E(0x131)](E(0xc4),E(0xbb))['action'](async S=>{const q=E,{contextProvider:n}=this[q(0xb2)],A=S?.[q(0xba)]||await z['tokenPrompt'](),X=n[q(0xfd)]();n[q(0x12f)](A);if(await this['verifyToken']())success(q(0xfb)+n[q(0xde)]()+q(0x113));else{if(X)n['updateToken'](X);error('Failed\x20to\x20login\x20with\x20the\x20provided\x20token.\x20Token\x20was\x20not\x20changed');}});this['contexts'][E(0xcd)](e),this[E(0xd1)][E(0xcd)](g),this[E(0xd1)][E(0xcd)](b),this[E(0xd1)][E(0xcd)](i),this[E(0xd1)]['addCommand'](s);}async[a2F(0xc8)](D,V){const L=a2F,P=!D[L(0xec)],z=D[L(0xc5)]??this['defaultBaseUrl'],e=new NorthflankApiBrowserLogin(z,P,this[L(0x130)]);let g;e['on'](L(0x11c),({url:l})=>{const Z=L;if(P){const t=l['replace'](/sessionToken=.*/,'sessionToken=********');console['log'](Z(0x134)+t+')'),g=a2e['prompt']([{'type':Z(0x107),'name':Z(0xda),'message':Z(0x10b),'default':![]}]),g['then'](i=>{const u=Z;process[u(0xe2)][u(0xca)](0x0,-0x1),process[u(0xe2)][u(0xe3)](0x1),i['fullUrl']&&console['log'](u(0xb4)+l+'\x20');});}else console[Z(0xe9)]('Open\x20this\x20URL\x20in\x20your\x20browser\x20and\x20follow\x20the\x20steps:\x0a\x09'+l+'\x20');});const {token:b,contextName:B}=await e['startLogin']()[L(0x11a)](async l=>{const N=L;error('Error\x20occured\x20during\x20browser\x20login:\x20'+l[N(0xed)]+N(0xd7));const t=await this['apiTokenLogin'](D,V);return{'token':t[N(0xba)],'contextName':t[N(0xf7)]};})[L(0x10c)](()=>{if(g)g['ui']['close']();}),h=D[L(0xf7)]??B??L(0x11f)+new Date()[L(0x10d)]();return{'name':h,'token':b,'host':z,'override':D['override']??![]};}['sanitiseHostname']=D=>{const O=a2F;let V=D;return!/^https?:\/\//i[O(0xfa)](V)&&(V=O(0x109)+V),V=V[O(0xf8)](/\/+$/,''),V;};async[a2F(0xe4)](D,V){const I=a2F,P=this['apiClient']['contextProvider'][I(0xfe)]()[I(0xd1)],{name:z,token:e,host:g,override:b}=await V[I(0x106)](D,P);return{'name':z,'token':e,'host':g,'override':b};}[a2F(0x135)](){const a=a2F,D=this[a(0xb2)][a(0xb3)]['getCurrentProjectName']();if(D===undefined)throw new Error(a(0xbc));return D;}async['askForContext'](D){const Y=a2F;if(!this[Y(0xc2)]())throw new Error(Y(0x142));const V=this[Y(0xb2)]['contextProvider'][Y(0xfe)]()[Y(0xd1)][Y(0xb8)](z=>z[Y(0xf7)]),P=V[Y(0xfc)]>0x4?Y(0x132):Y(0x12d);return(await a2e[Y(0x104)]([{'type':P,'name':Y(0xf7),'message':Y(0xf9)+D+':','choices':V}]))[Y(0xf7)];}[a2F(0xc2)](){const p=a2F;return this['apiClient'][p(0xb3)]['loadContextWrapper']()[p(0xd1)][p(0xfc)]>0x0;}async[a2F(0xf4)](){const c=a2F;try{const D=this[c(0xb2)][c(0xb3)][c(0x108)](),V=this['apiClient'][c(0xb3)]['getCurrentToken'](),P=D+c(0x110),z={'Authorization':c(0x13e)+V},g=new ProxyAgent(),b=await retry(0x3)(async()=>a2z(P,{'method':c(0xb5),'signal':AbortSignal[c(0xf2)](0xbb8),'headers':z,'agent':g}));if(b['ok'])return!![];return![];}catch(B){return![];}}}
1
+ const a2T=a2A;(function(Q,A){const i=a2A,N=Q();while(!![]){try{const t=-parseInt(i(0x1a2))/0x1+parseInt(i(0x162))/0x2+parseInt(i(0x190))/0x3+-parseInt(i(0x138))/0x4+parseInt(i(0x12e))/0x5*(parseInt(i(0x1a3))/0x6)+parseInt(i(0x16a))/0x7*(parseInt(i(0x1a9))/0x8)+-parseInt(i(0x1a1))/0x9*(parseInt(i(0x182))/0xa);if(t===A)break;else N['push'](N['shift']());}catch(a){N['push'](N['shift']());}}}(a2Q,0xcbf3e));import{ProxyAgent}from'proxy-agent';import a2N from'chalk';function a2Q(){const r=['\x20(current)','contextProvider','Update\x20token\x20for\x20current\x20context','Name\x20for\x20login\x20context','--all','5047116fSWXlL','tokenLogin','replace','Connect\x20the\x20CLI\x20to\x20your\x20Northflank\x20account.','useServiceId','verifyToken','stdout','browser-opened','getCurrentName','getCurrentToken','current','-t,\x20--token\x20[TOKEN]','italic','useContext','https://api.northflank.com',',\x20added\x20context\x20with\x20name\x20','tokenPrompt','update-token','length','apiClient','token\x20login','valueOf','option','autologin-','bold','updateToken','https://','log','Open\x20this\x20URL\x20in\x20your\x20browser\x20and\x20follow\x20the\x20steps:\x0a\x09','--do-not-open-browser','apiTokenLogin','Job\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','Use\x20project\x20with\x20id:','Change\x20the\x20default\x20job\x20in\x20the\x20current\x20local\x20context','--token-login','clearLine','override','.\x20Using\x20fallback.','Changed\x20current\x20context\x20to\x20','browserLogin','-n,\x20--name\x20[NAME]','finally','471048PcuhLA','\x0a\x20\x20Default\x20Project:\x09','\x27\x20successfully\x20updated.','Bearer\x20','doNotOpenBrowser','delete','tokenScope','use','139454rjdirB','Change\x20the\x20default\x20service\x20in\x20the\x20current\x20local\x20context',':\x20\x0a\x20\x20Name:\x09\x09\x09','use\x20from\x20now\x20on','askForService','Error\x20occured\x20during\x20browser\x20login:\x20','host','addCommand','message','sanitiseHostname','timeout','contexts','Change\x20current\x20context\x20to\x20context\x20identified\x20by\x20this\x20name','Switch\x20between\x20your\x20local\x20contexts','close','askForProject','Change\x20the\x20default\x20project\x20in\x20the\x20current\x20local\x20context','Follow\x20the\x20steps\x20displayed\x20on\x20the\x20page\x20opened\x20in\x20the\x20browser\x20(URL\x20opened:\x20','Project\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','--override','startLogin','project','browser\x20login','dir','3610MQzvda','\x20(api\x20host:\x20','map','alias','test','Service\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','job','List\x20all\x20available\x20contexts','Remove\x20a\x20context','context','No\x20context\x20available.\x20Please\x20use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','remove','Display\x20full\x20URL\x20to\x20allow\x20opening\x20the\x20link\x20manually','contextAvailable','3449874lZSaSo','askForContext','\x27\x20successfully\x20removed.','Current\x20token\x20info','\x0a\x20\x20Host:\x09\x09\x09','defaultBaseUrl','login','sessionToken=********','getProjectName','all','description','Token\x20for\x20current\x20context\x20\x27','addContext','removeContext','getCurrentContext','Use\x20manual\x20login\x20with\x20API\x20token','Token\x20for\x20this\x20context.\x20When\x20set,\x20browser\x20login\x20is\x20not\x20used','23274pochmg','828675HPhKQN','1319148zdooTz','No\x20context\x20available.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','prompt','sort','GET','useProjectId','552Yxhjxl','Use\x20browser\x20login\x20but\x20only\x20print\x20URL\x20which\x20can\x20be\x20used\x20to\x20login','list','Local\x20context\x20name\x20to\x20remove.','Token\x20for\x20this\x20context','/v1/login','name','No\x20project\x20in\x20current\x20context.\x20Please\x20set\x20project\x20before\x20setting\x20a\x20project-scoped\x20resource','getCurrentProjectName','agent','confirm','\x0a\x20\x20Default\x20Service:\x09','service','token','getCurrentBaseUrl','25pdeQWv','\x0a\x20\x20Token\x20Role\x20ID:\x09','No\x20current\x20context\x20set.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20one\x20or\x20\x27northflank\x20context\x20use\x27\x20to\x20select\x20an\x20existing\x20one.','action','loadContextWrapper'];a2Q=function(){return r;};return a2Q();}import{error,getCommand,retry,success,warning,decodeJwtPayload}from'../utils.js';function a2A(Q,A){const N=a2Q();return a2A=function(t,a){t=t-0x123;let p=N[t];return p;},a2A(Q,A);}import{InquirerHelper}from'../inquirer-helper.js';import{printAsTable}from'../formatting/console-format-helpers.js';import{NorthflankApiBrowserLogin}from'../login/browser-login.js';import a2t from'node-fetch';import{set}from'lodash-es';import a2a from'inquirer';export class CliContext{['agent'];[a2T(0x195)];[a2T(0x14b)];['contexts'];[a2T(0x196)];constructor(Q,A=undefined,N=a2T(0x146)){const m=a2T;this[m(0x128)]=A,this[m(0x195)]=N,this['apiClient']=Q;const t=new InquirerHelper(Q);this[m(0x196)]=getCommand()[m(0x125)](m(0x196))[m(0x19a)](m(0x13b))[m(0x14e)](m(0x15a),m(0x19f),![])[m(0x14e)](m(0x155),m(0x1aa),![])[m(0x14e)](m(0x160),m(0x136))[m(0x14e)](m(0x143),m(0x1a0))[m(0x14e)]('--host\x20[HOST]','host\x20url\x20for\x20this\x20context',this[m(0x195)])[m(0x14e)](m(0x17d),'Override\x20existing\x20contexts\x20(this\x20will\x20remove\x20project\x20and\x20service\x20context)',![])[m(0x131)](async M=>{const n=m;set(M,n(0x170),this[n(0x173)](M[n(0x170)]));const k=M[n(0x139)]||M[n(0x12c)]!==undefined,{name:B,host:w,token:x,override:Y}=k?await this['apiTokenLogin'](M,t):await this[n(0x15f)](M,t);try{await this[n(0x14b)][n(0x134)][n(0x19c)]({'name':B,'host':w,'token':x},Y);}catch(E){error(E[n(0x172)]);return;}if(!await this['verifyToken']())error('Failed\x20to\x20login\x20with\x20the\x20provided\x20token,\x20make\x20sure\x20to\x20use\x20a\x20valid\x20token\x20and\x20host.'),await this['apiClient'][n(0x134)]['removeContext'](B);else{const D=k?n(0x14c):n(0x180),s='\x0aSuccessfully\x20logged\x20in\x20using\x20'+D+n(0x147)+a2N[n(0x144)](B)+n(0x183)+w+')';success(s);}}),this[m(0x175)]=getCommand()[m(0x125)](m(0x18b))[m(0x19a)]('Retrieve\x20and\x20update\x20local\x20context\x20settings.')[m(0x185)](m(0x175))[m(0x185)]('ctx');const a=getCommand()[m(0x125)](m(0x1ab))[m(0x125)]('ls')[m(0x19a)](m(0x189))['option'](m(0x137),'Shows\x20full\x20context\x20information\x20(including\x20tokens)')[m(0x131)](async M=>{const R=m;console['log'](Q[R(0x134)]['getInfo']());const k=Q[R(0x134)][R(0x132)]();if(M[R(0x199)]===!![]){console[R(0x181)](k);return;}const B=k[R(0x142)],w=k[R(0x175)][R(0x1a6)]((x,Y)=>x[R(0x125)]===B?-0x1:Y[R(0x125)]===B?0x1:0x0)[R(0x184)](x=>{const u=R,Y=B===x[u(0x125)]?u(0x133):'';return{'Name':''+x['name']+Y,'Host':x[u(0x170)],'Token\x20scope':x[u(0x168)],'Default\x20Project':x[u(0x17f)]||'-','Default\x20Service':x[u(0x12b)]||'-'};});printAsTable(w,'Contexts');}),p=getCommand()[m(0x125)]('show')[m(0x19a)]('Shows\x20detailed\x20information\x20about\x20current\x20context')[m(0x131)](async()=>{const V=m;console[V(0x153)](Q['contextProvider']['getInfo']());const M=Q['contextProvider'][V(0x19e)]();if(M===undefined){console[V(0x153)](V(0x130));return;}const k=decodeJwtPayload(M['token']),B=M[V(0x170)];console[V(0x153)](a2N[V(0x150)](V(0x193))+V(0x16c)+M[V(0x125)]+V(0x194)+B+'\x0a\x20\x20Token\x20Scope:\x09\x09'+M[V(0x168)]+V(0x163)+(M[V(0x17f)]||'-')+V(0x12a)+(M['service']||'-')+'\x0a\x20\x20Token\x20ID:\x09\x09'+(k?.['tokenInternalId']||'-')+V(0x12f)+(k?.['roleInternalId']||'-')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20');}),P=getCommand();P[m(0x125)](m(0x169))['description'](m(0x177))[m(0x14e)](m(0x160),m(0x176))[m(0x131)](async M=>{const U=m,k=M?.['name']||await this[U(0x191)](U(0x169));this[U(0x14b)][U(0x134)][U(0x145)](k),success(U(0x15e)+k);});const l='-i,\x20--id\x20[ID]',X=getCommand()[m(0x125)](m(0x17f))['description'](m(0x17a))[m(0x14e)](l,m(0x17c))[m(0x131)](async M=>{const L=m,k=M?.['id']||await t[L(0x179)]()();this[L(0x14b)][L(0x134)][L(0x1a8)](k),console['log'](L(0x158),k);}),S=getCommand()[m(0x125)](m(0x12b))[m(0x19a)](m(0x16b))[m(0x14e)](l,m(0x187))[m(0x131)](async M=>{const h=m,k=M?.['id']||await t[h(0x16e)](this[h(0x198)]())();console[h(0x153)]('Use\x20service\x20with\x20id:',k),this[h(0x14b)][h(0x134)][h(0x13c)](k);}),g=getCommand()[m(0x125)](m(0x188))['description'](m(0x159))[m(0x14e)](l,m(0x157))[m(0x131)](async M=>{const O=m,k=M?.['id']||await t['askForJob'](this['getProjectName']())();console[O(0x153)]('Use\x20job\x20with\x20id:',k),await this[O(0x14b)][O(0x134)]['useJobId'](k);});P[m(0x171)](X),P[m(0x171)](g),P['addCommand'](S);const d=getCommand()['name'](m(0x18d))[m(0x185)](m(0x167))[m(0x185)]('rm')[m(0x19a)](m(0x18a))[m(0x14e)](l,m(0x1ac))['action'](async M=>{const I=m,k=M?.['id']||await this['askForContext'](I(0x18d)),B=this[I(0x14b)][I(0x134)][I(0x19e)]()?.[I(0x125)];this['apiClient'][I(0x134)][I(0x19d)](k),success('Local\x20context\x20\x27'+k+I(0x192));if(!this[I(0x18f)]()){warning(I(0x1a4));return;}if(B===k){const w=M?.[I(0x125)]||await this[I(0x191)](I(0x16d));this[I(0x14b)]['contextProvider'][I(0x145)](w),success(I(0x15e)+w);}}),Z=getCommand()[m(0x125)](m(0x149))[m(0x185)]('set-token')[m(0x19a)](m(0x135))[m(0x14e)](m(0x143),m(0x123))[m(0x131)](async M=>{const z=m,{contextProvider:k}=this[z(0x14b)],B=M?.[z(0x12c)]||await t[z(0x148)](),w=k[z(0x141)]();k[z(0x151)](B);if(await this[z(0x13d)]())success(z(0x19b)+k[z(0x140)]()+z(0x164));else{if(w)k[z(0x151)](w);error('Failed\x20to\x20login\x20with\x20the\x20provided\x20token.\x20Token\x20was\x20not\x20changed');}});this[m(0x175)]['addCommand'](a),this[m(0x175)][m(0x171)](p),this['contexts'][m(0x171)](P),this[m(0x175)][m(0x171)](d),this[m(0x175)][m(0x171)](Z);}async[a2T(0x15f)](Q,A){const F=a2T,N=!Q[F(0x166)],t=Q['host']??this[F(0x195)],a=new NorthflankApiBrowserLogin(t,N,this[F(0x128)]);let p;a['on'](F(0x13f),({url:S})=>{const f=F;if(N){const g=S[f(0x13a)](/sessionToken=.*/,f(0x197));console[f(0x153)](f(0x17b)+g+')'),p=a2a['prompt']([{'type':f(0x129),'name':'fullUrl','message':f(0x18e),'default':![]}]),p['then'](d=>{const y=f;process[y(0x13e)]['moveCursor'](0x0,-0x1),process[y(0x13e)][y(0x15b)](0x1),d['fullUrl']&&console['log'](y(0x154)+S+'\x20');});}else console['log'](f(0x154)+S+'\x20');});const {token:P,contextName:l}=await a[F(0x17e)]()['catch'](async S=>{const G=F;error(G(0x16f)+S[G(0x172)]+G(0x15d));const g=await this[G(0x156)](Q,A);return{'token':g['token'],'contextName':g['name']};})[F(0x161)](()=>{const H=F;if(p)p['ui'][H(0x178)]();}),X=Q[F(0x125)]??l??F(0x14f)+new Date()[F(0x14d)]();return{'name':X,'token':P,'host':t,'override':Q[F(0x15c)]??![]};}[a2T(0x173)]=Q=>{const v=a2T;let A=Q;return!/^https?:\/\//i[v(0x186)](A)&&(A=v(0x152)+A),A=A[v(0x13a)](/\/+$/,''),A;};async[a2T(0x156)](Q,A){const K=a2T,N=this[K(0x14b)][K(0x134)][K(0x132)]()['contexts'],{name:t,token:a,host:p,override:P}=await A['loginPrompt'](Q,N);return{'name':t,'token':a,'host':p,'override':P};}[a2T(0x198)](){const W=a2T,Q=this[W(0x14b)]['contextProvider'][W(0x127)]();if(Q===undefined)throw new Error(W(0x126));return Q;}async[a2T(0x191)](Q){const o=a2T;if(!this[o(0x18f)]())throw new Error(o(0x18c));const A=this[o(0x14b)][o(0x134)][o(0x132)]()[o(0x175)][o(0x184)](t=>t[o(0x125)]),N=A['length']>0x4?'search-list':o(0x1ab);return(await a2a[o(0x1a5)]([{'type':N,'name':o(0x125),'message':'Choose\x20the\x20context\x20to\x20'+Q+':','choices':A}]))[o(0x125)];}[a2T(0x18f)](){const q=a2T;return this[q(0x14b)]['contextProvider'][q(0x132)]()[q(0x175)][q(0x14a)]>0x0;}async[a2T(0x13d)](){const C=a2T;try{const Q=this[C(0x14b)][C(0x134)][C(0x12d)](),A=this['apiClient'][C(0x134)][C(0x141)](),N=Q+C(0x124),t={'Authorization':C(0x165)+A},a=new ProxyAgent(),p=await retry(0x3)(async()=>a2t(N,{'method':C(0x1a7),'signal':AbortSignal[C(0x174)](0xbb8),'headers':t,'agent':a}));if(p['ok'])return!![];return![];}catch(P){return![];}}}
@@ -1 +1 @@
1
- function a3D(){const O=['Project\x20for\x20','action','download','-dir','askForProjectContext','\x20to\x20','s.\x20Please\x20enter\x20a\x20path:','Remote\x20file\x20or\x20directory','111456agMaoN','apiClient','9HJvFpc','\x27\x20to\x20container\x20directory\x20\x27','FILE_DOWNLOAD','remote','contextProvider','localPath','66286bxcTBL','--container\x20--containerId\x20[NAME]','--project\x20--projectId\x20[NAME]','1491040EnRaSb','getTokenScope','logCopyResult','\x20files\x20','getCurrentServiceName','service','\x20(random\x20instance\x20will\x20be\x20chosen\x20if\x20not\x20specified)','upload','alias','askForPath','askForJob','type','Id\x20[NAME]','File\x20and\x20directory\x20upload\x20for\x20Northflank\x20services\x20and\x20jobs.','askForService','--local\x20--localPath\x20[LOCALPATH]','File\x20and\x20directory\x20upload\x20for\x20Northflank\x20job.','Downloaded\x20file\x20\x27','user\x20home','description','\x20directory:\x20\x20\x20\x20\x20northflank\x20','\x20the\x20specified\x20','\x27\x20to\x20local\x20directory\x20\x27','uploadCmd','Local\x20file\x20or\x20directory','\x20single\x20file:\x20\x20\x20northflank\x20','--team\x20--teamId\x20[TEAMID]','--noDefaults','remotePath','slice','job','addCommand','getStandardCopyCommand','279084ssVHiR','Container\x20used\x20to\x20','getCurrentProjectName','option','\x27\x20to\x20\x27','FILE_UPLOAD','Downloaded\x20all\x20directory\x20contents\x20from\x20\x27','from','Team\x20id','181174uxVRNL','33bbWEKj','\x20(random\x20container\x20will\x20be\x20chosen\x20if\x20not\x20specified)','name','757856vJQnyi','ed-file.txt\x0a\x20\x20','prompt','785qrZsSc','\x20is\x20required\x20for\x20','--remote\x20--remotePath\x20[REMOTEPATH]','--instance\x20--instanceName\x20[NAME]','local','ensureRelevantPathIsSet','Uploaded\x20file\x20from\x20\x27','Uploaded\x20all\x20directory\x20contents\x20from\x20\x27','askForTeam','DIRECTORY_UPLOAD','Path\x20is\x20not\x20specified,\x20the\x20','File\x20and\x20directory\x20download\x20for\x20Northflank\x20service.','108hmgYnk','org','downloadCmd','\x20--','8220nUgtqd','Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.','Instance\x20(pod\x20name)\x20used\x20to\x20'];a3D=function(){return O;};return a3D();}const a3M=a3V;(function(D,V){const C=a3V,P=D();while(!![]){try{const z=parseInt(C(0x186))/0x1+parseInt(C(0x162))/0x2*(parseInt(C(0x139))/0x3)+parseInt(C(0x14f))/0x4*(parseInt(C(0x13f))/0x5)+parseInt(C(0x14b))/0x6*(-parseInt(C(0x138))/0x7)+-parseInt(C(0x15a))/0x8+-parseInt(C(0x15c))/0x9*(parseInt(C(0x165))/0xa)+-parseInt(C(0x13c))/0xb;if(z===V)break;else P['push'](P['shift']());}catch(e){P['push'](P['shift']());}}}(a3D,0x418c4));import{ApiClient,CopyType}from'@northflank/js-client';import{assertContextExisting,customUserAgent,getCommand,success}from'../utils.js';import{InquirerHelper}from'../inquirer-helper.js';import{capitalize}from'lodash-es';import a3P from'inquirer';function a3V(D,V){const P=a3D();return a3V=function(z,e){z=z-0x131;let g=P[z];return g;},a3V(D,V);}export class CliFileCopy{[a3M(0x14d)];[a3M(0x17c)];[a3M(0x15b)];['getStandardCopyCommand']=(D,V)=>{const W=a3M,P=capitalize(V),z=V===W(0x16c)?W(0x15f):W(0x143),e=V==='upload'?W(0x177):'current\x20working',g=V===W(0x16c)?'to':W(0x136),b=getCommand(!![])[W(0x13b)]('file')[W(0x178)](P+W(0x168)+g+W(0x17a)+D+'.\x20If\x20the\x20'+z+W(0x149)+e+'\x20directory\x20is\x20used.\x20If\x20the\x20directory\x20for\x20'+z+'Path\x20does\x20not\x20exist,\x20it\x20will\x20be\x20created.\x0aExamples:\x0a\x20\x20'+P+W(0x17e)+V+'\x20'+D+'\x20file\x20--localPath\x20my_directory/my-file.txt\x20--remotePath\x20/home/my-'+V+W(0x13d)+P+W(0x179)+V+'\x20'+D+'\x20file\x20--localPath\x20my_directory\x20--remotePath\x20/home/'+V+W(0x155))[W(0x132)](W(0x164),W(0x152)+V);return this[W(0x15b)][W(0x160)]['getTokenScope']()===W(0x14c)&&b['option'](W(0x17f),W(0x137)),b[W(0x132)]('--'+D+W(0x14e)+D+W(0x171),D['charAt'](0x0)['toUpperCase']()+D[W(0x182)](0x1)+W(0x157)+V+'\x20files')[W(0x132)](W(0x142),W(0x151)+V+W(0x16b))[W(0x132)](W(0x163),W(0x187)+V+W(0x13a))[W(0x132)](W(0x174),W(0x17d))[W(0x132)](W(0x141),W(0x159))[W(0x132)](W(0x180),W(0x150),![]),b;};constructor(D,V){const d=a3M;this[d(0x15b)]=new ApiClient(D,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':V});const P=new InquirerHelper(this['apiClient']);this['downloadCmd']=getCommand()[d(0x13b)](d(0x154))[d(0x16d)]('dl')[d(0x178)]('File\x20and\x20directory\x20download\x20for\x20Northflank\x20services\x20and\x20jobs.'),this[d(0x17c)]=getCommand()[d(0x13b)](d(0x16c))['alias']('ul')[d(0x178)](d(0x172));const z=getCommand()[d(0x13b)](d(0x16a))[d(0x178)](d(0x14a)),e=getCommand()[d(0x13b)]('service')['description']('File\x20and\x20directory\x20upload\x20for\x20Northflank\x20service.'),g=getCommand()[d(0x13b)](d(0x183))[d(0x178)]('File\x20and\x20directory\x20download\x20for\x20Northflank\x20job.'),b=getCommand()['name'](d(0x183))[d(0x178)](d(0x175)),B=l=>{const f=d;return this['getStandardCopyCommand']('service',l)[f(0x153)](async t=>{const T=f,{teamId:i,projectId:s,serviceId:S,containerId:n,instanceName:A,noDefaults:X,quiet:U}=t;assertContextExisting(this['apiClient']);const R=X?undefined:D[T(0x131)](),{projectId:k,teamId:H}=await this[T(0x156)](D,P,s,i,R),G=X?undefined:D[T(0x169)](),o=S||G||await P[T(0x173)](k,H)(),{remotePath:F,localPath:E}=await this[T(0x144)](l,t),J={'teamId':H,'projectId':k,'serviceId':o},x=await this[T(0x15b)][l][T(0x16a)]['files'](J,{'containerName':n,'instanceName':A,'localPath':E,'remotePath':F});this[T(0x167)](x,U);});},h=l=>{const m=d;return this[m(0x185)](m(0x183),l)[m(0x153)](async t=>{const q=m,{projectId:i,teamId:s,jobId:S,instanceName:n,containerId:A,noDefaults:X,quiet:U}=t;assertContextExisting(this[q(0x15b)]);const R=X?undefined:D[q(0x131)](),{projectId:k,teamId:H}=await this[q(0x156)](D,P,i,s,R),G=S||await P[q(0x16f)](k,H)(),{remotePath:o,localPath:F}=await this[q(0x144)](l,t),E={'teamId':H,'projectId':k,'jobId':G},J=await this[q(0x15b)][l][q(0x183)]['files'](E,{'containerName':A,'instanceName':n,'localPath':F,'remotePath':o});this[q(0x167)](J,U);});};z[d(0x184)](B(d(0x154))),g[d(0x184)](h(d(0x154))),e[d(0x184)](B(d(0x16c))),b[d(0x184)](h(d(0x16c))),this[d(0x14d)][d(0x184)](z),this[d(0x14d)][d(0x184)](g),this[d(0x17c)][d(0x184)](e),this[d(0x17c)][d(0x184)](b);}[a3M(0x156)]=async(D,V,P,z,e)=>{const L=a3M,g=D[L(0x166)]()===L(0x14c)?z??await V[L(0x147)]():undefined,b=P||e||await V['askForProject'](g)();return{'teamId':g,'projectId':b};};[a3M(0x167)]=(D,V)=>{const Z=a3M;if(V)return;const {sourceDirectory:P,targetDirectory:z,sourceFile:e,targetFile:g}=D;switch(D[Z(0x170)]){case CopyType['DIRECTORY_DOWNLOAD']:{success(Z(0x135)+P+Z(0x17b)+z+'\x27');break;}case CopyType[Z(0x15e)]:{success(Z(0x176)+P+'/'+e+'\x27\x20to\x20\x27'+z+'/'+g+'\x27');break;}case CopyType[Z(0x148)]:{success(Z(0x146)+P+Z(0x15d)+z+'\x27');break;}case CopyType[Z(0x134)]:{success(Z(0x145)+P+'/'+e+Z(0x133)+z+'/'+g+'\x27');break;}}};['ensureRelevantPathIsSet']=async(D,V)=>{const u=a3M,P=D===u(0x154)&&V[u(0x181)]===undefined?await this[u(0x16e)]('\x27remotePath\x27',u(0x154)):V[u(0x181)],z=D===u(0x16c)&&V[u(0x161)]===undefined?await this[u(0x16e)]('\x27localPath\x27',u(0x16c)):V[u(0x161)];return{'localPath':z,'remotePath':P};};[a3M(0x16e)]=async(D,V)=>{const N=a3M,P=D+N(0x140)+V+N(0x158);return(await a3P[N(0x13e)]([{'type':'input','name':'name','message':P}]))[N(0x13b)];};}
1
+ function a3Q(){const H=['download','File\x20and\x20directory\x20upload\x20for\x20Northflank\x20job.','--local\x20--localPath\x20[LOCALPATH]','2176878pVKNQM','637860ZMITmj','27BRxHJm','askForTeam','File\x20and\x20directory\x20upload\x20for\x20Northflank\x20service.','12UdculW','\x20directory\x20is\x20used.\x20If\x20the\x20directory\x20for\x20','\x20(random\x20container\x20will\x20be\x20chosen\x20if\x20not\x20specified)','Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.','ensureRelevantPathIsSet','input','DIRECTORY_UPLOAD','Uploaded\x20all\x20directory\x20contents\x20from\x20\x27','DIRECTORY_DOWNLOAD','localPath','\x27localPath\x27','askForProjectContext','--project\x20--projectId\x20[NAME]','\x27\x20to\x20\x27','type','\x20file\x20--localPath\x20my_directory\x20--remotePath\x20/home/','\x20is\x20required\x20for\x20','askForJob','logCopyResult','remotePath','getCurrentProjectName','description','Path\x20does\x20not\x20exist,\x20it\x20will\x20be\x20created.\x0aExamples:\x0a\x20\x20','addCommand','\x20directory:\x20\x20\x20\x20\x20northflank\x20','Project\x20for\x20','org','11800PUjHVQ','\x27\x20to\x20container\x20directory\x20\x27','charAt','current\x20working','apiClient','Path\x20is\x20not\x20specified,\x20the\x20','\x20files','\x20files\x20','\x20file\x20--localPath\x20my_directory/my-file.txt\x20--remotePath\x20/home/my-','\x27remotePath\x27','files','--noDefaults','151905bSRoOR','\x20--','File\x20and\x20directory\x20download\x20for\x20Northflank\x20services\x20and\x20jobs.','File\x20and\x20directory\x20download\x20for\x20Northflank\x20job.','file','Local\x20file\x20or\x20directory','--container\x20--containerId\x20[NAME]','prompt','askForPath','--team\x20--teamId\x20[TEAMID]','Downloaded\x20all\x20directory\x20contents\x20from\x20\x27','10551RTIXrF','askForProject','\x20(random\x20instance\x20will\x20be\x20chosen\x20if\x20not\x20specified)','option','\x20the\x20specified\x20','67128CAAZkn','33voVMAL','Container\x20used\x20to\x20','.\x20If\x20the\x20','\x20to\x20','-dir','92WnLoDL','downloadCmd','Team\x20id','from','name','File\x20and\x20directory\x20download\x20for\x20Northflank\x20service.','toUpperCase','getTokenScope','1226744ZWxEhJ','getStandardCopyCommand','40unlaCf','Id\x20[NAME]','FILE_UPLOAD','uploadCmd','user\x20home','service','job','7VTcNQT','\x27\x20to\x20local\x20directory\x20\x27','Instance\x20(pod\x20name)\x20used\x20to\x20','upload'];a3Q=function(){return H;};return a3Q();}function a3A(Q,A){const N=a3Q();return a3A=function(t,a){t=t-0x8d;let p=N[t];return p;},a3A(Q,A);}const a3V=a3A;(function(Q,A){const u=a3A,N=Q();while(!![]){try{const t=-parseInt(u(0xd7))/0x1*(parseInt(u(0xba))/0x2)+-parseInt(u(0xd1))/0x3*(-parseInt(u(0xdc))/0x4)+-parseInt(u(0xe6))/0x5*(-parseInt(u(0xd6))/0x6)+-parseInt(u(0x93))/0x7*(-parseInt(u(0xe4))/0x8)+parseInt(u(0x9c))/0x9*(parseInt(u(0x9b))/0xa)+-parseInt(u(0x9a))/0xb+-parseInt(u(0x9f))/0xc*(parseInt(u(0xc6))/0xd);if(t===A)break;else N['push'](N['shift']());}catch(a){N['push'](N['shift']());}}}(a3Q,0x1b0dd));import{ApiClient,CopyType}from'@northflank/js-client';import{assertContextExisting,customUserAgent,getCommand,success}from'../utils.js';import{InquirerHelper}from'../inquirer-helper.js';import{capitalize}from'lodash-es';import a3N from'inquirer';export class CliFileCopy{['downloadCmd'];['uploadCmd'];[a3V(0xbe)];['getStandardCopyCommand']=(Q,A)=>{const U=a3V,N=capitalize(A),t=A===U(0x96)?'remote':'local',a=A==='upload'?U(0x90):U(0xbd),p=A===U(0x96)?'to':U(0xdf),P=getCommand(!![])['name'](U(0xca))[U(0xb4)](N+U(0xc1)+p+U(0xd5)+Q+U(0xd9)+t+U(0xbf)+a+U(0xa0)+t+U(0xb5)+N+'\x20single\x20file:\x20\x20\x20northflank\x20'+A+'\x20'+Q+U(0xc2)+A+'ed-file.txt\x0a\x20\x20'+N+U(0xb7)+A+'\x20'+Q+U(0xae)+A+U(0xdb))[U(0xd4)](U(0xab),U(0xb8)+A);return this[U(0xbe)]['contextProvider'][U(0xe3)]()==='org'&&P[U(0xd4)](U(0xcf),U(0xde)),P[U(0xd4)]('--'+Q+U(0xc7)+Q+U(0x8d),Q[U(0xbc)](0x0)[U(0xe2)]()+Q['slice'](0x1)+U(0xda)+A+U(0xc0))[U(0xd4)]('--instance\x20--instanceName\x20[NAME]',U(0x95)+A+U(0xd3))[U(0xd4)](U(0xcc),U(0xd8)+A+U(0xa1))['option'](U(0x99),U(0xcb))[U(0xd4)]('--remote\x20--remotePath\x20[REMOTEPATH]','Remote\x20file\x20or\x20directory')['option'](U(0xc5),U(0xa2),![]),P;};constructor(Q,A){const L=a3V;this[L(0xbe)]=new ApiClient(Q,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':A});const N=new InquirerHelper(this[L(0xbe)]);this[L(0xdd)]=getCommand()['name'](L(0x97))['alias']('dl')['description'](L(0xc8)),this[L(0x8f)]=getCommand()['name'](L(0x96))['alias']('ul')[L(0xb4)]('File\x20and\x20directory\x20upload\x20for\x20Northflank\x20services\x20and\x20jobs.');const t=getCommand()[L(0xe0)]('service')[L(0xb4)](L(0xe1)),a=getCommand()[L(0xe0)](L(0x91))[L(0xb4)](L(0x9e)),p=getCommand()[L(0xe0)](L(0x92))[L(0xb4)](L(0xc9)),P=getCommand()[L(0xe0)](L(0x92))['description'](L(0x98)),l=S=>{const h=L;return this[h(0xe5)](h(0x91),S)['action'](async g=>{const O=h,{teamId:d,projectId:Z,serviceId:M,containerId:k,instanceName:B,noDefaults:w,quiet:x}=g;assertContextExisting(this[O(0xbe)]);const Y=w?undefined:Q['getCurrentProjectName'](),{projectId:E,teamId:D}=await this['askForProjectContext'](Q,N,Z,d,Y),s=w?undefined:Q['getCurrentServiceName'](),i=M||s||await N['askForService'](E,D)(),{remotePath:T,localPath:m}=await this[O(0xa3)](S,g),n={'teamId':D,'projectId':E,'serviceId':i},R=await this[O(0xbe)][S]['service'][O(0xc4)](n,{'containerName':k,'instanceName':B,'localPath':m,'remotePath':T});this[O(0xb1)](R,x);});},X=S=>{const I=L;return this[I(0xe5)](I(0x92),S)['action'](async g=>{const z=I,{projectId:d,teamId:Z,jobId:M,instanceName:k,containerId:B,noDefaults:w,quiet:x}=g;assertContextExisting(this[z(0xbe)]);const Y=w?undefined:Q[z(0xb3)](),{projectId:E,teamId:D}=await this[z(0xaa)](Q,N,d,Z,Y),s=M||await N[z(0xb0)](E,D)(),{remotePath:i,localPath:T}=await this[z(0xa3)](S,g),m={'teamId':D,'projectId':E,'jobId':s},n=await this[z(0xbe)][S][z(0x92)][z(0xc4)](m,{'containerName':B,'instanceName':k,'localPath':T,'remotePath':i});this[z(0xb1)](n,x);});};t[L(0xb6)](l(L(0x97))),p[L(0xb6)](X(L(0x97))),a[L(0xb6)](l('upload')),P[L(0xb6)](X(L(0x96))),this['downloadCmd']['addCommand'](t),this[L(0xdd)][L(0xb6)](p),this[L(0x8f)][L(0xb6)](a),this[L(0x8f)][L(0xb6)](P);}['askForProjectContext']=async(Q,A,N,t,a)=>{const F=a3V,p=Q[F(0xe3)]()===F(0xb9)?t??await A[F(0x9d)]()():undefined,P=N||a||await A[F(0xd2)](p)();return{'teamId':p,'projectId':P};};[a3V(0xb1)]=(Q,A)=>{const f=a3V;if(A)return;const {sourceDirectory:N,targetDirectory:t,sourceFile:a,targetFile:p}=Q;switch(Q[f(0xad)]){case CopyType[f(0xa7)]:{success(f(0xd0)+N+f(0x94)+t+'\x27');break;}case CopyType['FILE_DOWNLOAD']:{success('Downloaded\x20file\x20\x27'+N+'/'+a+f(0xac)+t+'/'+p+'\x27');break;}case CopyType[f(0xa5)]:{success(f(0xa6)+N+f(0xbb)+t+'\x27');break;}case CopyType[f(0x8e)]:{success('Uploaded\x20file\x20from\x20\x27'+N+'/'+a+'\x27\x20to\x20\x27'+t+'/'+p+'\x27');break;}}};[a3V(0xa3)]=async(Q,A)=>{const y=a3V,N=Q===y(0x97)&&A['remotePath']===undefined?await this[y(0xce)](y(0xc3),'download'):A[y(0xb2)],t=Q===y(0x96)&&A[y(0xa8)]===undefined?await this[y(0xce)](y(0xa9),y(0x96)):A[y(0xa8)];return{'localPath':t,'remotePath':N};};[a3V(0xce)]=async(Q,A)=>{const G=a3V,N=Q+G(0xaf)+A+'s.\x20Please\x20enter\x20a\x20path:';return(await a3N[G(0xcd)]([{'type':G(0xa4),'name':G(0xe0),'message':N}]))[G(0xe0)];};}