@northflank/cli 0.11.0 → 0.11.2

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