@northflank/cli 0.10.15 → 0.11.0
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.
- package/dist/api-helpers.js +1 -1
- package/dist/cli.js +1 -1
- package/dist/context/contextCommands.js +1 -1
- package/dist/copy/index.js +1 -1
- package/dist/defaults.js +1 -1
- package/dist/exec/index.js +1 -1
- package/dist/formatting/command-overview.js +1 -1
- package/dist/formatting/console-format-helpers.js +1 -1
- package/dist/formatting/terminal-chart.js +1 -1
- package/dist/inquirer-helper.js +1 -1
- package/dist/login/browser-login.js +1 -1
- package/dist/logs/index.js +1 -1
- package/dist/logs/log-formatter.js +1 -1
- package/dist/metrics/index.js +1 -1
- package/dist/pagination/inquirer-pagination-prompt.js +1 -1
- package/dist/port-forward/index.js +1 -1
- package/dist/ssh/index.js +1 -0
- package/dist/utils.js +1 -1
- package/package.json +4 -3
package/dist/api-helpers.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
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};}
|
package/dist/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env -S node --no-deprecation
|
|
2
|
-
const a1x8=a1N;(function(x,N){const x7=a1N,w=x();while(!![]){try{const Y=parseInt(x7(0xca))/0x1*(-parseInt(x7(0x16a))/0x2)+-parseInt(x7(0xd6))/0x3+-parseInt(x7(0xcb))/0x4+-parseInt(x7(0xc1))/0x5+-parseInt(x7(0x12c))/0x6*(-parseInt(x7(0xf5))/0x7)+parseInt(x7(0xb2))/0x8*(parseInt(x7(0x133))/0x9)+parseInt(x7(0xa1))/0xa;if(Y===N)break;else w['push'](w['shift']());}catch(L){w['push'](w['shift']());}}}(a1x,0xbeed5));import{ApiClient,ApiClientFileContextProvider,GetApiEndpointPaginated}from'@northflank/js-client';import{Command}from'commander';import a1w from'fs';import a1Y from'chalk';function a1N(x,N){const w=a1x();return a1N=function(Y,L){Y=Y-0x9d;let t=w[Y];return t;},a1N(x,N);}import{CliContext}from'./context/contextCommands.js';import{agent,assertContextExisting,asyncSequential,checkUpdate,customUserAgent,error,getCommand,proxyEnvsSet,warning}from'./utils.js';import*as a1L from'./defaults.js';function a1x(){const xd=['backup-destination','italic','find','=>\x20running\x20command\x20with:\x20','json','10707410AmRZjE','yaml','northflank','credentialId','subdomain','backupDestinationId','exitCode','clusterId','serviceId','help\x20[command]','VERBOSE:\x20HTTP_PROXY\x20or\x20HTTPS_PROXY\x20environment\x20variable\x20set:\x20tunnelling\x20traffic\x20through\x20HTTP\x20proxy.','template','bind','Error\x20occured\x20while\x20trying\x20to\x20run\x20command,\x20error:\x20','askForBuild','svc','default','883992ldctxO','job','length','moveCursor','green','page','askForSubdomain','VERBOSE:\x20Request\x20body\x20->\x20','statusText','credential','Options\x20\x27loadAll\x27\x20can\x20not\x20be\x20combined\x20with\x20\x27page\x27\x20or\x20\x27cursor\x27','subdomainId','alias','enablePositionalOptions','opts','1504745rCPchN','services','count','File\x20to\x20load\x20resource\x20json\x20from','description','forEach','replace','helpOption','branches','11589RXvCQb','768784HvvyWR','isArray','../package.json','repositories','cursor','buildId','rgn','domainId','region','-v,\x20--version','tag','1375935noymAx','domain','login','templateRunId','yml','askForVolume','contextProvider','requiredPermissions','name','API\x20request\x20failed\x0a\x09Message:\x20','templateId','getMetricsCommand','resourceTagId','runId','loadAll','.json','boolean','toLowerCase','branch','askForAddon','keys','repository','defaults','nonInteractiveEndpoint','scrt','stringify','backup-destinations','isPaginatedEndpoint','invoices','projectId','addon','228298BECmgF','domains','parse','cred','list','file','delete','load','\x20Northflank\x20resources','runs','jobs','map','askForJobRun','File\x20does\x20not\x20exist:\x20','OPTIONAL:\x20','startsWith','version','portFwdCmd','output','logSinkId','message','Manage\x20your\x20Northflank\x20resources\x20from\x20the\x20command\x20line','askForSubdomainPath','repo','data','askForJob','secretId','backupId','pipelineId','askForClusterId','clearLine','VERBOSE:\x20Using\x20endpoint\x20->\x20','downloadCmd','trim','endsWith','join','hasNextPage','argv','jobId','docsTagsPath','pop','getOwnPropertyNames','body','some','base','askForProject','deleteWarningPrompt','dmn','(HTTP\x20status\x20code:\x20','askForBackupDestination','rawResponse','sort','includes','inv','option','174yAnlNL','askGeneric','commands','askForService','stdout','pagination','opt','27gfQquR','adn','utf-8','parseAsync','\x0a\x09details\x20:','brn','volume','service','contexts','subdomainPath','repos','askForCredentials','Print\x20the\x20current\x20version\x20of\x20the\x20Northflank\x20cli','noDefaults','skipValidation',',\x20NF\x20error\x20id:\x20',',\x20-','Failed\x20to\x20validate\x20input\x20(incorrect\x20format):\x20','url','getCurrentContext','addonId','backup','type','filter','tpl','\x20properties','askForAddonBackup','split','backups','endpoints','log','existsSync','volumeId','.yaml','logs','resource','getCurrentServiceName','Get\x20information\x20about\x20Northflank\x20','path','required','-i,\x20--input\x20<resource-def>','askForTemplate','vol','tags','\x0a>\x20Token\x20permissions\x20required:\x20','execCmd','retrievePayloadViaInteractiveCli','Unknown\x20input\x20file\x20type:\x20','templates','after','addons','toUpperCase','pln','setPathVars','error','106vBlLin','get','prj','getLogsCommand','credentials','addCommand'];a1x=function(){return xd;};return a1x();}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{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 a1t from'js-yaml';import{readFileSync}from'fs';import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta[a1x8(0x145)]),__dirname=dirname(__filename),pgk=JSON[a1x8(0xf7)](readFileSync(join(__dirname,a1x8(0xcd)),a1x8(0x135)));export const getProgram=x=>{const x9=a1x8,N=new Command(x9(0xa3));N[x9(0xc5)](x9(0x10a)),N[x9(0xbf)](!![]),N[x9(0x105)]('Northflank\x20cli\x20version:\x20'+a1Y['underline'](pgk[x9(0x105)]),x9(0xd4),x9(0x13f));const w=new ApiClient(x,{'throwErrorOnHttpErrorCode':![],'customUserAgent':customUserAgent,'agent':agent}),Y=new CliContext(w,agent),L=new CliPortForward(x,agent),t=new CliExec(x,agent),c=new CliFileCopy(x,agent),O=new CliLogs(x,agent),v=new CliMetrics(x,agent);return N[x9(0x16f)](L[x9(0x106)]),N['addCommand'](t[x9(0x160)]),N[x9(0x16f)](c[x9(0x115)]),N[x9(0x16f)](c['uploadCmd']),N[x9(0x16f)](Y[x9(0xd8)]),N[x9(0x16f)](Y[x9(0x13b)]),generateCommands(w,w[x9(0x150)],N,O,v),N[x9(0x16f)](getCommandOverview(N)),N['helpCommand'](x9(0xaa),'Display\x20help\x20for\x20command'),N[x9(0xc8)](undefined,'Display\x20help\x20for\x20command'),N;};((async()=>{const xx=a1x8;try{const x=new ApiClientFileContextProvider();await checkUpdate(x);const N=getProgram(x);await N[xx(0x136)](process[xx(0x11a)]);}catch(w){error(xx(0xae)+w[xx(0x109)]),process[xx(0x11a)]['find'](Y=>Y==='--verbose')&&console[xx(0x151)](w),process[xx(0xa7)]=0x1;}})());function isListCommand(x){const xN=a1x8,N=[[xN(0x16b),'addon',xN(0x14f)],[xN(0x16b),xN(0xb3),xN(0xfe)]];return x[xN(0x9e)](w=>w===xN(0xf9))||N[xN(0x120)](w=>isEqual(x,w));}function generateCommands(x,N,w,Y,L,t=a1L[a1x8(0xec)],c=[]){const xw=a1x8,O=new InquirerHelper(new ApiClient(x[xw(0xdc)],{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':agent}));function v(p,j){const xY=xw;return p[xY(0x15a)]!==![]&&j===undefined;}function r(p,j){const xL=xw,{opt:K,name:i}=p,Q=K[xL(0xb1)],k=v(K,Q),d=M=>M[xL(0xb4)]>0x1?'--'+M:'-'+M,J=K?.[xL(0xbe)],X=J?Array[xL(0xcc)](J)?'-'+J?.[xL(0x100)](M=>d(M))[xL(0x118)](xL(0x143))+',':''+d(J):'',H=k?'':xL(0x103),u=typeof K[xL(0x149)]==='boolean'||K[xL(0x149)]===xL(0xe6)?X+'\x20--'+i:X+'\x20--'+i+'\x20<'+i[xL(0x166)]()+'>',C=H+K[xL(0xc5)];j['option'](u[xL(0x116)](),C,Q);}function a(p,j){const xt=xw;if(j[xt(0x12e)][xt(0x120)](K=>K['name']()===xt(0x155)))return;isEqual(p,[xt(0x16b),'service'])&&(j[xt(0x16f)](Y[xt(0x16d)](xt(0x13a))),j[xt(0x16f)](L[xt(0xe1)](xt(0x13a))),j['addCommand'](Y[xt(0x16d)]('service',!![])),j[xt(0x16f)](L[xt(0xe1)]('service',!![]))),isEqual(p,[xt(0x16b),xt(0xb3)])&&(j[xt(0x16f)](Y['getLogsCommand'](xt(0xb3))),j[xt(0x16f)](L[xt(0xe1)](xt(0xb3))),j['addCommand'](Y['getLogsCommand']('job',!![])),j['addCommand'](L[xt(0xe1)]('job',!![]))),isEqual(p,['get','addon'])&&(j[xt(0x16f)](Y[xt(0x16d)](xt(0xf4))),j['addCommand'](L[xt(0xe1)](xt(0xf4)))),isEqual(p,[xt(0x16b),xt(0xf4),xt(0x148)])&&j['addCommand'](Y[xt(0x16d)](xt(0xf4),![],!![])),isEqual(p,[xt(0x16b),xt(0xf4),'restores'])&&j[xt(0x16f)](Y[xt(0x16d)](xt(0xf4),![],!![],!![]));}return Object['getOwnPropertyNames'](t)['forEach'](p=>{const xi=xw,j=N[p],K=t[p],i=c['concat']([p]);function Q(F,G){const xc=a1N,I=Object[xc(0x11e)](F||{});I[xc(0x100)](A=>{return{'name':A,'opt':F[A]};})[xc(0x128)]((A,P)=>!v(A[xc(0x132)])?!v(P['opt'])?0x0:0x1:-0x1)[xc(0xc6)](A=>{r(A,G);});}function k(F,G){const xO=a1N,I=[['project','projects',xO(0x16c)],[xO(0x13a),xO(0xc2),xO(0xb0)],[xO(0x16e),xO(0xbb),xO(0xf8)],[xO(0xf4),xO(0x165),xO(0x134)],[xO(0xb3),xO(0xff)],['plan','plans',xO(0x167)],[xO(0xd3),'regions',xO(0xd1)],[xO(0xd7),xO(0xf6),xO(0x124)],['secret','secrets',xO(0xee)],['volumes',xO(0x139),xO(0x15d)],[xO(0xc9),xO(0xe8),xO(0x138)],['invoice',xO(0xf2),xO(0x12a)],[xO(0xac),xO(0x163),xO(0x14b)],[xO(0x13d),xO(0xeb),xO(0xce),xO(0x10c)],[xO(0x170),xO(0xf0)],[xO(0xd5),xO(0x15e)]],A=I[xO(0x9e)](P=>P[xO(0x129)](G));if(A!==undefined)F['aliases'](A[xO(0x14a)](P=>P!==G));}async function d(F){const xv=a1N,G={},{contextProvider:I}=x,A=i['includes'](xv(0xfb)),P=F[xv(0x140)]===!![];async function y(b,z,Z){const xr=xv;if(has(K[xr(0x132)]?.[xr(0x159)]??{},b)){const g=!P&&!A&&Z?Z():undefined,T=F[b]||g||await z();set(G,b,T);}}return await asyncSequential(Object['entries'](K['opt']?.[xv(0x159)]??{}),async([b,z])=>{const xa=xv,Z=G?.['projectId'],g=G?.[xa(0xe0)];switch(b){case xa(0xf3):return await y('projectId',O[xa(0x122)][xa(0xad)](O),I['getCurrentProjectName']['bind'](I));case xa(0xa9):return await y(xa(0xa9),O[xa(0x12f)](Z)[xa(0xad)](O),I[xa(0x157)]['bind'](I));case xa(0x147):return await y('addonId',O[xa(0xe9)](Z)[xa(0xad)](O));case xa(0x11b):return await y(xa(0x11b),O[xa(0x10e)](Z)[xa(0xad)](O),I['getCurrentJobName'][xa(0xad)](I));case xa(0xe3):return await y('runId',O[xa(0x101)](G['jobId'],Z,![])[xa(0xad)](O));case'secretId':return await y(xa(0x10f),O['askForSecret'](Z)[xa(0xad)](O));case'domain':case'domainId':return await y(xa(0xd7),O['askForDomain'][xa(0xad)](O));case xa(0xa4):return await y(xa(0xa4),O[xa(0x13e)][xa(0xad)](O));case xa(0x153):return await y('volumeId',O[xa(0xdb)](Z)[xa(0xad)](O));case xa(0xa5):return await y(xa(0xa5),O[xa(0xb8)](G[xa(0xd7)])[xa(0xad)](O));case xa(0xbd):return await y('subdomainId',O[xa(0xb8)](G[xa(0xd2)])['bind'](O));case xa(0x13c):return await y('subdomainPath',O[xa(0x10b)](G['domain'],G[xa(0xa5)]??G['subdomainId'])[xa(0xad)](O));case xa(0x110):return await y('backupId',O[xa(0x14d)](Z,G['addonId'])['bind'](O));case xa(0xd0):return await y(xa(0xd0),O[xa(0xaf)](Z,G[xa(0xa9)],G[xa(0x11b)])[xa(0xad)](O));case xa(0xe0):return await y(xa(0xe0),O[xa(0x15c)]()[xa(0xad)](O));case xa(0xd9):return await y(xa(0xd9),O['askForTemplateRun'](g)[xa(0xad)](O));case xa(0x108):return await y(xa(0x108),O['askForLogSink']()[xa(0xad)](O));case xa(0x111):return await y(xa(0x111),O['askForPipeline'](Z)[xa(0xad)](O));case xa(0xe2):return await y(xa(0xe2),O['askForTag']()[xa(0xad)](O));case xa(0xa6):return await y(xa(0xa6),O[xa(0x126)]()['bind'](O));case xa(0xa8):return await y(xa(0xa8),O[xa(0x112)]()[xa(0xad)](O));default:return await y(b,O[xa(0x12d)](b,z?.['description'])[xa(0xad)](O));}}),G;}async function J(F){const xf=a1N,G={},I=K['opt']?.['isPaginatedEndpoint']?a1L['paginationArgs']:{},A={...K[xf(0x132)]?.['query']??{},...I},P=Object[xf(0xea)](A)[xf(0x14a)](y=>y!==xf(0xe4));return await asyncSequential(P,async y=>{if(F[y]!==undefined)return set(G,y,F[y]);}),G;}function X(){const xp=a1N;switch(i[0x0]){case'get':return xp(0x158)+(i[0x1]||'resource')+'s';case'update':return'Update\x20Northflank\x20'+(i[0x1]||xp(0x156))+xp(0x14c);default:return upperFirst(p)+xp(0xfd);}}function H(F,G){const xj=a1N;if(!G){const T=getCommand()['name'](kebabCase(p))[xj(0xc5)](X());return k(T,p),T;}const I=F?.['requiredPermissions']?a1Y[xj(0x9d)](xj(0x15f)+F[xj(0xdd)]):'',A=x[xj(0xdc)][xj(0x146)](),P=A!==undefined&&K?.['opt']?.[xj(0x11c)]!==undefined,y=A?.['host'][xj(0xc7)]('api.',''),b=P?'Documentation:\x20'+y+'/docs/v1/api/'+K?.[xj(0x132)]?.[xj(0x11c)]:'',z=F?.['description']||'',Z=getCommand(!![])[xj(0xde)](kebabCase(p))[xj(0xc5)](z)['addHelpText'](xj(0x164),[I,b][xj(0x118)]('\x0a'));k(Z,p);(K[xj(0x132)]?.[xj(0x11f)]||K[xj(0x132)]?.[xj(0xed)])&&(Z[xj(0x12b)]('-f,\x20--file\x20<file-path>',xj(0xc4)),Z['option'](xj(0x15b),'JSON-formatted\x20resource\x20definition,\x20takes\x20precedence\x20over\x20\x22--file\x22'));Q(K[xj(0x132)]?.['path'],Z),Q(K[xj(0x132)]?.['query'],Z);const g=K[xj(0x132)]?.[xj(0xf1)];return g&&Q(a1L['paginationArgs'],Z),Q(K[xj(0x132)]?.[xj(0x121)],Z),Z['action'](async()=>{const xK=xj;assertContextExisting(x);const R=Z[xK(0xc0)]();R?.['verbose']&&proxyEnvsSet&&warning(xK(0xab));const W=R[xK(0xb7)]!==undefined||R[xK(0xcf)]!==undefined;if(R[xK(0xe4)]===!![]&&W)throw new Error(xK(0xbc));const o=R?.[xK(0x107)],q=o===xK(0xa0),D=o===xK(0xa2)||o===xK(0xda),U=await d(R);O[xK(0x168)](U);const B=await J(R),V=Object[xK(0xea)](K[xK(0x132)]?.[xK(0x159)]??{})[xK(0x100)](m=>m+'='+a1Y[xK(0xb6)](U[m]))[xK(0x118)](',\x20');if(V['length']>0x0&&!q&&!D){const m=xK(0x9f)+V;console[xK(0x151)](m);}const S=K[xK(0x132)]?.['body']||K[xK(0x132)]?.[xK(0xed)]?await f(R,K,i):undefined;if(!R['force']&&i[xK(0x129)](xK(0xfb))&&!await O[xK(0x123)]()){warning('Resource\x20was\x20not\x20deleted.');return;}const s=g&&(R[xK(0xe4)]||(R[xK(0x107)]===xK(0xa0)||R[xK(0x107)]===xK(0xa2))&&!W);let h=s&&j instanceof GetApiEndpointPaginated?await j['all']({'parameters':U,'options':B,'data':S}):await j['call']({'parameters':U,'options':{...B},'data':S});if(R?.['verbose']){const l=h['request'];console['log'](xK(0x114)+l['method'][xK(0x166)]()+':'+l[xK(0x145)]),S!==undefined&&console[xK(0x151)](xK(0xb9)+a1Y[xK(0x9d)](JSON[xK(0xef)](S)));}if(h[xK(0x169)]){const {details:E,id:x0,message:x1,status:x2}=h[xK(0x169)],x3=E?xK(0x137)+JSON[xK(0xef)](E):'',x4=x0?xK(0x142)+x0:'',x5=xK(0x125)+x2+x4+')';throw new Error(xK(0xdf)+x1+'\x20'+x5+x3);}let n=0x0;printCallResult(R,q,h['data'],D,i,o,![],n,h[xK(0x127)]['statusText']);if(!R['quiet']&&!s&&!W&&h[xK(0x131)]?.[xK(0x119)])while(h[xK(0x131)]?.[xK(0x119)]){const x6=await O['askConfirm']('there\x20are\x20more\x20rows,\x20load?');if(x6)process[xK(0x130)][xK(0xb5)](0x0,-0x1),process[xK(0x130)][xK(0x113)](0x1),n+=h[xK(0x131)][xK(0xc3)],h=await h['pagination']['getNextPage'](),printCallResult(R,q,h[xK(0x10d)],D,i,o,!![],n,h[xK(0x127)][xK(0xba)]);else return;}}),Z;}const u=has(K,xi(0x132)),C=j,M=H(C,u);a(i,M),w[xi(0x16f)](M);const e=omit(K,'opt');Object[xi(0xea)](e)[xi(0xb4)]>0x0&&generateCommands(x,j,M,Y,L,e,i);});async function f(p,j,K){const xQ=xw,{input:i,file:Q}=p;if(i!==undefined)try{return JSON[xQ(0xf7)](i);}catch(k){try{return a1t[xQ(0xfc)](i);}catch(J){throw new Error('Unknown\x20input\x20format.\x20Not\x20valid\x20json\x20and\x20not\x20valid\x20yaml.');}}if(Q!==undefined){if(!a1w[xQ(0x152)](Q))throw new Error(xQ(0x102)+Q);const X=a1w['readFileSync'](Q)['toString']();let H;try{if(isString(X)){if(p[xQ(0xfa)]['endsWith'](xQ(0xe5)))H=JSON[xQ(0xf7)](X);else{if(p['file'][xQ(0x117)](xQ(0x154))||p[xQ(0xfa)][xQ(0x117)](xQ(0xda)))H=a1t[xQ(0xfc)](X);else throw new Error(xQ(0x162)+p['file'][xQ(0x14e)]('.')[xQ(0x11d)]());}}else H=X;return H;}catch(u){throw new Error(xQ(0x144)+u[xQ(0x109)]);}}if(j?.[xQ(0x132)]?.[xQ(0xed)])throw new Error('Expecting\x20resource\x20input\x20with\x20\x27--input\x27\x20or\x20\x27--file\x27\x20argument');return await O[xQ(0x161)](j,{'cmdPath':K,'skipValidation':p[xQ(0x141)]});}}const printCallResult=(x,N,w,Y,L,t,c,O,v)=>{const xk=a1x8;if(!x?.['quiet']){if(N)handleJsonOutput(x?.[xk(0x107)],w);else{if(Y)handleYamlOutput(x?.[xk(0x107)],w);else{if(isListCommand(L)){const r=t?.[xk(0x104)]('custom-columns=')?t['replace']('custom-columns=','')[xk(0x14e)](',')['map'](K=>K[xk(0xe7)]()):undefined,a=L[L[xk(0xb4)]-0x1],f=''+a+(a[xk(0x117)]('s')?'':'s'),p=upperFirst(f),j=has(w,f)?w[f]:w;printAsTable(j,p,r,c,O);}else console[xk(0x151)](consoleFormat(w,v));}}}};
|
|
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));}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a2C=a2N;(function(x,N){const u=a2N,w=x();while(!![]){try{const Y=parseInt(u(0x126))/0x1+parseInt(u(0x169))/0x2*(parseInt(u(0x16a))/0x3)+parseInt(u(0x172))/0x4+parseInt(u(0x162))/0x5+parseInt(u(0x12f))/0x6+-parseInt(u(0x17d))/0x7+-parseInt(u(0x137))/0x8;if(Y===N)break;else w['push'](w['shift']());}catch(L){w['push'](w['shift']());}}}(a2x,0xcdf59));import{ProxyAgent}from'proxy-agent';import a2w from'chalk';import{error,getCommand,retry,success,warning,decodeJwtPayload}from'../utils.js';import{InquirerHelper}from'../inquirer-helper.js';function a2N(x,N){const w=a2x();return a2N=function(Y,L){Y=Y-0x104;let t=w[Y];return t;},a2N(x,N);}import{printAsTable}from'../formatting/console-format-helpers.js';function a2x(){const s=['Change\x20the\x20default\x20job\x20in\x20the\x20current\x20local\x20context','No\x20current\x20context\x20set.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20one\x20or\x20\x27northflank\x20context\x20use\x27\x20to\x20select\x20an\x20existing\x20one.','Local\x20context\x20\x27','set-token','length','confirm','useProjectId','token','list','getCurrentContext','Open\x20this\x20URL\x20in\x20your\x20browser\x20and\x20follow\x20the\x20steps:\x0a\x09','log','Token\x20for\x20current\x20context\x20\x27','Use\x20browser\x20login\x20but\x20only\x20print\x20URL\x20which\x20can\x20be\x20used\x20to\x20login','--host\x20[HOST]','then','doNotOpenBrowser','contextProvider','Contexts','italic','apiClient','override','1314570mlyNmj','https://','description','addCommand','Retrieve\x20and\x20update\x20local\x20context\x20settings.','\x0aSuccessfully\x20logged\x20in\x20using\x20','replace','browserLogin','\x0a\x20\x20Default\x20Project:\x09','8553414VPaDjI','name','Change\x20current\x20context\x20to\x20context\x20identified\x20by\x20this\x20name','No\x20context\x20available.\x20Please\x20use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','verifyToken','browser-opened','option','Shows\x20full\x20context\x20information\x20(including\x20tokens)','29862232ZdfSTe','getProjectName','No\x20project\x20in\x20current\x20context.\x20Please\x20set\x20project\x20before\x20setting\x20a\x20project-scoped\x20resource','tokenLogin','job','valueOf','getCurrentToken','message','prompt','all','delete','Current\x20token\x20info','map','startLogin','loginPrompt','fullUrl','defaultBaseUrl','roleInternalId','askForContext','bold','--all','Use\x20project\x20with\x20id:','stdout','Bearer\x20','useJobId',',\x20added\x20context\x20with\x20name\x20','Token\x20for\x20this\x20context.\x20When\x20set,\x20browser\x20login\x20is\x20not\x20used','token\x20login','Change\x20the\x20default\x20service\x20in\x20the\x20current\x20local\x20context','use\x20from\x20now\x20on','Use\x20service\x20with\x20id:','Failed\x20to\x20login\x20with\x20the\x20provided\x20token,\x20make\x20sure\x20to\x20use\x20a\x20valid\x20token\x20and\x20host.','--override','Local\x20context\x20name\x20to\x20remove.','sanitiseHostname','\x0a\x20\x20Default\x20Service:\x09','\x0a\x20\x20Token\x20ID:\x09\x09','Shows\x20detailed\x20information\x20about\x20current\x20context','Switch\x20between\x20your\x20local\x20contexts',':\x20\x0a\x20\x20Name:\x09\x09\x09','\x27\x20successfully\x20removed.','Error\x20occured\x20during\x20browser\x20login:\x20','agent','3551115xZVLOW','askForProject','Service\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','apiTokenLogin','tokenInternalId','Project\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','Changed\x20current\x20context\x20to\x20','199646XsXLkH','33AIzRii','getInfo','action','Use\x20manual\x20login\x20with\x20API\x20token','login','Job\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','getCurrentName','GET','4671136VgLpvK','getCurrentBaseUrl','clearLine','Failed\x20to\x20login\x20with\x20the\x20provided\x20token.\x20Token\x20was\x20not\x20changed','test','\x0a\x20\x20Host:\x09\x09\x09','loadContextWrapper','update-token','useContext','--token-login','-i,\x20--id\x20[ID]','7978677CtwkSf','alias','project','List\x20all\x20available\x20contexts','No\x20context\x20available.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','search-list','tokenPrompt','updateToken','timeout','remove','removeContext','\x20(api\x20host:\x20','https://api.northflank.com','Use\x20job\x20with\x20id:','-n,\x20--name\x20[NAME]','Override\x20existing\x20contexts\x20(this\x20will\x20remove\x20project\x20and\x20service\x20context)','service','Display\x20full\x20URL\x20to\x20allow\x20opening\x20the\x20link\x20manually','Change\x20the\x20default\x20project\x20in\x20the\x20current\x20local\x20context','contexts','askForService','\x27\x20successfully\x20updated.','sort','close','\x0a\x20\x20\x20\x20\x20\x20\x20\x20','contextAvailable','moveCursor','use','show','host'];a2x=function(){return s;};return a2x();}import{NorthflankApiBrowserLogin}from'../login/browser-login.js';import a2Y from'node-fetch';import{set}from'lodash-es';import a2L from'inquirer';export class CliContext{[a2C(0x161)];['defaultBaseUrl'];['apiClient'];[a2C(0x105)];[a2C(0x16e)];constructor(x,N=undefined,w=a2C(0x189)){const M=a2C;this[M(0x161)]=N,this[M(0x147)]=w,this[M(0x124)]=x;const Y=new InquirerHelper(x);this[M(0x16e)]=getCommand()[M(0x130)](M(0x16e))['description']('Connect\x20the\x20CLI\x20to\x20your\x20Northflank\x20account.')[M(0x135)](M(0x17b),M(0x16d),![])['option']('--do-not-open-browser',M(0x11d),![])[M(0x135)](M(0x18b),'Name\x20for\x20login\x20context')['option']('-t,\x20--token\x20[TOKEN]',M(0x151))[M(0x135)](M(0x11e),'host\x20url\x20for\x20this\x20context',this['defaultBaseUrl'])[M(0x135)](M(0x157),M(0x18c),![])[M(0x16c)](async j=>{const e=M;set(j,'host',this['sanitiseHostname'](j[e(0x10f)]));const K=j[e(0x13a)]||j[e(0x117)]!==undefined,{name:i,host:Q,token:k,override:d}=K?await this[e(0x165)](j,Y):await this['browserLogin'](j,Y);try{await this[e(0x124)][e(0x121)]['addContext']({'name':i,'host':Q,'token':k},d);}catch(J){error(J[e(0x13e)]);return;}if(!await this['verifyToken']())error(e(0x156)),await this['apiClient'][e(0x121)][e(0x187)](i);else{const X=K?e(0x152):'browser\x20login',H=e(0x12b)+X+e(0x150)+a2w[e(0x123)](i)+e(0x188)+Q+')';success(H);}}),this['contexts']=getCommand()[M(0x130)]('context')[M(0x128)](M(0x12a))['alias'](M(0x105))['alias']('ctx');const L=getCommand()[M(0x130)](M(0x118))[M(0x130)]('ls')[M(0x128)](M(0x180))[M(0x135)](M(0x14b),M(0x136))[M(0x16c)](async j=>{const F=M;console[F(0x11b)](x[F(0x121)][F(0x16b)]());const K=x['contextProvider'][F(0x178)]();if(j[F(0x140)]===!![]){console['dir'](K);return;}const i=K['current'],Q=K[F(0x105)][F(0x108)]((k,d)=>k[F(0x130)]===i?-0x1:d[F(0x130)]===i?0x1:0x0)[F(0x143)](k=>{const G=F,d=i===k[G(0x130)]?'\x20(current)':'';return{'Name':''+k['name']+d,'Host':k[G(0x10f)],'Default\x20Project':k[G(0x17f)]||'-','Default\x20Service':k['service']||'-'};});printAsTable(Q,F(0x122));}),t=getCommand()[M(0x130)](M(0x10e))[M(0x128)](M(0x15c))[M(0x16c)](async()=>{const I=M;console[I(0x11b)](x[I(0x121)][I(0x16b)]());const j=x[I(0x121)][I(0x119)]();if(j===undefined){console[I(0x11b)](I(0x111));return;}const K=decodeJwtPayload(j['token']),i=j['host'];console['log'](a2w[I(0x14a)](I(0x142))+I(0x15e)+j[I(0x130)]+I(0x177)+i+I(0x12e)+(j[I(0x17f)]||'-')+I(0x15a)+(j['service']||'-')+I(0x15b)+(K?.[I(0x166)]||'-')+'\x0a\x20\x20Token\x20Role\x20ID:\x09'+(K?.[I(0x148)]||'-')+I(0x10a));}),c=getCommand();c[M(0x130)](M(0x10d))[M(0x128)](M(0x15d))[M(0x135)]('-n,\x20--name\x20[NAME]',M(0x131))['action'](async j=>{const A=M,K=j?.[A(0x130)]||await this[A(0x149)](A(0x10d));await this[A(0x124)][A(0x121)][A(0x17a)](K),success(A(0x168)+K);});const O=M(0x17c),v=getCommand()['name']('project')[M(0x128)](M(0x104))[M(0x135)](O,M(0x167))['action'](async j=>{const P=M,K=j?.['id']||await Y[P(0x163)]();await this['apiClient']['contextProvider'][P(0x116)](K),console[P(0x11b)](P(0x14c),K);}),r=getCommand()[M(0x130)](M(0x18d))['description'](M(0x153))['option'](O,M(0x164))[M(0x16c)](async j=>{const y=M,K=j?.['id']||await Y[y(0x106)](this[y(0x138)]())();console[y(0x11b)](y(0x155),K),await this['apiClient'][y(0x121)]['useServiceId'](K);}),a=getCommand()[M(0x130)](M(0x13b))[M(0x128)](M(0x110))[M(0x135)](O,M(0x16f))['action'](async j=>{const b=M,K=j?.['id']||await Y['askForJob'](this[b(0x138)]())();console[b(0x11b)](b(0x18a),K),await this['apiClient'][b(0x121)][b(0x14f)](K);});c[M(0x129)](v),c[M(0x129)](a),c['addCommand'](r);const f=getCommand()['name']('remove')[M(0x17e)](M(0x141))[M(0x17e)]('rm')['description']('Remove\x20a\x20context')[M(0x135)](O,M(0x158))['action'](async j=>{const z=M,K=j?.['id']||await this[z(0x149)](z(0x186)),i=this[z(0x124)][z(0x121)][z(0x119)]()?.[z(0x130)];await this['apiClient'][z(0x121)][z(0x187)](K),success(z(0x112)+K+z(0x15f));if(!this[z(0x10b)]()){warning(z(0x181));return;}if(i===K){const Q=j?.[z(0x130)]||await this['askForContext'](z(0x154));await this['apiClient']['contextProvider']['useContext'](Q),success(z(0x168)+Q);}}),p=getCommand()[M(0x130)](M(0x179))['alias'](M(0x113))[M(0x128)]('Update\x20token\x20for\x20current\x20context')[M(0x135)]('-t,\x20--token\x20[TOKEN]','Token\x20for\x20this\x20context')['action'](async j=>{const Z=M,{contextProvider:K}=this[Z(0x124)],i=j?.['token']||await Y[Z(0x183)](),Q=K[Z(0x13d)]();await K[Z(0x184)](i);if(await this[Z(0x133)]())success(Z(0x11c)+K[Z(0x170)]()+Z(0x107));else{if(Q)await K[Z(0x184)](Q);error(Z(0x175));}});this['contexts'][M(0x129)](L),this[M(0x105)][M(0x129)](t),this['contexts'][M(0x129)](c),this[M(0x105)]['addCommand'](f),this[M(0x105)][M(0x129)](p);}async[a2C(0x12d)](x,N){const g=a2C,w=!x[g(0x120)],Y=x[g(0x10f)]??this[g(0x147)],L=new NorthflankApiBrowserLogin(Y,w,this['agent']);let t;L['on'](g(0x134),({url:r})=>{const T=g;if(w){const a=r['replace'](/sessionToken=.*/,'sessionToken=********');console[T(0x11b)]('Follow\x20the\x20steps\x20displayed\x20on\x20the\x20page\x20opened\x20in\x20the\x20browser\x20(URL\x20opened:\x20'+a+')'),t=a2L[T(0x13f)]([{'type':T(0x115),'name':T(0x146),'message':T(0x18e),'default':![]}]),t[T(0x11f)](f=>{const R=T;process[R(0x14d)][R(0x10c)](0x0,-0x1),process[R(0x14d)][R(0x174)](0x1),f[R(0x146)]&&console[R(0x11b)]('Open\x20this\x20URL\x20in\x20your\x20browser\x20and\x20follow\x20the\x20steps:\x0a\x09'+r+'\x20');});}else console[T(0x11b)](T(0x11a)+r+'\x20');});const {token:c,contextName:O}=await L[g(0x144)]()['catch'](async r=>{const W=g;error(W(0x160)+r[W(0x13e)]+'.\x20Using\x20fallback.');const a=await this[W(0x165)](x,N);return{'token':a[W(0x117)],'contextName':a[W(0x130)]};})['finally'](()=>{const o=g;if(t)t['ui'][o(0x109)]();}),v=x[g(0x130)]??O??'autologin-'+new Date()[g(0x13c)]();return{'name':v,'token':c,'host':Y,'override':x[g(0x125)]??![]};}[a2C(0x159)]=x=>{const q=a2C;let N=x;return!/^https?:\/\//i[q(0x176)](N)&&(N=q(0x127)+N),N=N[q(0x12c)](/\/+$/,''),N;};async[a2C(0x165)](x,N){const D=a2C,w=this[D(0x124)][D(0x121)]['loadContextWrapper']()[D(0x105)],{name:Y,token:L,host:t,override:c}=await N[D(0x145)](x,w);return{'name':Y,'token':L,'host':t,'override':c};}[a2C(0x138)](){const U=a2C,x=this[U(0x124)][U(0x121)]['getCurrentProjectName']();if(x===undefined)throw new Error(U(0x139));return x;}async[a2C(0x149)](x){const B=a2C;if(!this['contextAvailable']())throw new Error(B(0x132));const N=this[B(0x124)][B(0x121)][B(0x178)]()['contexts'][B(0x143)](Y=>Y[B(0x130)]),w=N[B(0x114)]>0x4?B(0x182):'list';return(await a2L[B(0x13f)]([{'type':w,'name':B(0x130),'message':'Choose\x20the\x20context\x20to\x20'+x+':','choices':N}]))[B(0x130)];}[a2C(0x10b)](){const V=a2C;return this['apiClient']['contextProvider']['loadContextWrapper']()[V(0x105)][V(0x114)]>0x0;}async['verifyToken'](){const S=a2C;try{const x=this[S(0x124)][S(0x121)][S(0x173)](),N=this['apiClient'][S(0x121)]['getCurrentToken'](),w=x+'/v1/login',Y={'Authorization':S(0x14e)+N},L=new ProxyAgent(),t=await retry(0x3)(async()=>a2Y(w,{'method':S(0x171),'signal':AbortSignal[S(0x185)](0xbb8),'headers':Y,'agent':L}));if(t['ok'])return!![];return![];}catch(c){return![];}}}
|
|
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![];}}}
|
package/dist/copy/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a3e
|
|
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();}
|