@northflank/cli 0.11.2 → 0.11.4

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 a0l(o,l){const E=a0o();return a0l=function(y,N){y=y-0x100;let Z=E[y];return Z;},a0l(o,l);}(function(o,l){const n=a0l,E=o();while(!![]){try{const y=parseInt(n(0x116))/0x1*(-parseInt(n(0x113))/0x2)+-parseInt(n(0x10b))/0x3*(parseInt(n(0x10f))/0x4)+-parseInt(n(0x11e))/0x5*(-parseInt(n(0x130))/0x6)+parseInt(n(0x124))/0x7*(-parseInt(n(0x133))/0x8)+parseInt(n(0x102))/0x9*(parseInt(n(0x117))/0xa)+-parseInt(n(0x11d))/0xb+parseInt(n(0x109))/0xc;if(y===l)break;else E['push'](E['shift']());}catch(N){E['push'](E['shift']());}}}(a0o,0x1f12c));import{warning}from'./utils.js';const defaultPaginationPageSize=0x64,getProjects=(o,l)=>async E=>{const H=a0l,y=await o['list']['projects']({...l?{'parameters':{'teamId':l}}:{},'options':{'per_page':defaultPaginationPageSize,'cursor':E?.[H(0x12f)]}});return{'elements':y[H(0x129)]['projects'][H(0x101)](N=>N['id']),'nextPageCursor':y[H(0x11f)]?.[H(0x11a)]};},getServices=(o,l,E)=>async y=>{const h=a0l,N=await o[h(0x107)]['services']({'parameters':{'projectId':l,'teamId':E},'options':{'per_page':defaultPaginationPageSize,'cursor':y?.[h(0x12f)]}});return{'elements':N[h(0x129)][h(0x103)][h(0x101)](Z=>Z['id']),'nextPageCursor':N[h(0x11f)]?.[h(0x11a)]};},getAddons=(o,l,E)=>async y=>{const u=a0l,N=await o[u(0x107)][u(0x131)]({'parameters':{'teamId':E,'projectId':l},'options':{'per_page':defaultPaginationPageSize,'cursor':y?.[u(0x12f)]}});return{'elements':N['data']['addons']['map'](Z=>Z['id']),'nextPageCursor':N[u(0x11f)]?.[u(0x11a)]};},getAddonBackups=(o,l,E,y)=>async N=>{const S=a0l,Z=await o['get'][S(0x10e)]['backups']({'parameters':{'teamId':y,'projectId':l,'addonId':E},'options':{'per_page':defaultPaginationPageSize,'cursor':N?.[S(0x12f)]}});return{'elements':Z[S(0x129)]['backups']['map'](A=>A['id']),'nextPageCursor':Z[S(0x11f)]?.[S(0x11a)]};};export async function fetchResourceList(o,l,E,y,N,Z){const c=a0l,A=undefined,X=N?.['teamId'];try{if(o===c(0x121)){const m=await l[c(0x107)]['plans']({}),L=m['data']['plans'][c(0x101)](F=>F?.[c(0x105)]??F?.['id']);return{'choices':L,'defaultValue':A};}if(o===c(0x11c)&&!E?.[c(0x119)](c(0x10c))){const F=await l[c(0x107)]['regions']({}),b=F['data'][c(0x126)][c(0x101)](q=>q?.[c(0x105)]??q?.['id']);return{'choices':b,'defaultValue':A};}if(o===c(0x10a)){const q=await getProjects(l,X),{elements:V,nextPageCursor:v}=await q();return{'choices':V,'defaultValue':A,'pagination':{'nextPageCursor':v,'loadMore':q}};}if(o===c(0x114)){const w=await l[c(0x107)][c(0x10d)]({...X?{'parameters':{'teamId':X}}:{}}),i=w[c(0x129)]['credentials']['map'](f=>f['id']);return{'choices':i,'defaultValue':A};}const g=N?.[c(0x10a)],k=o==='serviceId'||o==='id'&&Z?.[c(0x119)](c(0x120));if(g!==undefined&&k){const f=await getServices(l,g,X),{elements:a,nextPageCursor:T}=await f();return{'choices':a,'defaultValue':A,'pagination':{'nextPageCursor':T,'loadMore':f}};}const I=E?.[c(0x119)]('addon');if(I){const M=async B=>{const t=c,G=await l['get'][t(0x10e)][t(0x108)]({});return G[t(0x129)][t(0x100)]?.['map'](K=>K[t(0x112)])[t(0x134)](K=>K['type']===B);};if(o===c(0x112)){const B=await l[c(0x12a)]['addon'][c(0x108)]({}),G=B[c(0x129)][c(0x100)]?.[c(0x101)](K=>K[c(0x112)]);return{'choices':G,'defaultValue':A};}if(o===c(0x12c)&&y?.['type']!==undefined){const K=(await M(y[c(0x112)]))?.['versions'],s=K!==undefined?[c(0x104),...K]:undefined;return{'choices':s,'defaultValue':A};}if(o===c(0x11b)&&y?.[c(0x112)]!==undefined){const x=(await M(y[c(0x112)]))?.['resources']?.[c(0x11b)];return{'choices':x?.[c(0x115)],'defaultValue':x?.[c(0x12e)]};}if(o===c(0x128)&&y?.[c(0x112)]!==undefined){const Y=(await M(y[c(0x112)]))?.['resources']?.[c(0x128)];return{'choices':Y?.[c(0x115)],'defaultValue':Y?.[c(0x12e)]};}}if(o==='addonId'&&N?.[c(0x10a)]!==undefined){const p=await getAddons(l,N?.[c(0x10a)],X),{elements:r,nextPageCursor:O}=await p();return{'choices':r,'defaultValue':A,'pagination':{'nextPageCursor':O,'loadMore':p}};}if(o===c(0x125)&&g!==undefined&&y?.[c(0x118)]?.[c(0x111)]!==undefined){const U=getAddonBackups(l,g,y?.[c(0x118)]?.[c(0x111)],X),{elements:z,nextPageCursor:Q}=await U();return{'choices':z,'defaultValue':A,'pagination':{'nextPageCursor':Q,'loadMore':U}};}const J=N?.[c(0x111)]??y?.[c(0x110)]?.[c(0x111)];if(E?.['join']('')===c(0x106)&&o===c(0x12c)&&g!==undefined&&J!==undefined){const {upgradeTo:C}=(await l['get'][c(0x10e)][c(0x12c)]({'parameters':{'teamId':X,'addonId':J,'projectId':g}}))['data'];if(C===undefined||C[c(0x12b)]<=0x0){warning(c(0x122));throw new Error();}return{'choices':C[c(0x101)](D=>D[c(0x12c)]),'defaultValue':A};}if(o===c(0x123)){const D=await l['list']['templates']({...X?{'parameters':{'teamId':X}}:{}}),d=D[c(0x129)]['templates'][c(0x101)](j=>j?.['id']);return{'choices':d,'defaultValue':A};}if((E?.[c(0x119)]('secretLink')||E?.['includes'](c(0x132)))&&o==='keyName'&&J!==undefined&&g!==undefined){const j=(await l[c(0x12a)][c(0x10e)][c(0x114)]({'parameters':{'addonId':J,'projectId':g,'teamId':X}}))['data'];return{'choices':[...Object[c(0x12d)](j?.[c(0x127)])??[],...Object[c(0x12d)](j?.['secrets'])??[]]};}}catch(P){}return{'choices':undefined,'defaultValue':A};}function a0o(){const R=['8270EgfsyL','source','includes','cursor','storage','region','2621223dfYoLt','295dWOdgp','pagination','owningObject','deploymentPlan','No\x20available\x20versions\x20to\x20upgrade\x20to.','templateId','1183763SgKNwL','backupId','regions','envs','replicas','data','get','length','version','keys','default','nextPageCursor','23802bkUxnG','addons','secret','8jGAyKW','find','addonTypes','map','657SxRNKe','services','latest','internalId','updateaddonversion','list','types','6045108jOnrbO','projectId','636666UsYPbc','logSink','registryCredentials','addon','4bgDXzW','addonDependencies','addonId','type','2WreyUU','credentials','options','51283WTlNJI'];a0o=function(){return R;};return a0o();}
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 a1o9=a1l;(function(o,l){const o8=a1l,E=o();while(!![]){try{const y=-parseInt(o8(0x189))/0x1+-parseInt(o8(0x1cc))/0x2*(-parseInt(o8(0x18e))/0x3)+parseInt(o8(0x1c2))/0x4+parseInt(o8(0x19d))/0x5*(-parseInt(o8(0x16c))/0x6)+-parseInt(o8(0x235))/0x7+-parseInt(o8(0x193))/0x8*(parseInt(o8(0x200))/0x9)+parseInt(o8(0x17e))/0xa;if(y===l)break;else E['push'](E['shift']());}catch(N){E['push'](E['shift']());}}}(a1o,0xe57b9));import{ApiClient,ApiClientFileContextProvider,GetApiEndpointPaginated}from'@northflank/js-client';import{Command}from'commander';function a1o(){const ow=['34425610mqGHfn','utf-8','Documentation:\x20','custom-columns=','\x20Northflank\x20resources','addons','downloadCmd','askForService','askForClusterId','join','plans','1678740IELLVZ','getCurrentServiceName','description','askForSecret','getMetricsCommand','477yWPKfo','backupId','base','aliases','italic','168GOvzxM','count',',\x20-','askForJobRun','credential','body','../package.json','askGeneric','credentialId','statusText','235SeLstU','trim','teamId','hasNextPage','setPathVars','.yaml','subdomain','stdout','projectId','secrets','job','resource','alias','call','volume','default','\x20--','askForProject','askForCredentials','adn','getCurrentContext','sshCmd','Resource\x20was\x20not\x20deleted.','cursor','serviceId','query','toString','getLogsCommand','getTokenScope','Options\x20\x27loadAll\x27\x20can\x20not\x20be\x20combined\x20with\x20\x27page\x27\x20or\x20\x27cursor\x27','skipValidation','split','addCommand','template','Get\x20information\x20about\x20Northflank\x20','rgn','message','4680036jxofyI','askForBuild','endsWith','domain','entries','\x0a\x09details\x20:','isArray','org','templateId','getOwnPropertyNames','2386YJCvDM','service','yaml','jobId','askForTemplateRun','repos','domainId','defaults','\x20properties','filter','askForTag','required','regions','helpCommand','api.','logs','branches','nonInteractiveEndpoint','paginationArgs','opt','branch','toUpperCase','VERBOSE:\x20Using\x20endpoint\x20->\x20','commands','toLowerCase','templates','tpl','secretId','clusterId','tag','update','enablePositionalOptions','Expecting\x20resource\x20input\x20with\x20\x27--input\x27\x20or\x20\x27--file\x27\x20argument','repository','pagination','-v,\x20--version','uploadCmd','pipelineId','askForDomain','url','File\x20to\x20load\x20resource\x20json\x20from','includes','JSON-formatted\x20resource\x20definition,\x20takes\x20precedence\x20over\x20\x22--file\x22','projects','volumeId','-f,\x20--file\x20<file-path>','brn','map','credentials','yml','subdomainId','json','22491UAwrzB','deleteWarningPrompt','/docs/v1/api/','endpoints','some','addonId','moveCursor','Print\x20the\x20current\x20version\x20of\x20the\x20Northflank\x20cli','\x0a>\x20Token\x20permissions\x20required:\x20','=>\x20running\x20command\x20with:\x20','method','subdomainPath','Failed\x20to\x20validate\x20input\x20(incorrect\x20format):\x20','scrt','VERBOSE:\x20Request\x20body\x20->\x20','askForVolume','volumes','-i,\x20--input\x20<resource-def>','logSinkId','plan','OPTIONAL:\x20','login','sort','list','request','(HTTP\x20status\x20code:\x20','templateRunId','askForLogSink','file','project','concat','help\x20[command]','loadAll','bind','noDefaults','existsSync','argv','inv','underline','askForAddon','_skip','log','length',',\x20NF\x20error\x20id:\x20','Unknown\x20input\x20file\x20type:\x20','contextProvider','askForTeam','clearLine','replace','Update\x20Northflank\x20','backup-destinations','resourceTagId','invoices','4474092tGOuHd','runs','getCurrentProjectName','region','Unknown\x20input\x20format.\x20Not\x20valid\x20json\x20and\x20not\x20valid\x20yaml.','getCurrentJobName','askForSubdomain','after','version','runId','isPaginatedEndpoint','boolean','force','buildId','there\x20are\x20more\x20rows,\x20load?','requiredPermissions','docsTagsPath','quiet','VERBOSE:\x20HTTP_PROXY\x20or\x20HTTPS_PROXY\x20environment\x20variable\x20set:\x20tunnelling\x20traffic\x20through\x20HTTP\x20proxy.','forEach','find','data','Manage\x20your\x20Northflank\x20resources\x20from\x20the\x20command\x20line','error','rawResponse','vol','parse','verbose','repo','option','type','action','portFwdCmd','backup-destination','addon','Display\x20help\x20for\x20command','parseAsync','readFileSync','190458XsQkQw','backupDestinationId','cred','output','jobs','keys','svc','page','pop','services','Northflank\x20cli\x20version:\x20','stringify','load','name','path','askForBackupDestination','backups','get'];a1o=function(){return ow;};return a1o();}import a1E from'fs';import a1y from'chalk';import{CliContext}from'./context/contextCommands.js';import{agent,assertContextExisting,asyncSequential,checkUpdate,customUserAgent,error,getCommand,proxyEnvsSet,warning}from'./utils.js';import*as a1N 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 a1Z from'js-yaml';import{readFileSync}from'fs';import{fileURLToPath}from'url';import{dirname,join}from'path';function a1l(o,l){const E=a1o();return a1l=function(y,N){y=y-0x16a;let Z=E[y];return Z;},a1l(o,l);}const __filename=fileURLToPath(import.meta['url']),__dirname=dirname(__filename),pgk=JSON[a1o9(0x24f)](readFileSync(join(__dirname,a1o9(0x199)),a1o9(0x17f)));export const getProgram=o=>{const oo=a1o9,l=new Command('northflank');l[oo(0x18b)](oo(0x24b)),l[oo(0x1eb)](!![]),l[oo(0x23d)](oo(0x176)+a1y[oo(0x226)](pgk[oo(0x23d)]),oo(0x1ef),oo(0x207));const E=new ApiClient(o,{'throwErrorOnHttpErrorCode':![],'customUserAgent':customUserAgent,'agent':agent}),y=new CliContext(E,agent),N=new CliPortForward(o,agent),Z=new CliExec(o,agent),A=new CliSsh(o,agent),X=new CliFileCopy(o,agent),g=new CliLogs(o,agent),k=new CliMetrics(o,agent);return l['addCommand'](N[oo(0x255)]),l[oo(0x1bd)](Z['execCmd']),l['addCommand'](A[oo(0x1b2)]),l[oo(0x1bd)](X[oo(0x184)]),l[oo(0x1bd)](X[oo(0x1f0)]),l['addCommand'](y[oo(0x215)]),l[oo(0x1bd)](y['contexts']),generateCommands(E,E[oo(0x203)],l,g,k),l[oo(0x1bd)](getCommandOverview(l)),l[oo(0x1d9)](oo(0x21f),oo(0x258)),l['helpOption'](undefined,oo(0x258)),l;};((async()=>{const ol=a1o9;try{const o=new ApiClientFileContextProvider();await checkUpdate(o);const l=getProgram(o);await l[ol(0x16a)](process[ol(0x224)]);}catch(E){error('Error\x20occured\x20while\x20trying\x20to\x20run\x20command,\x20error:\x20'+E[ol(0x1c1)]),process[ol(0x224)][ol(0x249)](y=>y==='--verbose')&&console['log'](E),process['exitCode']=0x1;}})());function isListCommand(o){const oE=a1o9,l=[['get',oE(0x257),oE(0x17c)],[oE(0x17d),oE(0x1a7),oE(0x236)]];return o[oE(0x249)](E=>E===oE(0x217))||l[oE(0x204)](E=>isEqual(o,E));}function generateCommands(o,l,E,y,N,Z=a1N[a1o9(0x1d3)],A=[]){const oy=a1o9,X=new InquirerHelper(new ApiClient(o[oy(0x22d)],{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':agent}));function g(m,L){const oN=oy;return m[oN(0x1d7)]!==![]&&L===undefined;}function k(m,L){const oZ=oy,{opt:F,name:b}=m,q=F[oZ(0x1ac)],V=g(F,q),v=M=>M[oZ(0x22a)]>0x1?'--'+M:'-'+M,w=F?.[oZ(0x1a9)],i=w?Array[oZ(0x1c8)](w)?'-'+w?.[oZ(0x1fb)](M=>v(M))[oZ(0x187)](oZ(0x195))+',':''+v(w):'',f=V?'':oZ(0x214),a=typeof F['type']==='boolean'||F[oZ(0x253)]===oZ(0x240)?i+'\x20--'+b:i+oZ(0x1ad)+b+'\x20<'+b[oZ(0x1e1)]()+'>',T=f+F[oZ(0x18b)];L[oZ(0x252)](a[oZ(0x19e)](),T,q);}function I(m,L){const oA=oy;if(L[oA(0x1e3)]['some'](F=>F[oA(0x179)]()===oA(0x1db)))return;isEqual(m,[oA(0x17d),'service'])&&(L['addCommand'](y[oA(0x1b8)](oA(0x1cd))),L[oA(0x1bd)](N[oA(0x18d)](oA(0x1cd))),L[oA(0x1bd)](y[oA(0x1b8)]('service',!![])),L[oA(0x1bd)](N['getMetricsCommand'](oA(0x1cd),!![]))),isEqual(m,['get',oA(0x1a7)])&&(L[oA(0x1bd)](y[oA(0x1b8)](oA(0x1a7))),L[oA(0x1bd)](N[oA(0x18d)]('job')),L[oA(0x1bd)](y[oA(0x1b8)](oA(0x1a7),!![])),L[oA(0x1bd)](N[oA(0x18d)](oA(0x1a7),!![]))),isEqual(m,[oA(0x17d),oA(0x257)])&&(L['addCommand'](y['getLogsCommand'](oA(0x257))),L['addCommand'](N[oA(0x18d)]('addon'))),isEqual(m,[oA(0x17d),oA(0x257),'backup'])&&L[oA(0x1bd)](y[oA(0x1b8)](oA(0x257),![],!![])),isEqual(m,['get',oA(0x257),'restores'])&&L['addCommand'](y[oA(0x1b8)](oA(0x257),![],!![],!![]));}return Object[oy(0x1cb)](Z)[oy(0x248)](m=>{const oX=oy,L=l[m],F=Z[m],b=A[oX(0x21e)]([m]),q=o[oX(0x22d)][oX(0x1b9)]();function V(K,s){const og=oX,x=Object['getOwnPropertyNames'](K||{});x[og(0x1fb)](Y=>{return{'name':Y,'opt':K[Y]};})[og(0x216)]((Y,p)=>!g(Y[og(0x1df)])?!g(p[og(0x1df)])?0x0:0x1:-0x1)[og(0x248)](Y=>{k(Y,s);});}function v(K,s){const ok=oX,x=[[ok(0x21d),ok(0x1f7),'prj'],['service',ok(0x175),ok(0x172)],[ok(0x1fc),ok(0x197),ok(0x16e)],[ok(0x257),ok(0x183),ok(0x1b0)],['job',ok(0x170)],[ok(0x213),ok(0x188),'pln'],[ok(0x238),ok(0x1d8),ok(0x1c0)],[ok(0x1c5),'domains','dmn'],['secret',ok(0x1a6),ok(0x20d)],[ok(0x210),ok(0x1ab),ok(0x24e)],[ok(0x1dc),ok(0x1e0),ok(0x1fa)],['invoice',ok(0x234),ok(0x225)],[ok(0x1be),ok(0x1e5),ok(0x1e6)],[ok(0x1d1),ok(0x1ed),'repositories',ok(0x251)],[ok(0x256),ok(0x232)],[ok(0x1e9),'tags']],Y=x['find'](p=>p[ok(0x1f5)](s));if(Y!==undefined)K[ok(0x191)](Y[ok(0x1d5)](p=>p!==s));}async function w(K){const oI=oX,s={},{contextProvider:x}=o,Y=b[oI(0x1f5)]('delete'),p=K[oI(0x222)]===!![];async function r(O,U,z,Q,C){const oJ=oI,D=K?.[O];if(C!==undefined&&C===D)return;if(Q||has(F[oJ(0x1df)]?.[oJ(0x17a)]??{},O)){const d=!p&&!Y&&z?z():undefined,j=D||d||await U();j!==undefined&&set(s,O,j);}}const e=Object[oI(0x1c6)](F[oI(0x1df)]?.[oI(0x17a)]??{});return F['opt']?.['teamScoped']&&q===oI(0x1c9)&&!e[oI(0x204)](([O])=>O===oI(0x19f))&&await r(oI(0x19f),X[oI(0x22e)](!![])[oI(0x221)](X),undefined,!![],oI(0x228)),await asyncSequential(e,async([O,U])=>{const om=oI,z=s?.[om(0x1a5)],Q=s?.[om(0x19f)],C=s?.[om(0x1ca)];switch(O){case om(0x19f):return await r(om(0x19f),X[om(0x22e)](!![])[om(0x221)](X),undefined,![],om(0x228));case'projectId':return await r(om(0x1a5),X[om(0x1ae)](Q)['bind'](X),x[om(0x237)][om(0x221)](x));case om(0x1b5):return await r('serviceId',X[om(0x185)](z,Q)[om(0x221)](X),x[om(0x18a)][om(0x221)](x));case'addonId':return await r(om(0x205),X[om(0x227)](z,Q)[om(0x221)](X));case om(0x1cf):return await r('jobId',X['askForJob'](z,Q)[om(0x221)](X),x[om(0x23a)][om(0x221)](x));case'runId':return await r(om(0x23e),X[om(0x196)](s[om(0x1cf)],z,![],Q)[om(0x221)](X));case om(0x1e7):return await r(om(0x1e7),X[om(0x18c)](z,Q)['bind'](X));case'domain':case om(0x1d2):return await r(om(0x1c5),X[om(0x1f2)](Q)['bind'](X));case om(0x19b):return await r('credentialId',X[om(0x1af)](Q)[om(0x221)](X));case om(0x1f8):return await r(om(0x1f8),X[om(0x20f)](z,Q)['bind'](X));case'subdomain':return await r(om(0x1a3),X[om(0x23b)](s[om(0x1c5)],Q)[om(0x221)](X));case'subdomainId':return await r(om(0x1fe),X[om(0x23b)](s[om(0x1d2)],Q)['bind'](X));case om(0x20b):return await r(om(0x20b),X['askForSubdomainPath'](s['domain'],s[om(0x1a3)]??s['subdomainId'],Q)[om(0x221)](X));case om(0x18f):return await r(om(0x18f),X['askForAddonBackup'](z,s['addonId'],Q)['bind'](X));case'buildId':return await r(om(0x242),X[om(0x1c3)](z,s['serviceId'],s[om(0x1cf)],Q)[om(0x221)](X));case om(0x1ca):return await r(om(0x1ca),X['askForTemplate'](Q)['bind'](X));case om(0x21a):return await r('templateRunId',X[om(0x1d0)](C,Q)['bind'](X));case'logSinkId':return await r(om(0x212),X[om(0x21b)](Q)['bind'](X));case om(0x1f1):return await r(om(0x1f1),X['askForPipeline'](z,Q)[om(0x221)](X));case'resourceTagId':return await r(om(0x233),X[om(0x1d6)](Q)[om(0x221)](X));case om(0x16d):return await r(om(0x16d),X[om(0x17b)](Q)[om(0x221)](X));case om(0x1e8):return await r('clusterId',X[om(0x186)](Q)[om(0x221)](X));default:return await r(O,X[om(0x19a)](O,U?.['description'])[om(0x221)](X));}}),s;}async function i(K){const oL=oX,s={},x=F[oL(0x1df)]?.[oL(0x23f)]?a1N[oL(0x1de)]:{},Y={...F[oL(0x1df)]?.[oL(0x1b6)]??{},...x},p=Object['keys'](Y)[oL(0x1d5)](r=>r!==oL(0x220));return await asyncSequential(p,async r=>{if(K[r]!==undefined)return set(s,r,K[r]);}),s;}function f(){const oF=oX;switch(b[0x0]){case oF(0x17d):return oF(0x1bf)+(b[0x1]||oF(0x1a8))+'s';case oF(0x1ea):return oF(0x231)+(b[0x1]||oF(0x1a8))+oF(0x1d4);default:return upperFirst(m)+oF(0x182);}}function a(K,s){const ob=oX;if(!s){const Q=getCommand()['name'](kebabCase(m))['description'](f());return v(Q,m),Q;}const x=K?.[ob(0x244)]?a1y['italic'](ob(0x208)+K['requiredPermissions']):'',Y=o[ob(0x22d)][ob(0x1b1)](),p=Y!==undefined&&F?.[ob(0x1df)]?.[ob(0x245)]!==undefined,r=Y?.['host']['replace'](ob(0x1da),''),e=p?ob(0x180)+r+ob(0x202)+F?.[ob(0x1df)]?.['docsTagsPath']:'',O=K?.[ob(0x18b)]||'',U=getCommand(!![])[ob(0x179)](kebabCase(m))[ob(0x18b)](O)['addHelpText'](ob(0x23c),[x,e][ob(0x187)]('\x0a'));v(U,m);(F[ob(0x1df)]?.['body']||F[ob(0x1df)]?.[ob(0x1dd)])&&(U['option'](ob(0x1f9),ob(0x1f4)),U['option'](ob(0x211),ob(0x1f6)));V(F[ob(0x1df)]?.[ob(0x17a)],U),V(F[ob(0x1df)]?.[ob(0x1b6)],U);const z=F['opt']?.[ob(0x23f)];return z&&V(a1N['paginationArgs'],U),V(F[ob(0x1df)]?.[ob(0x190)],U),U[ob(0x254)](async()=>{const oq=ob;assertContextExisting(o);const C=U['opts']();C?.[oq(0x250)]&&proxyEnvsSet&&warning(oq(0x247));const D=C[oq(0x173)]!==undefined||C[oq(0x1b4)]!==undefined;if(C[oq(0x220)]===!![]&&D)throw new Error(oq(0x1ba));const d=C?.[oq(0x16f)],j=d===oq(0x1ff),P=d===oq(0x1ce)||d==='yml',n=await w(C);X[oq(0x1a1)](n);const H=await i(C),h=Object[oq(0x171)](F[oq(0x1df)]?.[oq(0x17a)]??{})[oq(0x1fb)](R=>R+'='+a1y['green'](n[R]))[oq(0x187)](',\x20');if(h[oq(0x22a)]>0x0&&!j&&!P){const R=oq(0x209)+h;console[oq(0x229)](R);}const u=F[oq(0x1df)]?.[oq(0x198)]||F[oq(0x1df)]?.[oq(0x1dd)]?await J(C,F,b):undefined;if(!C[oq(0x241)]&&b[oq(0x1f5)]('delete')&&!await X[oq(0x201)]()){warning(oq(0x1b3));return;}const S=z&&(C[oq(0x220)]||(C[oq(0x16f)]===oq(0x1ff)||C[oq(0x16f)]===oq(0x1ce))&&!D);let c=S&&L instanceof GetApiEndpointPaginated?await L['all']({'parameters':n,'options':H,'data':u}):await L[oq(0x1aa)]({'parameters':n,'options':{...H},'data':u});if(C?.[oq(0x250)]){const W=c[oq(0x218)];console[oq(0x229)](oq(0x1e2)+W[oq(0x20a)]['toUpperCase']()+':'+W[oq(0x1f3)]),u!==undefined&&console[oq(0x229)](oq(0x20e)+a1y[oq(0x192)](JSON[oq(0x177)](u)));}if(c['error']){const {details:o0,id:o1,message:o2,status:o3}=c[oq(0x24c)],o4=o0?oq(0x1c7)+JSON[oq(0x177)](o0):'',o5=o1?oq(0x22b)+o1:'',o6=oq(0x219)+o3+o5+')';throw new Error('API\x20request\x20failed\x0a\x09Message:\x20'+o2+'\x20'+o6+o4);}let t=0x0;printCallResult(C,j,c[oq(0x24a)],P,b,d,![],t,c['rawResponse'][oq(0x19c)]);if(!C[oq(0x246)]&&!S&&!D&&c[oq(0x1ee)]?.[oq(0x1a0)])while(c[oq(0x1ee)]?.[oq(0x1a0)]){const o7=await X['askConfirm'](oq(0x243));if(o7)process[oq(0x1a4)][oq(0x206)](0x0,-0x1),process[oq(0x1a4)][oq(0x22f)](0x1),t+=c['pagination'][oq(0x194)],c=await c[oq(0x1ee)]['getNextPage'](),printCallResult(C,j,c[oq(0x24a)],P,b,d,!![],t,c[oq(0x24d)][oq(0x19c)]);else return;}}),U;}const T=has(F,'opt'),M=L,B=a(M,T);I(b,B),E[oX(0x1bd)](B);const G=omit(F,oX(0x1df));Object['keys'](G)[oX(0x22a)]>0x0&&generateCommands(o,L,B,y,N,G,b);});async function J(m,L,F){const oV=oy,{input:b,file:q}=m;if(b!==undefined)try{return JSON[oV(0x24f)](b);}catch(V){try{return a1Z[oV(0x178)](b);}catch(v){throw new Error(oV(0x239));}}if(q!==undefined){if(!a1E[oV(0x223)](q))throw new Error('File\x20does\x20not\x20exist:\x20'+q);const w=a1E[oV(0x16b)](q)[oV(0x1b7)]();let i;try{if(isString(w)){if(m[oV(0x21c)]['endsWith']('.json'))i=JSON[oV(0x24f)](w);else{if(m[oV(0x21c)][oV(0x1c4)](oV(0x1a2))||m['file'][oV(0x1c4)](oV(0x1fd)))i=a1Z[oV(0x178)](w);else throw new Error(oV(0x22c)+m['file'][oV(0x1bc)]('.')[oV(0x174)]());}}else i=w;return i;}catch(f){throw new Error(oV(0x20c)+f[oV(0x1c1)]);}}if(L?.[oV(0x1df)]?.[oV(0x1dd)])throw new Error(oV(0x1ec));return await X['retrievePayloadViaInteractiveCli'](L,{'cmdPath':F,'skipValidation':m[oV(0x1bb)]});}}const printCallResult=(o,l,E,y,N,Z,A,X,g)=>{const ov=a1o9;if(!o?.['quiet']){if(l)handleJsonOutput(o?.[ov(0x16f)],E);else{if(y)handleYamlOutput(o?.['output'],E);else{if(isListCommand(N)){const k=Z?.['startsWith'](ov(0x181))?Z[ov(0x230)](ov(0x181),'')['split'](',')[ov(0x1fb)](F=>F[ov(0x1e4)]()):undefined,I=N[N[ov(0x22a)]-0x1],J=''+I+(I['endsWith']('s')?'':'s'),m=upperFirst(J),L=has(E,J)?E[J]:E;printAsTable(L,m,k,A,X);}else console[ov(0x229)](consoleFormat(E,g));}}}};
@@ -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=a2l;(function(o,l){const a=a2l,E=o();while(!![]){try{const y=-parseInt(a(0x1c8))/0x1+-parseInt(a(0x1bc))/0x2*(parseInt(a(0x1d5))/0x3)+-parseInt(a(0x17c))/0x4*(parseInt(a(0x1b8))/0x5)+parseInt(a(0x1aa))/0x6*(parseInt(a(0x1c1))/0x7)+-parseInt(a(0x1b5))/0x8*(-parseInt(a(0x181))/0x9)+parseInt(a(0x1d8))/0xa+parseInt(a(0x15f))/0xb;if(y===l)break;else E['push'](E['shift']());}catch(N){E['push'](E['shift']());}}}(a2o,0xc46ad));function a2o(){const u=['login','askForService','Local\x20context\x20\x27','Switch\x20between\x20your\x20local\x20contexts','browser\x20login','Shows\x20full\x20context\x20information\x20(including\x20tokens)','tokenInternalId','askForJob','Current\x20token\x20info','verifyToken','browser-opened','contextAvailable','name','Update\x20token\x20for\x20current\x20context','Local\x20context\x20name\x20to\x20remove.','valueOf','addCommand','browserLogin','43998KxDfJI','getCurrentBaseUrl','https://','Failed\x20to\x20login\x20with\x20the\x20provided\x20token,\x20make\x20sure\x20to\x20use\x20a\x20valid\x20token\x20and\x20host.','close','roleInternalId','Use\x20browser\x20login\x20but\x20only\x20print\x20URL\x20which\x20can\x20be\x20used\x20to\x20login','stdout','getProjectName','getInfo','.\x20Using\x20fallback.','16664fBzTZB','current','--do-not-open-browser','285bIJmnS','fullUrl','--override','-t,\x20--token\x20[TOKEN]','9602cboqrF','getCurrentProjectName','Retrieve\x20and\x20update\x20local\x20context\x20settings.',':\x20\x0a\x20\x20Name:\x09\x09\x09','sort','1043LyOliH','--token-login','getCurrentName','Use\x20job\x20with\x20id:','use','contexts','No\x20project\x20in\x20current\x20context.\x20Please\x20set\x20project\x20before\x20setting\x20a\x20project-scoped\x20resource','1101905nnOpVO','useContext','context','Follow\x20the\x20steps\x20displayed\x20on\x20the\x20page\x20opened\x20in\x20the\x20browser\x20(URL\x20opened:\x20','message','\x0a\x20\x20Default\x20Project:\x09','\x0a\x20\x20Token\x20Scope:\x09\x09','list','\x27\x20successfully\x20removed.','useServiceId','dir','defaultBaseUrl','clearLine','303yuwkKf','contextProvider','doNotOpenBrowser','1514750bujQEb','length','tokenPrompt','Failed\x20to\x20login\x20with\x20the\x20provided\x20token.\x20Token\x20was\x20not\x20changed','timeout','Error\x20occured\x20during\x20browser\x20login:\x20','remove','show','-n,\x20--name\x20[NAME]','tokenScope','project','option','update-token','Name\x20for\x20login\x20context','Change\x20the\x20default\x20job\x20in\x20the\x20current\x20local\x20context','apiTokenLogin','sessionToken=********','italic','\x0a\x20\x20Default\x20Service:\x09','Token\x20for\x20this\x20context.\x20When\x20set,\x20browser\x20login\x20is\x20not\x20used','2117929ihTMHr','Override\x20existing\x20contexts\x20(this\x20will\x20remove\x20project\x20and\x20service\x20context)','service','Use\x20project\x20with\x20id:','then','token\x20login','Token\x20for\x20this\x20context','/v1/login','No\x20context\x20available.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','alias','\x27\x20successfully\x20updated.','Change\x20the\x20default\x20service\x20in\x20the\x20current\x20local\x20context','ctx','loadContextWrapper','catch','removeContext','set-token','map','getCurrentToken','useProjectId','updateToken','apiClient','No\x20current\x20context\x20set.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20one\x20or\x20\x27northflank\x20context\x20use\x27\x20to\x20select\x20an\x20existing\x20one.','description','Use\x20manual\x20login\x20with\x20API\x20token','prompt','agent','Change\x20current\x20context\x20to\x20context\x20identified\x20by\x20this\x20name',',\x20added\x20context\x20with\x20name\x20','21732FJuDNh','test','finally','host','Connect\x20the\x20CLI\x20to\x20your\x20Northflank\x20account.','5463JbrvKZ','host\x20url\x20for\x20this\x20context','moveCursor','Shows\x20detailed\x20information\x20about\x20current\x20context','askForContext','useJobId','log','token','startLogin','Bearer\x20','delete','action','askForProject','\x20(api\x20host:\x20','List\x20all\x20available\x20contexts','search-list','replace','https://api.northflank.com','sanitiseHostname','all','bold','\x0a\x20\x20Host:\x09\x09\x09','No\x20context\x20available.\x20Please\x20use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.'];a2o=function(){return u;};return a2o();}import{ProxyAgent}from'proxy-agent';function a2l(o,l){const E=a2o();return a2l=function(y,N){y=y-0x14d;let Z=E[y];return Z;},a2l(o,l);}import a2E 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 a2y from'node-fetch';import{set}from'lodash-es';import a2N from'inquirer';export class CliContext{[a2T(0x179)];[a2T(0x1d3)];[a2T(0x174)];[a2T(0x1c6)];[a2T(0x198)];constructor(o,l=undefined,E=a2T(0x192)){const M=a2T;this[M(0x179)]=l,this[M(0x1d3)]=E,this[M(0x174)]=o;const y=new InquirerHelper(o);this[M(0x198)]=getCommand()[M(0x1a4)]('login')[M(0x176)](M(0x180))[M(0x156)](M(0x1c2),M(0x177),![])['option'](M(0x1b7),M(0x1b0),![])[M(0x156)](M(0x153),M(0x158))[M(0x156)](M(0x1bb),M(0x15e))[M(0x156)]('--host\x20[HOST]',M(0x182),this[M(0x1d3)])[M(0x156)](M(0x1ba),M(0x160),![])[M(0x18c)](async L=>{const B=M;set(L,B(0x17f),this[B(0x193)](L[B(0x17f)]));const F=L['tokenLogin']||L['token']!==undefined,{name:b,host:q,token:V,override:v}=F?await this[B(0x15a)](L,y):await this['browserLogin'](L,y);try{await this['apiClient'][B(0x1d6)]['addContext']({'name':b,'host':q,'token':V},v);}catch(w){error(w['message']);return;}if(!await this[B(0x1a1)]())error(B(0x1ad)),await this[B(0x174)][B(0x1d6)][B(0x16e)](b);else{const i=F?B(0x164):B(0x19c),f='\x0aSuccessfully\x20logged\x20in\x20using\x20'+i+B(0x17b)+a2E[B(0x15c)](b)+B(0x18e)+q+')';success(f);}}),this[M(0x1c6)]=getCommand()[M(0x1a4)](M(0x1ca))['description'](M(0x1be))[M(0x168)](M(0x1c6))[M(0x168)](M(0x16b));const N=getCommand()[M(0x1a4)](M(0x1cf))[M(0x1a4)]('ls')['description'](M(0x18f))[M(0x156)]('--all',M(0x19d))[M(0x18c)](async L=>{const G=M;console[G(0x187)](o['contextProvider'][G(0x1b3)]());const F=o['contextProvider'][G(0x16c)]();if(L[G(0x194)]===!![]){console[G(0x1d2)](F);return;}const b=F[G(0x1b6)],q=F['contexts'][G(0x1c0)]((V,v)=>V['name']===b?-0x1:v['name']===b?0x1:0x0)[G(0x170)](V=>{const K=G,v=b===V['name']?'\x20(current)':'';return{'Name':''+V[K(0x1a4)]+v,'Host':V[K(0x17f)],'Token\x20scope':V['tokenScope'],'Default\x20Project':V['project']||'-','Default\x20Service':V[K(0x161)]||'-'};});printAsTable(q,'Contexts');}),Z=getCommand()[M(0x1a4)](M(0x152))[M(0x176)](M(0x184))[M(0x18c)](async()=>{const s=M;console[s(0x187)](o['contextProvider'][s(0x1b3)]());const L=o[s(0x1d6)]['getCurrentContext']();if(L===undefined){console['log'](s(0x175));return;}const F=decodeJwtPayload(L[s(0x188)]),b=L[s(0x17f)];console['log'](a2E[s(0x195)](s(0x1a0))+s(0x1bf)+L[s(0x1a4)]+s(0x196)+b+s(0x1ce)+L[s(0x154)]+s(0x1cd)+(L['project']||'-')+s(0x15d)+(L[s(0x161)]||'-')+'\x0a\x20\x20Token\x20ID:\x09\x09'+(F?.[s(0x19e)]||'-')+'\x0a\x20\x20Token\x20Role\x20ID:\x09'+(F?.[s(0x1af)]||'-')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20');}),A=getCommand();A[M(0x1a4)]('use')[M(0x176)](M(0x19b))[M(0x156)](M(0x153),M(0x17a))['action'](async L=>{const x=M,F=L?.['name']||await this[x(0x185)](x(0x1c5));this[x(0x174)][x(0x1d6)][x(0x1c9)](F),success('Changed\x20current\x20context\x20to\x20'+F);});const X='-i,\x20--id\x20[ID]',g=getCommand()[M(0x1a4)](M(0x155))['description']('Change\x20the\x20default\x20project\x20in\x20the\x20current\x20local\x20context')[M(0x156)](X,'Project\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context')['action'](async L=>{const Y=M,F=L?.['id']||await y[Y(0x18d)]()();this[Y(0x174)][Y(0x1d6)][Y(0x172)](F),console['log'](Y(0x162),F);}),k=getCommand()['name'](M(0x161))[M(0x176)](M(0x16a))[M(0x156)](X,'Service\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context')[M(0x18c)](async L=>{const p=M,F=L?.['id']||await y[p(0x199)](this['getProjectName']())();console['log']('Use\x20service\x20with\x20id:',F),this[p(0x174)][p(0x1d6)][p(0x1d1)](F);}),I=getCommand()['name']('job')[M(0x176)](M(0x159))[M(0x156)](X,'Job\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context')[M(0x18c)](async L=>{const r=M,F=L?.['id']||await y[r(0x19f)](this['getProjectName']())();console[r(0x187)](r(0x1c4),F),await this[r(0x174)]['contextProvider'][r(0x186)](F);});A['addCommand'](g),A['addCommand'](I),A[M(0x1a8)](k);const J=getCommand()[M(0x1a4)](M(0x151))[M(0x168)](M(0x18b))['alias']('rm')[M(0x176)]('Remove\x20a\x20context')[M(0x156)](X,M(0x1a6))[M(0x18c)](async L=>{const e=M,F=L?.['id']||await this[e(0x185)]('remove'),b=this[e(0x174)][e(0x1d6)]['getCurrentContext']()?.[e(0x1a4)];this[e(0x174)][e(0x1d6)][e(0x16e)](F),success(e(0x19a)+F+e(0x1d0));if(!this[e(0x1a3)]()){warning(e(0x167));return;}if(b===F){const q=L?.[e(0x1a4)]||await this[e(0x185)]('use\x20from\x20now\x20on');this[e(0x174)][e(0x1d6)][e(0x1c9)](q),success('Changed\x20current\x20context\x20to\x20'+q);}}),m=getCommand()[M(0x1a4)](M(0x157))[M(0x168)](M(0x16f))[M(0x176)](M(0x1a5))[M(0x156)](M(0x1bb),M(0x165))[M(0x18c)](async L=>{const O=M,{contextProvider:F}=this['apiClient'],b=L?.[O(0x188)]||await y[O(0x14d)](),q=F[O(0x171)]();F[O(0x173)](b);if(await this[O(0x1a1)]())success('Token\x20for\x20current\x20context\x20\x27'+F[O(0x1c3)]()+O(0x169));else{if(q)F[O(0x173)](q);error(O(0x14e));}});this[M(0x1c6)][M(0x1a8)](N),this[M(0x1c6)][M(0x1a8)](Z),this[M(0x1c6)]['addCommand'](A),this['contexts'][M(0x1a8)](J),this['contexts']['addCommand'](m);}async[a2T(0x1a9)](o,l){const U=a2T,E=!o[U(0x1d7)],y=o['host']??this[U(0x1d3)],N=new NorthflankApiBrowserLogin(y,E,this[U(0x179)]);let Z;N['on'](U(0x1a2),({url:k})=>{const z=U;if(E){const I=k[z(0x191)](/sessionToken=.*/,z(0x15b));console[z(0x187)](z(0x1cb)+I+')'),Z=a2N[z(0x178)]([{'type':'confirm','name':z(0x1b9),'message':'Display\x20full\x20URL\x20to\x20allow\x20opening\x20the\x20link\x20manually','default':![]}]),Z[z(0x163)](J=>{const Q=z;process[Q(0x1b1)][Q(0x183)](0x0,-0x1),process['stdout'][Q(0x1d4)](0x1),J[Q(0x1b9)]&&console['log']('Open\x20this\x20URL\x20in\x20your\x20browser\x20and\x20follow\x20the\x20steps:\x0a\x09'+k+'\x20');});}else console[z(0x187)]('Open\x20this\x20URL\x20in\x20your\x20browser\x20and\x20follow\x20the\x20steps:\x0a\x09'+k+'\x20');});const {token:A,contextName:X}=await N[U(0x189)]()[U(0x16d)](async k=>{const C=U;error(C(0x150)+k[C(0x1cc)]+C(0x1b4));const I=await this[C(0x15a)](o,l);return{'token':I[C(0x188)],'contextName':I['name']};})[U(0x17e)](()=>{const D=U;if(Z)Z['ui'][D(0x1ae)]();}),g=o[U(0x1a4)]??X??'autologin-'+new Date()[U(0x1a7)]();return{'name':g,'token':A,'host':y,'override':o['override']??![]};}[a2T(0x193)]=o=>{const d=a2T;let l=o;return!/^https?:\/\//i[d(0x17d)](l)&&(l=d(0x1ac)+l),l=l[d(0x191)](/\/+$/,''),l;};async[a2T(0x15a)](o,l){const j=a2T,E=this[j(0x174)][j(0x1d6)][j(0x16c)]()[j(0x1c6)],{name:y,token:N,host:Z,override:A}=await l['loginPrompt'](o,E);return{'name':y,'token':N,'host':Z,'override':A};}[a2T(0x1b2)](){const P=a2T,o=this[P(0x174)][P(0x1d6)][P(0x1bd)]();if(o===undefined)throw new Error(P(0x1c7));return o;}async[a2T(0x185)](o){const n=a2T;if(!this[n(0x1a3)]())throw new Error(n(0x197));const l=this[n(0x174)][n(0x1d6)][n(0x16c)]()['contexts']['map'](y=>y['name']),E=l[n(0x1d9)]>0x4?n(0x190):n(0x1cf);return(await a2N[n(0x178)]([{'type':E,'name':'name','message':'Choose\x20the\x20context\x20to\x20'+o+':','choices':l}]))[n(0x1a4)];}[a2T(0x1a3)](){const H=a2T;return this['apiClient'][H(0x1d6)]['loadContextWrapper']()[H(0x1c6)][H(0x1d9)]>0x0;}async[a2T(0x1a1)](){const h=a2T;try{const o=this['apiClient'][h(0x1d6)][h(0x1ab)](),l=this[h(0x174)][h(0x1d6)][h(0x171)](),E=o+h(0x166),y={'Authorization':h(0x18a)+l},N=new ProxyAgent(),Z=await retry(0x3)(async()=>a2y(E,{'method':'GET','signal':AbortSignal[h(0x14f)](0xbb8),'headers':y,'agent':N}));if(Z['ok'])return!![];return![];}catch(A){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
+ const a3O=a3l;function a3l(o,l){const E=a3o();return a3l=function(y,N){y=y-0x196;let Z=E[y];return Z;},a3l(o,l);}(function(o,l){const K=a3l,E=o();while(!![]){try{const y=parseInt(K(0x1a1))/0x1+parseInt(K(0x1a4))/0x2*(parseInt(K(0x1d1))/0x3)+-parseInt(K(0x1df))/0x4*(parseInt(K(0x1cf))/0x5)+parseInt(K(0x1c3))/0x6+-parseInt(K(0x1cc))/0x7+parseInt(K(0x1be))/0x8+parseInt(K(0x1a3))/0x9*(-parseInt(K(0x1a8))/0xa);if(y===l)break;else E['push'](E['shift']());}catch(N){E['push'](E['shift']());}}}(a3o,0xcd5f7));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 a3E from'inquirer';function a3o(){const D=['Remote\x20file\x20or\x20directory','11129398TTUdJp','Downloaded\x20all\x20directory\x20contents\x20from\x20\x27','File\x20and\x20directory\x20upload\x20for\x20Northflank\x20services\x20and\x20jobs.','70dnKwec','Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.','5015508NMJERi','\x20directory\x20is\x20used.\x20If\x20the\x20directory\x20for\x20','--project\x20--projectId\x20[NAME]','service','remotePath','FILE_UPLOAD','\x20file\x20--localPath\x20my_directory\x20--remotePath\x20/home/','-dir','type','File\x20and\x20directory\x20download\x20for\x20Northflank\x20service.','addCommand','downloadCmd','action','input','15332YBINJn','askForTeam','description','askForService','FILE_DOWNLOAD','File\x20and\x20directory\x20download\x20for\x20Northflank\x20services\x20and\x20jobs.','askForPath','DIRECTORY_DOWNLOAD','toUpperCase','getTokenScope','\x20files','Path\x20does\x20not\x20exist,\x20it\x20will\x20be\x20created.\x0aExamples:\x0a\x20\x20','job','Team\x20id','\x20(random\x20instance\x20will\x20be\x20chosen\x20if\x20not\x20specified)','\x20single\x20file:\x20\x20\x20northflank\x20','user\x20home','.\x20If\x20the\x20','Id\x20[NAME]','File\x20and\x20directory\x20download\x20for\x20Northflank\x20job.','Path\x20is\x20not\x20specified,\x20the\x20','files','Instance\x20(pod\x20name)\x20used\x20to\x20','current\x20working','askForProjectContext','download','getCurrentProjectName','\x27\x20to\x20local\x20directory\x20\x27','local','286866ZvLjdt','Container\x20used\x20to\x20','18uNdCbz','2jGLPiP','--remote\x20--remotePath\x20[REMOTEPATH]','remote','\x27\x20to\x20container\x20directory\x20\x27','7180150GPtIPa','alias','\x20file\x20--localPath\x20my_directory/my-file.txt\x20--remotePath\x20/home/my-','askForJob','slice','Local\x20file\x20or\x20directory','\x20files\x20','name','getStandardCopyCommand','localPath','Uploaded\x20all\x20directory\x20contents\x20from\x20\x27','Uploaded\x20file\x20from\x20\x27','\x20(random\x20container\x20will\x20be\x20chosen\x20if\x20not\x20specified)','org','ensureRelevantPathIsSet','--container\x20--containerId\x20[NAME]','option','File\x20and\x20directory\x20upload\x20for\x20Northflank\x20service.','upload','\x20directory:\x20\x20\x20\x20\x20northflank\x20','ed-file.txt\x0a\x20\x20','File\x20and\x20directory\x20upload\x20for\x20Northflank\x20job.','5403664AnZhQf','contextProvider','file','Downloaded\x20file\x20\x27','\x20the\x20specified\x20','7719918gqLTFp','logCopyResult','Project\x20for\x20','from','askForProject','apiClient','uploadCmd','--noDefaults'];a3o=function(){return D;};return a3o();}export class CliFileCopy{['downloadCmd'];['uploadCmd'];['apiClient'];['getStandardCopyCommand']=(o,l)=>{const s=a3l,E=capitalize(l),y=l===s(0x1ba)?s(0x1a6):s(0x1a0),N=l==='upload'?s(0x1ef):s(0x19b),Z=l==='upload'?'to':s(0x1c6),A=getCommand(!![])[s(0x1af)](s(0x1c0))[s(0x1e1)](E+s(0x1ae)+Z+s(0x1c2)+o+s(0x1f0)+y+s(0x198)+N+s(0x1d2)+y+s(0x1ea)+E+s(0x1ee)+l+'\x20'+o+s(0x1aa)+l+s(0x1bc)+E+s(0x1bb)+l+'\x20'+o+s(0x1d7)+l+s(0x1d8))[s(0x1b8)](s(0x1d3),s(0x1c5)+l);return this[s(0x1c8)][s(0x1bf)]['getTokenScope']()==='org'&&A[s(0x1b8)]('--team\x20--teamId\x20[TEAMID]',s(0x1ec)),A[s(0x1b8)]('--'+o+'\x20--'+o+s(0x196),o['charAt'](0x0)[s(0x1e7)]()+o[s(0x1ac)](0x1)+'\x20to\x20'+l+s(0x1e9))[s(0x1b8)]('--instance\x20--instanceName\x20[NAME]',s(0x19a)+l+s(0x1ed))[s(0x1b8)](s(0x1b7),s(0x1a2)+l+s(0x1b4))[s(0x1b8)]('--local\x20--localPath\x20[LOCALPATH]',s(0x1ad))[s(0x1b8)](s(0x1a5),s(0x1cb))[s(0x1b8)](s(0x1ca),s(0x1d0),![]),A;};constructor(o,l){const x=a3l;this[x(0x1c8)]=new ApiClient(o,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':l});const E=new InquirerHelper(this[x(0x1c8)]);this[x(0x1dc)]=getCommand()[x(0x1af)](x(0x19d))[x(0x1a9)]('dl')[x(0x1e1)](x(0x1e4)),this[x(0x1c9)]=getCommand()[x(0x1af)](x(0x1ba))[x(0x1a9)]('ul')[x(0x1e1)](x(0x1ce));const y=getCommand()[x(0x1af)](x(0x1d4))[x(0x1e1)](x(0x1da)),N=getCommand()[x(0x1af)]('service')[x(0x1e1)](x(0x1b9)),Z=getCommand()[x(0x1af)](x(0x1eb))[x(0x1e1)](x(0x197)),A=getCommand()['name'](x(0x1eb))[x(0x1e1)](x(0x1bd)),X=k=>{const Y=x;return this[Y(0x1b0)](Y(0x1d4),k)[Y(0x1dd)](async I=>{const p=Y,{teamId:J,projectId:m,serviceId:L,containerId:F,instanceName:b,noDefaults:q,quiet:V}=I;assertContextExisting(this[p(0x1c8)]);const v=q?undefined:o[p(0x19e)](),{projectId:w,teamId:i}=await this[p(0x19c)](o,E,m,J,v),f=q?undefined:o['getCurrentServiceName'](),a=L||f||await E[p(0x1e2)](w,i)(),{remotePath:T,localPath:M}=await this['ensureRelevantPathIsSet'](k,I),B={'teamId':i,'projectId':w,'serviceId':a},G=await this[p(0x1c8)][k][p(0x1d4)][p(0x199)](B,{'containerName':F,'instanceName':b,'localPath':M,'remotePath':T});this[p(0x1c4)](G,V);});},g=k=>{const r=x;return this[r(0x1b0)](r(0x1eb),k)[r(0x1dd)](async I=>{const e=r,{projectId:J,teamId:m,jobId:L,instanceName:F,containerId:b,noDefaults:q,quiet:V}=I;assertContextExisting(this[e(0x1c8)]);const v=q?undefined:o[e(0x19e)](),{projectId:w,teamId:i}=await this[e(0x19c)](o,E,J,m,v),f=L||await E[e(0x1ab)](w,i)(),{remotePath:a,localPath:T}=await this[e(0x1b6)](k,I),M={'teamId':i,'projectId':w,'jobId':f},B=await this['apiClient'][k][e(0x1eb)]['files'](M,{'containerName':b,'instanceName':F,'localPath':T,'remotePath':a});this[e(0x1c4)](B,V);});};y['addCommand'](X('download')),Z[x(0x1db)](g(x(0x19d))),N['addCommand'](X(x(0x1ba))),A['addCommand'](g(x(0x1ba))),this[x(0x1dc)]['addCommand'](y),this[x(0x1dc)][x(0x1db)](Z),this[x(0x1c9)][x(0x1db)](N),this[x(0x1c9)][x(0x1db)](A);}[a3O(0x19c)]=async(o,l,E,y,N)=>{const U=a3O,Z=o[U(0x1e8)]()===U(0x1b5)?y??await l[U(0x1e0)]()():undefined,A=E||N||await l[U(0x1c7)](Z)();return{'teamId':Z,'projectId':A};};[a3O(0x1c4)]=(o,l)=>{const z=a3O;if(l)return;const {sourceDirectory:E,targetDirectory:y,sourceFile:N,targetFile:Z}=o;switch(o[z(0x1d9)]){case CopyType[z(0x1e6)]:{success(z(0x1cd)+E+z(0x19f)+y+'\x27');break;}case CopyType[z(0x1e3)]:{success(z(0x1c1)+E+'/'+N+'\x27\x20to\x20\x27'+y+'/'+Z+'\x27');break;}case CopyType['DIRECTORY_UPLOAD']:{success(z(0x1b2)+E+z(0x1a7)+y+'\x27');break;}case CopyType[z(0x1d6)]:{success(z(0x1b3)+E+'/'+N+'\x27\x20to\x20\x27'+y+'/'+Z+'\x27');break;}}};['ensureRelevantPathIsSet']=async(o,l)=>{const Q=a3O,E=o==='download'&&l['remotePath']===undefined?await this[Q(0x1e5)]('\x27remotePath\x27',Q(0x19d)):l[Q(0x1d5)],y=o===Q(0x1ba)&&l[Q(0x1b1)]===undefined?await this['askForPath']('\x27localPath\x27',Q(0x1ba)):l[Q(0x1b1)];return{'localPath':y,'remotePath':E};};[a3O(0x1e5)]=async(o,l)=>{const C=a3O,E=o+'\x20is\x20required\x20for\x20'+l+'s.\x20Please\x20enter\x20a\x20path:';return(await a3E['prompt']([{'type':C(0x1de),'name':C(0x1af),'message':E}]))[C(0x1af)];};}