@northflank/cli 0.11.3 → 0.11.4

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