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