@northflank/cli 0.11.4 → 0.11.5

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 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();}
1
+ (function(Z,h){const b=a0h,T=Z();while(!![]){try{const P=-parseInt(b(0xe4))/0x1*(parseInt(b(0xf6))/0x2)+parseInt(b(0xf9))/0x3*(parseInt(b(0xf3))/0x4)+parseInt(b(0xf5))/0x5*(parseInt(b(0xe9))/0x6)+-parseInt(b(0xea))/0x7*(-parseInt(b(0x100))/0x8)+-parseInt(b(0xe8))/0x9*(-parseInt(b(0x102))/0xa)+-parseInt(b(0xfa))/0xb+-parseInt(b(0xd5))/0xc;if(P===h)break;else T['push'](T['shift']());}catch(f){T['push'](T['shift']());}}}(a0Z,0xd8690));function a0h(Z,h){const T=a0Z();return a0h=function(P,f){P=P-0xd2;let V=T[P];return V;},a0h(Z,h);}import{warning}from'./utils.js';function a0Z(){const C=['join','serviceId','8ZRAkEg','keys','2140fYswFs','addonId','options','secret','list','logSink','default','source','internalId','teamId','registryCredentials','cursor','6925788OZkwis','version','deploymentPlan','addonTypes','pagination','templateId','find','projectId','projects','nextPageCursor','storage','map','addon','data','length','1cYjQNX','addonDependencies','replicas','keyName','55467cIAIZM','5515110jZuOoe','2705892GAsAcx','type','addons','includes','backupId','get','secrets','types','templates','12228RNnUyF','services','5fNjWdh','1658648QuotJo','credentials','regions','1119cbDMih','16191945VGdHQS','No\x20available\x20versions\x20to\x20upgrade\x20to.','backups','plans'];a0Z=function(){return C;};return a0Z();}const defaultPaginationPageSize=0x64,getProjects=(Z,h)=>async T=>{const m=a0h,P=await Z[m(0x106)][m(0xdd)]({...h?{'parameters':{'teamId':h}}:{},'options':{'per_page':defaultPaginationPageSize,'cursor':T?.['nextPageCursor']}});return{'elements':P[m(0xe2)][m(0xdd)][m(0xe0)](f=>f['id']),'nextPageCursor':P[m(0xd9)]?.[m(0xd4)]};},getServices=(Z,h,T)=>async P=>{const N=a0h,f=await Z['list'][N(0xf4)]({'parameters':{'projectId':h,'teamId':T},'options':{'per_page':defaultPaginationPageSize,'cursor':P?.[N(0xde)]}});return{'elements':f['data'][N(0xf4)][N(0xe0)](V=>V['id']),'nextPageCursor':f[N(0xd9)]?.[N(0xd4)]};},getAddons=(Z,h,T)=>async P=>{const j=a0h,f=await Z['list'][j(0xec)]({'parameters':{'teamId':T,'projectId':h},'options':{'per_page':defaultPaginationPageSize,'cursor':P?.['nextPageCursor']}});return{'elements':f['data'][j(0xec)][j(0xe0)](V=>V['id']),'nextPageCursor':f[j(0xd9)]?.[j(0xd4)]};},getAddonBackups=(Z,h,T,P)=>async f=>{const K=a0h,V=await Z[K(0xef)][K(0xe1)][K(0xfc)]({'parameters':{'teamId':P,'projectId':h,'addonId':T},'options':{'per_page':defaultPaginationPageSize,'cursor':f?.[K(0xde)]}});return{'elements':V[K(0xe2)][K(0xfc)][K(0xe0)](x=>x['id']),'nextPageCursor':V[K(0xd9)]?.[K(0xd4)]};};export async function fetchResourceList(Z,h,T,P,f,V){const D=a0h,x=undefined,d=f?.[D(0xd2)];try{if(Z===D(0xd7)){const M=await h[D(0x106)][D(0xfd)]({}),S=M[D(0xe2)]['plans'][D(0xe0)](z=>z?.[D(0x10a)]??z?.['id']);return{'choices':S,'defaultValue':x};}if(Z==='region'&&!T?.['includes'](D(0x107))){const z=await h['list'][D(0xf8)]({}),H=z['data'][D(0xf8)]['map'](l=>l?.['internalId']??l?.['id']);return{'choices':H,'defaultValue':x};}if(Z===D(0xdc)){const l=await getProjects(h,d),{elements:E,nextPageCursor:Y}=await l();return{'choices':E,'defaultValue':x,'pagination':{'nextPageCursor':Y,'loadMore':l}};}if(Z===D(0xf7)){const y=await h['list'][D(0xd3)]({...d?{'parameters':{'teamId':d}}:{}}),r=y['data'][D(0xf7)][D(0xe0)](p=>p['id']);return{'choices':r,'defaultValue':x};}const U=f?.[D(0xdc)],B=Z===D(0xff)||Z==='id'&&V?.[D(0xed)]('owningObject');if(U!==undefined&&B){const p=await getServices(h,U,d),{elements:A,nextPageCursor:n}=await p();return{'choices':A,'defaultValue':x,'pagination':{'nextPageCursor':n,'loadMore':p}};}const q=T?.['includes'](D(0xe1));if(q){const a=async G=>{const W=D,L=await h[W(0xef)][W(0xe1)][W(0xf1)]({});return L['data'][W(0xd8)]?.[W(0xe0)](Q=>Q[W(0xeb)])[W(0xdb)](Q=>Q[W(0xeb)]===G);};if(Z===D(0xeb)){const G=await h[D(0xef)][D(0xe1)]['types']({}),L=G[D(0xe2)]['addonTypes']?.[D(0xe0)](Q=>Q[D(0xeb)]);return{'choices':L,'defaultValue':x};}if(Z===D(0xd6)&&P?.[D(0xeb)]!==undefined){const Q=(await a(P[D(0xeb)]))?.['versions'],O=Q!==undefined?['latest',...Q]:undefined;return{'choices':O,'defaultValue':x};}if(Z===D(0xdf)&&P?.[D(0xeb)]!==undefined){const i=(await a(P[D(0xeb)]))?.['resources']?.[D(0xdf)];return{'choices':i?.[D(0x104)],'defaultValue':i?.[D(0x108)]};}if(Z===D(0xe6)&&P?.[D(0xeb)]!==undefined){const c=(await a(P[D(0xeb)]))?.['resources']?.[D(0xe6)];return{'choices':c?.[D(0x104)],'defaultValue':c?.[D(0x108)]};}}if(Z==='addonId'&&f?.['projectId']!==undefined){const g=await getAddons(h,f?.[D(0xdc)],d),{elements:u,nextPageCursor:I}=await g();return{'choices':u,'defaultValue':x,'pagination':{'nextPageCursor':I,'loadMore':g}};}if(Z===D(0xee)&&U!==undefined&&P?.[D(0x109)]?.[D(0x103)]!==undefined){const k=getAddonBackups(h,U,P?.[D(0x109)]?.[D(0x103)],d),{elements:F,nextPageCursor:J}=await k();return{'choices':F,'defaultValue':x,'pagination':{'nextPageCursor':J,'loadMore':k}};}const w=f?.[D(0x103)]??P?.[D(0xe5)]?.['addonId'];if(T?.[D(0xfe)]('')==='updateaddonversion'&&Z===D(0xd6)&&U!==undefined&&w!==undefined){const {upgradeTo:o}=(await h[D(0xef)][D(0xe1)][D(0xd6)]({'parameters':{'teamId':d,'addonId':w,'projectId':U}}))[D(0xe2)];if(o===undefined||o[D(0xe3)]<=0x0){warning(D(0xfb));throw new Error();}return{'choices':o[D(0xe0)](X=>X['version']),'defaultValue':x};}if(Z===D(0xda)){const X=await h['list']['templates']({...d?{'parameters':{'teamId':d}}:{}}),s=X[D(0xe2)][D(0xf2)][D(0xe0)](t=>t?.['id']);return{'choices':s,'defaultValue':x};}if((T?.[D(0xed)]('secretLink')||T?.[D(0xed)](D(0x105)))&&Z===D(0xe7)&&w!==undefined&&U!==undefined){const t=(await h[D(0xef)][D(0xe1)][D(0xf7)]({'parameters':{'addonId':w,'projectId':U,'teamId':d}}))['data'];return{'choices':[...Object[D(0x101)](t?.['envs'])??[],...Object[D(0x101)](t?.[D(0xf0)])??[]]};}}catch(R){}return{'choices':undefined,'defaultValue':x};}
package/dist/cli.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env -S node --no-deprecation
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));}}}};
2
+ const a1ZZ=a1h;(function(Z,h){const Z9=a1h,T=Z();while(!![]){try{const P=-parseInt(Z9(0xf0))/0x1*(parseInt(Z9(0x126))/0x2)+-parseInt(Z9(0xe3))/0x3+parseInt(Z9(0xf6))/0x4+parseInt(Z9(0x163))/0x5+parseInt(Z9(0xea))/0x6*(-parseInt(Z9(0x113))/0x7)+parseInt(Z9(0x120))/0x8+parseInt(Z9(0x132))/0x9*(parseInt(Z9(0x152))/0xa);if(P===h)break;else T['push'](T['shift']());}catch(f){T['push'](T['shift']());}}}(a1Z,0xdfe52));import{ApiClient,ApiClientFileContextProvider,GetApiEndpointPaginated}from'@northflank/js-client';import{Command}from'commander';import a1T from'fs';import a1P from'chalk';import{CliContext}from'./context/contextCommands.js';import{agent,assertContextExisting,asyncSequential,checkUpdate,customUserAgent,error,getCommand,proxyEnvsSet,warning}from'./utils.js';import*as a1f 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 a1V from'js-yaml';import{readFileSync}from'fs';import{fileURLToPath}from'url';import{dirname,join}from'path';function a1h(Z,h){const T=a1Z();return a1h=function(P,f){P=P-0x89;let V=T[P];return V;},a1h(Z,h);}const __filename=fileURLToPath(import.meta[a1ZZ(0x117)]),__dirname=dirname(__filename),pgk=JSON[a1ZZ(0x10f)](readFileSync(join(__dirname,a1ZZ(0xdb)),a1ZZ(0xc8)));export const getProgram=Z=>{const Zh=a1ZZ,h=new Command('northflank');h['description']('Manage\x20your\x20Northflank\x20resources\x20from\x20the\x20command\x20line'),h[Zh(0x134)](!![]),h[Zh(0x127)](Zh(0xde)+a1P[Zh(0xa2)](pgk['version']),'-v,\x20--version','Print\x20the\x20current\x20version\x20of\x20the\x20Northflank\x20cli');const T=new ApiClient(Z,{'throwErrorOnHttpErrorCode':![],'customUserAgent':customUserAgent,'agent':agent}),P=new CliContext(T,agent),f=new CliPortForward(Z,agent),V=new CliExec(Z,agent),x=new CliSsh(Z,agent),d=new CliFileCopy(Z,agent),U=new CliLogs(Z,agent),B=new CliMetrics(Z,agent);return h[Zh(0xf2)](f[Zh(0x13e)]),h[Zh(0xf2)](V[Zh(0x133)]),h['addCommand'](x[Zh(0x110)]),h['addCommand'](d['downloadCmd']),h[Zh(0xf2)](d['uploadCmd']),h[Zh(0xf2)](P[Zh(0xad)]),h[Zh(0xf2)](P[Zh(0x168)]),generateCommands(T,T[Zh(0xed)],h,U,B),h['addCommand'](getCommandOverview(h)),h['helpCommand'](Zh(0x12a),Zh(0xd9)),h[Zh(0x10e)](undefined,'Display\x20help\x20for\x20command'),h;};((async()=>{const ZT=a1ZZ;try{const Z=new ApiClientFileContextProvider();await checkUpdate(Z);const h=getProgram(Z);await h[ZT(0x11f)](process[ZT(0x93)]);}catch(T){error('Error\x20occured\x20while\x20trying\x20to\x20run\x20command,\x20error:\x20'+T[ZT(0xc7)]),process[ZT(0x93)][ZT(0xae)](P=>P===ZT(0x135))&&console[ZT(0xaa)](T),process[ZT(0x147)]=0x1;}})());function isListCommand(Z){const ZP=a1ZZ,h=[[ZP(0x16a),ZP(0xf9),ZP(0x13d)],[ZP(0x16a),'job',ZP(0xb1)]];return Z[ZP(0xae)](T=>T==='list')||h[ZP(0x105)](T=>isEqual(Z,T));}function a1Z(){const Zr=['moveCursor','templateRunId','toUpperCase','some','existsSync','stdout','base','Options\x20\x27loadAll\x27\x20can\x20not\x20be\x20combined\x20with\x20\x27page\x27\x20or\x20\x27cursor\x27','aliases','retrievePayloadViaInteractiveCli','opts','volumeId','helpOption','parse','sshCmd','askForBackupDestination','json','7XzEXZt','\x20--','docsTagsPath','buildId','url','tpl','request','askForAddonBackup','load','teamScoped','runId','data','parseAsync','6771720FqYIOS','.json','getMetricsCommand','Unknown\x20input\x20format.\x20Not\x20valid\x20json\x20and\x20not\x20valid\x20yaml.','secret','setPathVars','43138wyIBwO','version','filter','VERBOSE:\x20HTTP_PROXY\x20or\x20HTTPS_PROXY\x20environment\x20variable\x20set:\x20tunnelling\x20traffic\x20through\x20HTTP\x20proxy.','help\x20[command]','volumes','pagination','italic','\x20Northflank\x20resources','green','askForVolume','repos','3564BwZYRG','execCmd','enablePositionalOptions','--verbose','API\x20request\x20failed\x0a\x09Message:\x20','toString','job','option','getNextPage','askForLogSink','askForTemplateRun','backups','portFwdCmd','cred','\x0a>\x20Token\x20permissions\x20required:\x20','endsWith','path','project','defaults','subdomainId','noDefaults','exitCode','org','projects','askForTeam','\x20properties','readFileSync','rawResponse','repository','pipelineId','name','getTokenScope','2090EYaVfd','getCurrentProjectName','required','askForPipeline','page','all','rgn','getOwnPropertyNames','scrt','force','update','invoices','askForBuild','pop','credentialId','replace','file','3100400WvVoZE','yaml','service','string','JSON-formatted\x20resource\x20definition,\x20takes\x20precedence\x20over\x20\x22--file\x22','contexts','isPaginatedEndpoint','get','getCurrentJobName','(HTTP\x20status\x20code:\x20','askForJob','OPTIONAL:\x20','-i,\x20--input\x20<resource-def>','backup','there\x20are\x20more\x20rows,\x20load?','forEach','backupDestinationId','default','cursor','argv','includes','output','askForTag','api.','yml','body','quiet','logSinkId','tags','askForDomain','delete','Failed\x20to\x20validate\x20input\x20(incorrect\x20format):\x20','keys','/docs/v1/api/','underline','template','nonInteractiveEndpoint','askForService','entries','custom-columns=','startsWith','split','log','map','branch','login','find','teamId','templateId','runs','askForSubdomain','boolean','isArray','domain','jobs','method','adn','bind','length','Update\x20Northflank\x20','-f,\x20--file\x20<file-path>','addHelpText','resource','addonId','statusText','description','askConfirm','branches','projectId','subdomain','stringify','message','utf-8','addons','askForSecret','Documentation:\x20','.yaml','join','askForCredentials','resourceTagId','getCurrentContext','region','getLogsCommand','backup-destinations','regions','credential','verbose','type','jobId','Display\x20help\x20for\x20command','backupId','../package.json','File\x20to\x20load\x20resource\x20json\x20from','askGeneric','Northflank\x20cli\x20version:\x20','_skip','Resource\x20was\x20not\x20deleted.','serviceId','requiredPermissions','2268030IWGuxQ','sort','loadAll','clusterId','query','askForAddon','templates','3601758jEWhyb','call','opt','endpoints','commands','Get\x20information\x20about\x20Northflank\x20','32GFPZpH','paginationArgs','addCommand','domainId','action','contextProvider','5657104YkNpFQ','hasNextPage','trim','addon','secrets','subdomainPath','VERBOSE:\x20Using\x20endpoint\x20->\x20','vol','svc','plan','getCurrentServiceName','secretId'];a1Z=function(){return Zr;};return a1Z();}function generateCommands(Z,h,T,P,f,V=a1f[a1ZZ(0x144)],x=[]){const Zf=a1ZZ,d=new InquirerHelper(new ApiClient(Z[Zf(0xf5)],{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':agent}));function U(M,S){const ZV=Zf;return M[ZV(0x154)]!==![]&&S===undefined;}function B(M,S){const Zx=Zf,{opt:z,name:H}=M,l=z[Zx(0x91)],E=U(z,l),Y=n=>n[Zx(0xba)]>0x1?'--'+n:'-'+n,y=z?.['alias'],r=y?Array[Zx(0xb4)](y)?'-'+y?.[Zx(0xab)](n=>Y(n))[Zx(0xcd)](',\x20-')+',':''+Y(y):'',p=E?'':Zx(0x8b),e=typeof z[Zx(0xd7)]===Zx(0xb3)||z[Zx(0xd7)]===Zx(0xb3)?r+Zx(0x114)+H:r+'\x20--'+H+'\x20<'+H[Zx(0x104)]()+'>',A=p+z[Zx(0xc1)];S[Zx(0x139)](e[Zx(0xf8)](),A,l);}function q(M,S){const Zd=Zf;if(S[Zd(0xee)][Zd(0x105)](z=>z[Zd(0x150)]()==='logs'))return;isEqual(M,[Zd(0x16a),Zd(0x165)])&&(S['addCommand'](P[Zd(0xd2)](Zd(0x165))),S['addCommand'](f[Zd(0x122)]('service')),S[Zd(0xf2)](P[Zd(0xd2)](Zd(0x165),!![])),S[Zd(0xf2)](f[Zd(0x122)](Zd(0x165),!![]))),isEqual(M,[Zd(0x16a),'job'])&&(S[Zd(0xf2)](P['getLogsCommand'](Zd(0x138))),S[Zd(0xf2)](f[Zd(0x122)](Zd(0x138))),S[Zd(0xf2)](P[Zd(0xd2)](Zd(0x138),!![])),S['addCommand'](f[Zd(0x122)]('job',!![]))),isEqual(M,['get',Zd(0xf9)])&&(S[Zd(0xf2)](P[Zd(0xd2)](Zd(0xf9))),S[Zd(0xf2)](f['getMetricsCommand'](Zd(0xf9)))),isEqual(M,[Zd(0x16a),Zd(0xf9),Zd(0x8d)])&&S[Zd(0xf2)](P[Zd(0xd2)](Zd(0xf9),![],!![])),isEqual(M,[Zd(0x16a),Zd(0xf9),'restores'])&&S[Zd(0xf2)](P[Zd(0xd2)](Zd(0xf9),![],!![],!![]));}return Object[Zf(0x159)](V)['forEach'](M=>{const ZU=Zf,S=h[M],z=V[M],H=x['concat']([M]),l=Z[ZU(0xf5)][ZU(0x151)]();function E(L,Q){const ZB=ZU,O=Object[ZB(0x159)](L||{});O[ZB(0xab)](i=>{return{'name':i,'opt':L[i]};})[ZB(0xe4)]((i,c)=>!U(i['opt'])?!U(c[ZB(0xec)])?0x0:0x1:-0x1)[ZB(0x8f)](i=>{B(i,Q);});}function Y(L,Q){const Zq=ZU,O=[[Zq(0x143),Zq(0x149),'prj'],['service','services',Zq(0xfe)],['credentials',Zq(0xd5),Zq(0x13f)],['addon',Zq(0xc9),Zq(0xb8)],[Zq(0x138),Zq(0xb6)],[Zq(0xff),'plans','pln'],[Zq(0xd1),Zq(0xd4),Zq(0x158)],[Zq(0xb5),'domains','dmn'],[Zq(0x124),Zq(0xfa),Zq(0x15a)],[Zq(0x12b),'volume',Zq(0xfd)],[Zq(0xc3),Zq(0xac),'brn'],['invoice',Zq(0x15d),'inv'],[Zq(0xa3),Zq(0xe9),Zq(0x118)],[Zq(0x131),Zq(0x14e),'repositories','repo'],['backup-destination',Zq(0xd3)],['tag',Zq(0x9c)]],i=O[Zq(0xae)](c=>c[Zq(0x94)](Q));if(i!==undefined)L[Zq(0x10a)](i[Zq(0x128)](c=>c!==Q));}async function y(L){const Zw=ZU,Q={},{contextProvider:O}=Z,i=H[Zw(0x94)](Zw(0x9e)),c=L[Zw(0x146)]===!![];async function g(I,k,F,J,o){const ZM=Zw,X=L?.[I];if(o!==undefined&&o===X)return;if(J||has(z[ZM(0xec)]?.[ZM(0x142)]??{},I)){const s=!c&&!i&&F?F():undefined,t=X||s||await k();t!==undefined&&set(Q,I,t);}}const u=Object[Zw(0xa6)](z[Zw(0xec)]?.[Zw(0x142)]??{});return z[Zw(0xec)]?.[Zw(0x11c)]&&l==='org'&&!u[Zw(0x105)](([I])=>I==='teamId')&&await g(Zw(0xaf),d[Zw(0x14a)](!![])[Zw(0xb9)](d),undefined,!![],Zw(0xdf)),await asyncSequential(u,async([I,k])=>{const ZS=Zw,F=Q?.['projectId'],J=Q?.['teamId'],o=Q?.[ZS(0xb0)];switch(I){case ZS(0xaf):return await g(ZS(0xaf),d[ZS(0x14a)](!![])[ZS(0xb9)](d),undefined,![],ZS(0xdf));case'projectId':return await g(ZS(0xc4),d['askForProject'](J)[ZS(0xb9)](d),O[ZS(0x153)]['bind'](O));case'serviceId':return await g(ZS(0xe1),d[ZS(0xa5)](F,J)[ZS(0xb9)](d),O[ZS(0x100)][ZS(0xb9)](O));case ZS(0xbf):return await g(ZS(0xbf),d[ZS(0xe8)](F,J)[ZS(0xb9)](d));case ZS(0xd8):return await g(ZS(0xd8),d[ZS(0x8a)](F,J)[ZS(0xb9)](d),O[ZS(0x16b)][ZS(0xb9)](O));case ZS(0x11d):return await g(ZS(0x11d),d['askForJobRun'](Q[ZS(0xd8)],F,![],J)[ZS(0xb9)](d));case'secretId':return await g(ZS(0x101),d[ZS(0xca)](F,J)[ZS(0xb9)](d));case'domain':case'domainId':return await g('domain',d[ZS(0x9d)](J)['bind'](d));case ZS(0x160):return await g(ZS(0x160),d[ZS(0xce)](J)[ZS(0xb9)](d));case ZS(0x10d):return await g(ZS(0x10d),d[ZS(0x130)](F,J)[ZS(0xb9)](d));case ZS(0xc5):return await g(ZS(0xc5),d[ZS(0xb2)](Q[ZS(0xb5)],J)[ZS(0xb9)](d));case ZS(0x145):return await g(ZS(0x145),d['askForSubdomain'](Q[ZS(0xf3)],J)[ZS(0xb9)](d));case'subdomainPath':return await g(ZS(0xfb),d['askForSubdomainPath'](Q[ZS(0xb5)],Q[ZS(0xc5)]??Q[ZS(0x145)],J)[ZS(0xb9)](d));case'backupId':return await g(ZS(0xda),d[ZS(0x11a)](F,Q[ZS(0xbf)],J)[ZS(0xb9)](d));case ZS(0x116):return await g('buildId',d[ZS(0x15e)](F,Q[ZS(0xe1)],Q['jobId'],J)[ZS(0xb9)](d));case ZS(0xb0):return await g(ZS(0xb0),d['askForTemplate'](J)[ZS(0xb9)](d));case ZS(0x103):return await g(ZS(0x103),d[ZS(0x13c)](o,J)['bind'](d));case'logSinkId':return await g(ZS(0x9b),d[ZS(0x13b)](J)['bind'](d));case ZS(0x14f):return await g('pipelineId',d[ZS(0x155)](F,J)[ZS(0xb9)](d));case'resourceTagId':return await g(ZS(0xcf),d[ZS(0x96)](J)['bind'](d));case ZS(0x90):return await g(ZS(0x90),d[ZS(0x111)](J)[ZS(0xb9)](d));case ZS(0xe6):return await g(ZS(0xe6),d['askForClusterId'](J)['bind'](d));default:return await g(I,d[ZS(0xdd)](I,k?.[ZS(0xc1)])[ZS(0xb9)](d));}}),Q;}async function r(L){const Zz=ZU,Q={},O=z[Zz(0xec)]?.[Zz(0x169)]?a1f['paginationArgs']:{},i={...z['opt']?.['query']??{},...O},c=Object[Zz(0xa0)](i)[Zz(0x128)](g=>g!==Zz(0xe5));return await asyncSequential(c,async g=>{if(L[g]!==undefined)return set(Q,g,L[g]);}),Q;}function p(){const ZH=ZU;switch(H[0x0]){case ZH(0x16a):return ZH(0xef)+(H[0x1]||ZH(0xbe))+'s';case ZH(0x15c):return ZH(0xbb)+(H[0x1]||ZH(0xbe))+ZH(0x14b);default:return upperFirst(M)+ZH(0x12e);}}function e(L,Q){const Zl=ZU;if(!Q){const J=getCommand()[Zl(0x150)](kebabCase(M))[Zl(0xc1)](p());return Y(J,M),J;}const O=L?.[Zl(0xe2)]?a1P[Zl(0x12d)](Zl(0x140)+L['requiredPermissions']):'',i=Z[Zl(0xf5)][Zl(0xd0)](),c=i!==undefined&&z?.[Zl(0xec)]?.[Zl(0x115)]!==undefined,g=i?.['host'][Zl(0x161)](Zl(0x97),''),u=c?Zl(0xcb)+g+Zl(0xa1)+z?.[Zl(0xec)]?.[Zl(0x115)]:'',I=L?.['description']||'',k=getCommand(!![])[Zl(0x150)](kebabCase(M))[Zl(0xc1)](I)[Zl(0xbd)]('after',[O,u][Zl(0xcd)]('\x0a'));Y(k,M);(z[Zl(0xec)]?.['body']||z[Zl(0xec)]?.['nonInteractiveEndpoint'])&&(k[Zl(0x139)](Zl(0xbc),Zl(0xdc)),k[Zl(0x139)](Zl(0x8c),Zl(0x167)));if(z['opt']?.[Zl(0x11c)]&&l===Zl(0x148)){const o={'description':'Team\x20id\x20for\x20team-level\x20endpoints\x20with\x20organisation-level\x20API\x20token.\x20To\x20use\x20organisation-level\x20endpoint\x20set\x20to\x20\x27_skip\x27','type':Zl(0x166),'required':![]};z[Zl(0xec)][Zl(0x142)]={'teamId':o,...z['opt'][Zl(0x142)]??{}};}E(z['opt']?.[Zl(0x142)],k),E(z[Zl(0xec)]?.[Zl(0xe7)],k);const F=z['opt']?.[Zl(0x169)];return F&&E(a1f[Zl(0xf1)],k),E(z[Zl(0xec)]?.[Zl(0x108)],k),k[Zl(0xf4)](async()=>{const ZE=Zl;assertContextExisting(Z);const X=k[ZE(0x10c)]();X?.[ZE(0xd6)]&&proxyEnvsSet&&warning(ZE(0x129));const s=X[ZE(0x156)]!==undefined||X[ZE(0x92)]!==undefined;if(X[ZE(0xe5)]===!![]&&s)throw new Error(ZE(0x109));const t=X?.['output'],R=t==='json',b=t===ZE(0x164)||t===ZE(0x98),m=await y(X);d[ZE(0x125)](m);const N=await r(X),j=Object[ZE(0xa0)](z[ZE(0xec)]?.['path']??{})['map'](v=>v+'='+a1P[ZE(0x12f)](m[v]))[ZE(0xcd)](',\x20');if(j[ZE(0xba)]>0x0&&!R&&!b){const v='=>\x20running\x20command\x20with:\x20'+j;console['log'](v);}const K=z[ZE(0xec)]?.[ZE(0x99)]||z['opt']?.['nonInteractiveEndpoint']?await w(X,z,H):undefined;if(!X[ZE(0x15b)]&&H[ZE(0x94)](ZE(0x9e))&&!await d['deleteWarningPrompt']()){warning(ZE(0xe0));return;}const D=F&&(X[ZE(0xe5)]||(X[ZE(0x95)]===ZE(0x112)||X['output']===ZE(0x164))&&!s);let W=D&&S instanceof GetApiEndpointPaginated?await S[ZE(0x157)]({'parameters':m,'options':N,'data':K}):await S[ZE(0xeb)]({'parameters':m,'options':{...N},'data':K});if(X?.[ZE(0xd6)]){const Z0=W[ZE(0x119)];console[ZE(0xaa)](ZE(0xfc)+Z0[ZE(0xb7)][ZE(0x104)]()+':'+Z0['url']),K!==undefined&&console[ZE(0xaa)]('VERBOSE:\x20Request\x20body\x20->\x20'+a1P['italic'](JSON[ZE(0xc6)](K)));}if(W['error']){const {details:Z1,id:Z2,message:Z3,status:Z4}=W['error'],Z5=Z1?'\x0a\x09details\x20:'+JSON[ZE(0xc6)](Z1):'',Z6=Z2?',\x20NF\x20error\x20id:\x20'+Z2:'',Z7=ZE(0x89)+Z4+Z6+')';throw new Error(ZE(0x136)+Z3+'\x20'+Z7+Z5);}let C=0x0;printCallResult(X,R,W[ZE(0x11e)],b,H,t,![],C,W[ZE(0x14d)][ZE(0xc0)]);if(!X[ZE(0x9a)]&&!D&&!s&&W[ZE(0x12c)]?.[ZE(0xf7)])while(W[ZE(0x12c)]?.[ZE(0xf7)]){const Z8=await d[ZE(0xc2)](ZE(0x8e));if(Z8)process[ZE(0x107)][ZE(0x102)](0x0,-0x1),process['stdout']['clearLine'](0x1),C+=W[ZE(0x12c)]['count'],W=await W[ZE(0x12c)][ZE(0x13a)](),printCallResult(X,R,W[ZE(0x11e)],b,H,t,!![],C,W['rawResponse'][ZE(0xc0)]);else return;}}),k;}const A=has(z,'opt'),n=S,a=e(n,A);q(H,a),T[ZU(0xf2)](a);const G=omit(z,ZU(0xec));Object[ZU(0xa0)](G)[ZU(0xba)]>0x0&&generateCommands(Z,S,a,P,f,G,H);});async function w(M,S,z){const ZY=Zf,{input:H,file:l}=M;if(H!==undefined)try{return JSON[ZY(0x10f)](H);}catch(E){try{return a1V[ZY(0x11b)](H);}catch(Y){throw new Error(ZY(0x123));}}if(l!==undefined){if(!a1T[ZY(0x106)](l))throw new Error('File\x20does\x20not\x20exist:\x20'+l);const y=a1T[ZY(0x14c)](l)[ZY(0x137)]();let r;try{if(isString(y)){if(M[ZY(0x162)]['endsWith'](ZY(0x121)))r=JSON[ZY(0x10f)](y);else{if(M[ZY(0x162)]['endsWith'](ZY(0xcc))||M['file'][ZY(0x141)](ZY(0x98)))r=a1V['load'](y);else throw new Error('Unknown\x20input\x20file\x20type:\x20'+M[ZY(0x162)][ZY(0xa9)]('.')[ZY(0x15f)]());}}else r=y;return r;}catch(p){throw new Error(ZY(0x9f)+p['message']);}}if(S?.['opt']?.[ZY(0xa4)])throw new Error('Expecting\x20resource\x20input\x20with\x20\x27--input\x27\x20or\x20\x27--file\x27\x20argument');return await d[ZY(0x10b)](S,{'cmdPath':z,'skipValidation':M['skipValidation']});}}const printCallResult=(Z,h,T,P,f,V,x,d,U)=>{const Zy=a1ZZ;if(!Z?.[Zy(0x9a)]){if(h)handleJsonOutput(Z?.[Zy(0x95)],T);else{if(P)handleYamlOutput(Z?.['output'],T);else{if(isListCommand(f)){const B=V?.[Zy(0xa8)](Zy(0xa7))?V[Zy(0x161)](Zy(0xa7),'')[Zy(0xa9)](',')[Zy(0xab)](z=>z['toLowerCase']()):undefined,q=f[f['length']-0x1],w=''+q+(q[Zy(0x141)]('s')?'':'s'),M=upperFirst(w),S=has(T,w)?T[w]:T;printAsTable(S,M,B,x,d);}else console[Zy(0xaa)](consoleFormat(T,U));}}}};
@@ -1 +1 @@
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
+ const a2A=a2h;(function(Z,h){const e=a2h,T=Z();while(!![]){try{const P=-parseInt(e(0x234))/0x1+parseInt(e(0x215))/0x2+parseInt(e(0x1e5))/0x3*(parseInt(e(0x1d0))/0x4)+parseInt(e(0x230))/0x5*(-parseInt(e(0x20c))/0x6)+parseInt(e(0x1e2))/0x7+-parseInt(e(0x1b6))/0x8*(-parseInt(e(0x1fc))/0x9)+-parseInt(e(0x22f))/0xa;if(P===h)break;else T['push'](T['shift']());}catch(f){T['push'](T['shift']());}}}(a2Z,0x7b458));import{ProxyAgent}from'proxy-agent';import a2T 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 a2P from'node-fetch';function a2h(Z,h){const T=a2Z();return a2h=function(P,f){P=P-0x1a9;let V=T[P];return V;},a2h(Z,h);}function a2Z(){const j=['addCommand','getCurrentName','then','8608RfTbaq','browserLogin','useServiceId','useJobId','name','Project\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','getCurrentContext','project','set-token','askForJob','Changed\x20current\x20context\x20to\x20','alias','host\x20url\x20for\x20this\x20context','italic','Switch\x20between\x20your\x20local\x20contexts','Connect\x20the\x20CLI\x20to\x20your\x20Northflank\x20account.','contextAvailable','https://','verifyToken','login','option','getProjectName','\x20(current)','update-token','show','Token\x20for\x20current\x20context\x20\x27','2944668XIAHeS','No\x20current\x20context\x20set.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20one\x20or\x20\x27northflank\x20context\x20use\x27\x20to\x20select\x20an\x20existing\x20one.','askForProject','delete','current','contextProvider','bold','Token\x20for\x20this\x20context.\x20When\x20set,\x20browser\x20login\x20is\x20not\x20used','GET','askForService','Service\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','confirm','Contexts','stdout','sessionToken=********','\x0a\x20\x20Token\x20ID:\x09\x09','description','all','3677961CpqfPJ','Bearer\x20','catch','3kqeqYw','service','tokenLogin','--host\x20[HOST]','browser\x20login','dir','log','\x0a\x20\x20Token\x20Scope:\x09\x09','Failed\x20to\x20login\x20with\x20the\x20provided\x20token,\x20make\x20sure\x20to\x20use\x20a\x20valid\x20token\x20and\x20host.','apiClient','startLogin','\x0a\x20\x20Default\x20Project:\x09','prompt','Override\x20existing\x20contexts\x20(this\x20will\x20remove\x20project\x20and\x20service\x20context)','\x27\x20successfully\x20removed.','remove','Update\x20token\x20for\x20current\x20context','Change\x20the\x20default\x20project\x20in\x20the\x20current\x20local\x20context','override','Display\x20full\x20URL\x20to\x20allow\x20opening\x20the\x20link\x20manually','loadContextWrapper','contexts','roleInternalId','999dKCmzv','--token-login','job','No\x20context\x20available.\x20Please\x20use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','Remove\x20a\x20context','useContext','--do-not-open-browser','getInfo','use','getCurrentToken','use\x20from\x20now\x20on','Change\x20current\x20context\x20to\x20context\x20identified\x20by\x20this\x20name','-n,\x20--name\x20[NAME]','Shows\x20full\x20context\x20information\x20(including\x20tokens)','Local\x20context\x20\x27','clearLine','6xNUTgM','action','close','Use\x20project\x20with\x20id:','loginPrompt','search-list','host','removeContext',',\x20added\x20context\x20with\x20name\x20','617478jVTfKF','Name\x20for\x20login\x20context','tokenScope','apiTokenLogin','Error\x20occured\x20during\x20browser\x20login:\x20','list','addContext','updateToken','Current\x20token\x20info','askForContext','doNotOpenBrowser','--override','Change\x20the\x20default\x20job\x20in\x20the\x20current\x20local\x20context','browser-opened','useProjectId','No\x20context\x20available.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','length','autologin-','Job\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','sanitiseHostname','Shows\x20detailed\x20information\x20about\x20current\x20context','-t,\x20--token\x20[TOKEN]','message','Open\x20this\x20URL\x20in\x20your\x20browser\x20and\x20follow\x20the\x20steps:\x0a\x09','test','agent','2338280hGRCZl','4227295LfeSvv','getCurrentBaseUrl','Token\x20for\x20this\x20context','tokenInternalId','105558RzPuEU','context','\x0aSuccessfully\x20logged\x20in\x20using\x20','\x27\x20successfully\x20updated.','fullUrl','Choose\x20the\x20context\x20to\x20','token\x20login','Follow\x20the\x20steps\x20displayed\x20on\x20the\x20page\x20opened\x20in\x20the\x20browser\x20(URL\x20opened:\x20','map','defaultBaseUrl','\x20(api\x20host:\x20','replace','List\x20all\x20available\x20contexts','sort','Use\x20browser\x20login\x20but\x20only\x20print\x20URL\x20which\x20can\x20be\x20used\x20to\x20login','Use\x20job\x20with\x20id:','ctx'];a2Z=function(){return j;};return a2Z();}import{set}from'lodash-es';import a2f from'inquirer';export class CliContext{[a2A(0x22e)];[a2A(0x1ab)];[a2A(0x1ee)];[a2A(0x1fa)];[a2A(0x1c9)];constructor(Z,h=undefined,T='https://api.northflank.com'){const n=a2A;this[n(0x22e)]=h,this['defaultBaseUrl']=T,this['apiClient']=Z;const P=new InquirerHelper(Z);this['login']=getCommand()[n(0x1ba)](n(0x1c9))[n(0x1e0)](n(0x1c5))[n(0x1ca)](n(0x1fd),'Use\x20manual\x20login\x20with\x20API\x20token',![])[n(0x1ca)](n(0x202),n(0x1b0),![])['option'](n(0x208),n(0x216))['option'](n(0x22a),n(0x1d7))[n(0x1ca)](n(0x1e8),n(0x1c2),this[n(0x1ab)])[n(0x1ca)](n(0x220),n(0x1f2),![])[n(0x20d)](async S=>{const a=n;set(S,a(0x212),this['sanitiseHostname'](S[a(0x212)]));const z=S[a(0x1e7)]||S['token']!==undefined,{name:H,host:l,token:E,override:Y}=z?await this[a(0x218)](S,P):await this[a(0x1b7)](S,P);try{await this[a(0x1ee)][a(0x1d5)][a(0x21b)]({'name':H,'host':l,'token':E},Y);}catch(y){error(y[a(0x22b)]);return;}if(!await this[a(0x1c8)]())error(a(0x1ed)),await this['apiClient'][a(0x1d5)][a(0x213)](H);else{const r=z?a(0x23a):a(0x1e9),p=a(0x236)+r+a(0x214)+a2T[a(0x1c3)](H)+a(0x1ac)+l+')';success(p);}}),this[n(0x1fa)]=getCommand()['name'](n(0x235))[n(0x1e0)]('Retrieve\x20and\x20update\x20local\x20context\x20settings.')[n(0x1c1)](n(0x1fa))['alias'](n(0x1b2));const f=getCommand()[n(0x1ba)](n(0x21a))[n(0x1ba)]('ls')[n(0x1e0)](n(0x1ae))[n(0x1ca)]('--all',n(0x209))[n(0x20d)](async S=>{const G=n;console['log'](Z[G(0x1d5)]['getInfo']());const z=Z[G(0x1d5)][G(0x1f9)]();if(S[G(0x1e1)]===!![]){console[G(0x1ea)](z);return;}const H=z[G(0x1d4)],l=z[G(0x1fa)][G(0x1af)]((E,Y)=>E['name']===H?-0x1:Y['name']===H?0x1:0x0)[G(0x1aa)](E=>{const L=G,Y=H===E[L(0x1ba)]?L(0x1cc):'';return{'Name':''+E['name']+Y,'Host':E['host'],'Token\x20scope':E['tokenScope'],'Default\x20Project':E[L(0x1bd)]||'-','Default\x20Service':E[L(0x1e6)]||'-'};});printAsTable(l,G(0x1dc));}),V=getCommand()[n(0x1ba)](n(0x1ce))[n(0x1e0)](n(0x229))[n(0x20d)](async()=>{const Q=n;console[Q(0x1eb)](Z['contextProvider'][Q(0x203)]());const S=Z[Q(0x1d5)][Q(0x1bc)]();if(S===undefined){console[Q(0x1eb)](Q(0x1d1));return;}const z=decodeJwtPayload(S['token']),H=S['host'];console[Q(0x1eb)](a2T[Q(0x1d6)](Q(0x21d))+':\x20\x0a\x20\x20Name:\x09\x09\x09'+S['name']+'\x0a\x20\x20Host:\x09\x09\x09'+H+Q(0x1ec)+S[Q(0x217)]+Q(0x1f0)+(S['project']||'-')+'\x0a\x20\x20Default\x20Service:\x09'+(S['service']||'-')+Q(0x1df)+(z?.[Q(0x233)]||'-')+'\x0a\x20\x20Token\x20Role\x20ID:\x09'+(z?.[Q(0x1fb)]||'-')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20');}),x=getCommand();x['name'](n(0x204))['description'](n(0x1c4))[n(0x1ca)]('-n,\x20--name\x20[NAME]',n(0x207))['action'](async S=>{const O=n,z=S?.[O(0x1ba)]||await this[O(0x21e)](O(0x204));this[O(0x1ee)]['contextProvider']['useContext'](z),success(O(0x1c0)+z);});const d='-i,\x20--id\x20[ID]',U=getCommand()[n(0x1ba)](n(0x1bd))[n(0x1e0)](n(0x1f6))[n(0x1ca)](d,n(0x1bb))[n(0x20d)](async S=>{const i=n,z=S?.['id']||await P[i(0x1d2)]()();this[i(0x1ee)]['contextProvider'][i(0x223)](z),console[i(0x1eb)](i(0x20f),z);}),B=getCommand()['name']('service')[n(0x1e0)]('Change\x20the\x20default\x20service\x20in\x20the\x20current\x20local\x20context')['option'](d,n(0x1da))[n(0x20d)](async S=>{const c=n,z=S?.['id']||await P[c(0x1d9)](this['getProjectName']())();console['log']('Use\x20service\x20with\x20id:',z),this['apiClient'][c(0x1d5)][c(0x1b8)](z);}),q=getCommand()[n(0x1ba)](n(0x1fe))[n(0x1e0)](n(0x221))[n(0x1ca)](d,n(0x227))[n(0x20d)](async S=>{const g=n,z=S?.['id']||await P[g(0x1bf)](this['getProjectName']())();console[g(0x1eb)](g(0x1b1),z),await this[g(0x1ee)]['contextProvider'][g(0x1b9)](z);});x[n(0x1b3)](U),x[n(0x1b3)](q),x[n(0x1b3)](B);const w=getCommand()['name'](n(0x1f4))[n(0x1c1)](n(0x1d3))[n(0x1c1)]('rm')[n(0x1e0)](n(0x200))[n(0x1ca)](d,'Local\x20context\x20name\x20to\x20remove.')[n(0x20d)](async S=>{const u=n,z=S?.['id']||await this['askForContext'](u(0x1f4)),H=this['apiClient'][u(0x1d5)]['getCurrentContext']()?.[u(0x1ba)];this[u(0x1ee)][u(0x1d5)][u(0x213)](z),success(u(0x20a)+z+u(0x1f3));if(!this[u(0x1c6)]()){warning(u(0x224));return;}if(H===z){const l=S?.['name']||await this[u(0x21e)](u(0x206));this['apiClient'][u(0x1d5)][u(0x201)](l),success('Changed\x20current\x20context\x20to\x20'+l);}}),M=getCommand()[n(0x1ba)](n(0x1cd))['alias'](n(0x1be))[n(0x1e0)](n(0x1f5))[n(0x1ca)](n(0x22a),n(0x232))['action'](async S=>{const I=n,{contextProvider:z}=this[I(0x1ee)],H=S?.['token']||await P['tokenPrompt'](),l=z['getCurrentToken']();z[I(0x21c)](H);if(await this['verifyToken']())success(I(0x1cf)+z[I(0x1b4)]()+I(0x237));else{if(l)z[I(0x21c)](l);error('Failed\x20to\x20login\x20with\x20the\x20provided\x20token.\x20Token\x20was\x20not\x20changed');}});this[n(0x1fa)][n(0x1b3)](f),this['contexts']['addCommand'](V),this[n(0x1fa)]['addCommand'](x),this[n(0x1fa)][n(0x1b3)](w),this[n(0x1fa)][n(0x1b3)](M);}async[a2A(0x1b7)](Z,h){const k=a2A,T=!Z[k(0x21f)],P=Z[k(0x212)]??this[k(0x1ab)],f=new NorthflankApiBrowserLogin(P,T,this[k(0x22e)]);let V;f['on'](k(0x222),({url:B})=>{const F=k;if(T){const q=B[F(0x1ad)](/sessionToken=.*/,F(0x1de));console[F(0x1eb)](F(0x1a9)+q+')'),V=a2f[F(0x1f1)]([{'type':F(0x1db),'name':F(0x238),'message':F(0x1f8),'default':![]}]),V[F(0x1b5)](w=>{const J=F;process['stdout']['moveCursor'](0x0,-0x1),process[J(0x1dd)][J(0x20b)](0x1),w['fullUrl']&&console[J(0x1eb)](J(0x22c)+B+'\x20');});}else console[F(0x1eb)](F(0x22c)+B+'\x20');});const {token:x,contextName:d}=await f[k(0x1ef)]()[k(0x1e4)](async B=>{const o=k;error(o(0x219)+B[o(0x22b)]+'.\x20Using\x20fallback.');const q=await this[o(0x218)](Z,h);return{'token':q['token'],'contextName':q[o(0x1ba)]};})['finally'](()=>{const X=k;if(V)V['ui'][X(0x20e)]();}),U=Z[k(0x1ba)]??d??k(0x226)+new Date()['valueOf']();return{'name':U,'token':x,'host':P,'override':Z[k(0x1f7)]??![]};}[a2A(0x228)]=Z=>{const s=a2A;let h=Z;return!/^https?:\/\//i[s(0x22d)](h)&&(h=s(0x1c7)+h),h=h[s(0x1ad)](/\/+$/,''),h;};async['apiTokenLogin'](Z,h){const t=a2A,T=this['apiClient'][t(0x1d5)][t(0x1f9)]()['contexts'],{name:P,token:f,host:V,override:x}=await h[t(0x210)](Z,T);return{'name':P,'token':f,'host':V,'override':x};}[a2A(0x1cb)](){const R=a2A,Z=this[R(0x1ee)]['contextProvider']['getCurrentProjectName']();if(Z===undefined)throw new Error('No\x20project\x20in\x20current\x20context.\x20Please\x20set\x20project\x20before\x20setting\x20a\x20project-scoped\x20resource');return Z;}async[a2A(0x21e)](Z){const b=a2A;if(!this['contextAvailable']())throw new Error(b(0x1ff));const h=this[b(0x1ee)][b(0x1d5)]['loadContextWrapper']()[b(0x1fa)]['map'](P=>P[b(0x1ba)]),T=h[b(0x225)]>0x4?b(0x211):'list';return(await a2f[b(0x1f1)]([{'type':T,'name':b(0x1ba),'message':b(0x239)+Z+':','choices':h}]))[b(0x1ba)];}[a2A(0x1c6)](){const m=a2A;return this[m(0x1ee)][m(0x1d5)][m(0x1f9)]()['contexts']['length']>0x0;}async['verifyToken'](){const N=a2A;try{const Z=this[N(0x1ee)][N(0x1d5)][N(0x231)](),h=this[N(0x1ee)][N(0x1d5)][N(0x205)](),T=Z+'/v1/login',P={'Authorization':N(0x1e3)+h},f=new ProxyAgent(),V=await retry(0x3)(async()=>a2P(T,{'method':N(0x1d8),'signal':AbortSignal['timeout'](0xbb8),'headers':P,'agent':f}));if(V['ok'])return!![];return![];}catch(x){return![];}}}
@@ -1 +1 @@
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)];};}
1
+ const a3Q=a3h;(function(Z,h){const L=a3h,T=Z();while(!![]){try{const P=-parseInt(L(0x1cd))/0x1*(-parseInt(L(0x1fa))/0x2)+parseInt(L(0x1fc))/0x3*(parseInt(L(0x1ff))/0x4)+-parseInt(L(0x1cb))/0x5+parseInt(L(0x1b9))/0x6+-parseInt(L(0x1cf))/0x7*(parseInt(L(0x1ba))/0x8)+-parseInt(L(0x1b5))/0x9*(-parseInt(L(0x1ca))/0xa)+-parseInt(L(0x1e8))/0xb*(parseInt(L(0x1f7))/0xc);if(P===h)break;else T['push'](T['shift']());}catch(f){T['push'](T['shift']());}}}(a3Z,0x42b15));import{ApiClient,CopyType}from'@northflank/js-client';function a3Z(){const X=['\x20to\x20','downloadCmd','617573JTbNAD','input','from','\x20file\x20--localPath\x20my_directory\x20--remotePath\x20/home/','\x20files','localPath','DIRECTORY_UPLOAD','job','type','Uploaded\x20file\x20from\x20\x27','local','\x20(random\x20container\x20will\x20be\x20chosen\x20if\x20not\x20specified)','prompt','--instance\x20--instanceName\x20[NAME]','File\x20and\x20directory\x20upload\x20for\x20Northflank\x20job.','12mcDlWW','\x27localPath\x27','File\x20and\x20directory\x20upload\x20for\x20Northflank\x20service.','16nCKewG','askForProject','6kKUGXW','alias','slice','900344EbdqLU','Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.','action','contextProvider','org','FILE_UPLOAD','description','remotePath','Remote\x20file\x20or\x20directory','files','getStandardCopyCommand','uploadCmd','DIRECTORY_DOWNLOAD','user\x20home','ed-file.txt\x0a\x20\x20','\x20files\x20','FILE_DOWNLOAD','\x20the\x20specified\x20','--local\x20--localPath\x20[LOCALPATH]','63HJoITI','s.\x20Please\x20enter\x20a\x20path:','upload','download','1047024mivwmh','1637848xJCNdR','logCopyResult','-dir','\x20is\x20required\x20for\x20','ensureRelevantPathIsSet','File\x20and\x20directory\x20download\x20for\x20Northflank\x20job.','askForPath','Project\x20for\x20','askForProjectContext','\x27\x20to\x20\x27','--noDefaults','Downloaded\x20file\x20\x27','\x20file\x20--localPath\x20my_directory/my-file.txt\x20--remotePath\x20/home/my-','name','\x27\x20to\x20container\x20directory\x20\x27','askForService','182030EvjYuz','1785330nqnsNN','--container\x20--containerId\x20[NAME]','17377oCIFAJ','Instance\x20(pod\x20name)\x20used\x20to\x20','7FOnkAP','option','getCurrentProjectName','Team\x20id','getTokenScope','askForTeam','--team\x20--teamId\x20[TEAMID]','\x20directory\x20is\x20used.\x20If\x20the\x20directory\x20for\x20','.\x20If\x20the\x20','askForJob','\x20directory:\x20\x20\x20\x20\x20northflank\x20','\x20(random\x20instance\x20will\x20be\x20chosen\x20if\x20not\x20specified)','File\x20and\x20directory\x20download\x20for\x20Northflank\x20services\x20and\x20jobs.','Id\x20[NAME]','apiClient','--project\x20--projectId\x20[NAME]','addCommand','File\x20and\x20directory\x20download\x20for\x20Northflank\x20service.','\x27\x20to\x20local\x20directory\x20\x27','Path\x20does\x20not\x20exist,\x20it\x20will\x20be\x20created.\x0aExamples:\x0a\x20\x20','service','charAt','Uploaded\x20all\x20directory\x20contents\x20from\x20\x27'];a3Z=function(){return X;};return a3Z();}import{assertContextExisting,customUserAgent,getCommand,success}from'../utils.js';import{InquirerHelper}from'../inquirer-helper.js';import{capitalize}from'lodash-es';import a3T from'inquirer';function a3h(Z,h){const T=a3Z();return a3h=function(P,f){P=P-0x1a5;let V=T[P];return V;},a3h(Z,h);}export class CliFileCopy{[a3Q(0x1e7)];[a3Q(0x1ad)];[a3Q(0x1dd)];[a3Q(0x1ac)]=(Z,h)=>{const O=a3Q,T=capitalize(h),P=h===O(0x1b7)?'remote':O(0x1f2),f=h===O(0x1b7)?O(0x1af):'current\x20working',V=h===O(0x1b7)?'to':O(0x1ea),x=getCommand(!![])[O(0x1c7)]('file')[O(0x1a8)](T+O(0x1b1)+V+O(0x1b3)+Z+O(0x1d7)+P+'Path\x20is\x20not\x20specified,\x20the\x20'+f+O(0x1d6)+P+O(0x1e2)+T+'\x20single\x20file:\x20\x20\x20northflank\x20'+h+'\x20'+Z+O(0x1c6)+h+O(0x1b0)+T+O(0x1d9)+h+'\x20'+Z+O(0x1eb)+h+O(0x1bc))['option'](O(0x1de),O(0x1c1)+h);return this[O(0x1dd)][O(0x1a5)][O(0x1d3)]()===O(0x1a6)&&x['option'](O(0x1d5),O(0x1d2)),x[O(0x1d0)]('--'+Z+'\x20--'+Z+O(0x1dc),Z[O(0x1e4)](0x0)['toUpperCase']()+Z[O(0x1fe)](0x1)+O(0x1e6)+h+O(0x1ec))[O(0x1d0)](O(0x1f5),O(0x1ce)+h+O(0x1da))[O(0x1d0)](O(0x1cc),'Container\x20used\x20to\x20'+h+O(0x1f3))[O(0x1d0)](O(0x1b4),'Local\x20file\x20or\x20directory')[O(0x1d0)]('--remote\x20--remotePath\x20[REMOTEPATH]',O(0x1aa))['option'](O(0x1c4),O(0x200),![]),x;};constructor(Z,h){const i=a3Q;this[i(0x1dd)]=new ApiClient(Z,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':h});const T=new InquirerHelper(this[i(0x1dd)]);this[i(0x1e7)]=getCommand()['name']('download')[i(0x1fd)]('dl')['description'](i(0x1db)),this['uploadCmd']=getCommand()[i(0x1c7)](i(0x1b7))[i(0x1fd)]('ul')[i(0x1a8)]('File\x20and\x20directory\x20upload\x20for\x20Northflank\x20services\x20and\x20jobs.');const P=getCommand()['name'](i(0x1e3))[i(0x1a8)](i(0x1e0)),f=getCommand()[i(0x1c7)](i(0x1e3))[i(0x1a8)](i(0x1f9)),V=getCommand()[i(0x1c7)](i(0x1ef))[i(0x1a8)](i(0x1bf)),x=getCommand()['name'](i(0x1ef))[i(0x1a8)](i(0x1f6)),d=B=>{const c=i;return this[c(0x1ac)](c(0x1e3),B)[c(0x201)](async q=>{const g=c,{teamId:w,projectId:M,serviceId:S,containerId:z,instanceName:H,noDefaults:l,quiet:E}=q;assertContextExisting(this[g(0x1dd)]);const Y=l?undefined:Z[g(0x1d1)](),{projectId:y,teamId:r}=await this[g(0x1c2)](Z,T,M,w,Y),p=l?undefined:Z['getCurrentServiceName'](),e=S||p||await T[g(0x1c9)](y,r)(),{remotePath:A,localPath:n}=await this['ensureRelevantPathIsSet'](B,q),a={'teamId':r,'projectId':y,'serviceId':e},G=await this[g(0x1dd)][B][g(0x1e3)][g(0x1ab)](a,{'containerName':z,'instanceName':H,'localPath':n,'remotePath':A});this[g(0x1bb)](G,E);});},U=B=>{const u=i;return this[u(0x1ac)](u(0x1ef),B)['action'](async q=>{const I=u,{projectId:w,teamId:M,jobId:S,instanceName:z,containerId:H,noDefaults:l,quiet:E}=q;assertContextExisting(this[I(0x1dd)]);const Y=l?undefined:Z[I(0x1d1)](),{projectId:y,teamId:r}=await this[I(0x1c2)](Z,T,w,M,Y),p=S||await T[I(0x1d8)](y,r)(),{remotePath:e,localPath:A}=await this[I(0x1be)](B,q),n={'teamId':r,'projectId':y,'jobId':p},a=await this[I(0x1dd)][B]['job'][I(0x1ab)](n,{'containerName':H,'instanceName':z,'localPath':A,'remotePath':e});this[I(0x1bb)](a,E);});};P[i(0x1df)](d(i(0x1b8))),V[i(0x1df)](U('download')),f[i(0x1df)](d(i(0x1b7))),x['addCommand'](U(i(0x1b7))),this[i(0x1e7)][i(0x1df)](P),this['downloadCmd'][i(0x1df)](V),this['uploadCmd'][i(0x1df)](f),this[i(0x1ad)][i(0x1df)](x);}[a3Q(0x1c2)]=async(Z,h,T,P,f)=>{const k=a3Q,V=Z[k(0x1d3)]()===k(0x1a6)?P??await h[k(0x1d4)]()():undefined,x=T||f||await h[k(0x1fb)](V)();return{'teamId':V,'projectId':x};};[a3Q(0x1bb)]=(Z,h)=>{const F=a3Q;if(h)return;const {sourceDirectory:T,targetDirectory:P,sourceFile:f,targetFile:V}=Z;switch(Z[F(0x1f0)]){case CopyType[F(0x1ae)]:{success('Downloaded\x20all\x20directory\x20contents\x20from\x20\x27'+T+F(0x1e1)+P+'\x27');break;}case CopyType[F(0x1b2)]:{success(F(0x1c5)+T+'/'+f+F(0x1c3)+P+'/'+V+'\x27');break;}case CopyType[F(0x1ee)]:{success(F(0x1e5)+T+F(0x1c8)+P+'\x27');break;}case CopyType[F(0x1a7)]:{success(F(0x1f1)+T+'/'+f+F(0x1c3)+P+'/'+V+'\x27');break;}}};[a3Q(0x1be)]=async(Z,h)=>{const J=a3Q,T=Z==='download'&&h['remotePath']===undefined?await this[J(0x1c0)]('\x27remotePath\x27',J(0x1b8)):h[J(0x1a9)],P=Z==='upload'&&h[J(0x1ed)]===undefined?await this[J(0x1c0)](J(0x1f8),J(0x1b7)):h[J(0x1ed)];return{'localPath':P,'remotePath':T};};[a3Q(0x1c0)]=async(Z,h)=>{const o=a3Q,T=Z+o(0x1bd)+h+o(0x1b6);return(await a3T[o(0x1f4)]([{'type':o(0x1e9),'name':'name','message':T}]))[o(0x1c7)];};}