@northflank/cli 0.10.13 → 0.10.14
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/utils.js +1 -1
- package/package.json +2 -2
package/dist/api-helpers.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(a,M){const E=a0M,L=a();while(!![]){try{const r=-parseInt(E(0x196))/0x1+parseInt(E(0x184))/0x2+parseInt(E(0x17f))/0x3*(parseInt(E(0x193))/0x4)+-parseInt(E(0x191))/0x5*(parseInt(E(0x181))/0x6)+-parseInt(E(0x180))/0x7+parseInt(E(0x195))/0x8+parseInt(E(0x16f))/0x9*(parseInt(E(0x1a2))/0xa);if(r===M)break;else L['push'](L['shift']());}catch(w){L['push'](L['shift']());}}}(a0a,0xdb277));import{warning}from'./utils.js';function a0M(a,M){const L=a0a();return a0M=function(r,w){r=r-0x16e;let h=L[r];return h;},a0M(a,M);}function a0a(){const K=['list','region','4764153ABaJqb','12288458kFKOkt','6PbeXft','projectId','default','3577058PxOjmb','pagination','plans','No\x20available\x20versions\x20to\x20upgrade\x20to.','latest','source','addon','regions','credentials','addonDependencies','projects','templates','envs','3212285GjQhAZ','nextPageCursor','4myNOHl','version','4812768JBdMcK','795070USUmed','type','versions','logSink','services','addonTypes','registryCredentials','replicas','map','internalId','updateaddonversion','cursor','600KednEA','get','addonId','deploymentPlan','addons','storage','16875BRneJc','keys','types','backups','backupId','data','resources','options','keyName','secret','templateId','owningObject','find','includes'];a0a=function(){return K;};return a0a();}const defaultPaginationPageSize=0x64,getProjects=a=>async M=>{const N=a0M,L=await a[N(0x17d)][N(0x18e)]({'options':{'per_page':defaultPaginationPageSize,'cursor':M?.['nextPageCursor']}});return{'elements':L[N(0x174)][N(0x18e)][N(0x19e)](r=>r['id']),'nextPageCursor':L[N(0x185)]?.['cursor']};},getServices=(a,M)=>async L=>{const S=a0M,r=await a['list'][S(0x19a)]({'parameters':{'projectId':M},'options':{'per_page':defaultPaginationPageSize,'cursor':L?.['nextPageCursor']}});return{'elements':r[S(0x174)][S(0x19a)][S(0x19e)](w=>w['id']),'nextPageCursor':r[S(0x185)]?.['cursor']};},getAddons=(a,M)=>async L=>{const G=a0M,r=await a[G(0x17d)][G(0x1a6)]({'parameters':{'projectId':M},'options':{'per_page':defaultPaginationPageSize,'cursor':L?.[G(0x192)]}});return{'elements':r[G(0x174)][G(0x1a6)][G(0x19e)](w=>w['id']),'nextPageCursor':r[G(0x185)]?.[G(0x1a1)]};},getAddonBackups=(a,M,L)=>async r=>{const D=a0M,w=await a['get'][D(0x18a)][D(0x172)]({'parameters':{'projectId':M,'addonId':L},'options':{'per_page':defaultPaginationPageSize,'cursor':r?.['nextPageCursor']}});return{'elements':w[D(0x174)][D(0x172)][D(0x19e)](h=>h['id']),'nextPageCursor':w[D(0x185)]?.['cursor']};};export async function fetchResourceList(a,M,L,r,w,h){const k=a0M,Y=undefined;try{if(a===k(0x1a5)){const o=await M[k(0x17d)][k(0x186)]({}),O=o[k(0x174)][k(0x186)]['map'](H=>H?.['internalId']??H?.['id']);return{'choices':O,'defaultValue':Y};}if(a===k(0x17e)&&!L?.[k(0x17c)](k(0x199))){const H=await M[k(0x17d)][k(0x18b)]({}),t=H[k(0x174)][k(0x18b)][k(0x19e)](Z=>Z?.[k(0x19f)]??Z?.['id']);return{'choices':t,'defaultValue':Y};}if(a===k(0x182)){const Z=await getProjects(M),{elements:f,nextPageCursor:B}=await Z();return{'choices':f,'defaultValue':Y,'pagination':{'nextPageCursor':B,'loadMore':Z}};}if(a===k(0x18c)){const s=await M[k(0x17d)][k(0x19c)]({}),A=s[k(0x174)][k(0x18c)][k(0x19e)](I=>I['id']);return{'choices':A,'defaultValue':Y};}const C=w?.['projectId'],i=a==='serviceId'||a==='id'&&h?.['includes'](k(0x17a));if(C!==undefined&&i){const I=await getServices(M,C),{elements:m,nextPageCursor:R}=await I();return{'choices':m,'defaultValue':Y,'pagination':{'nextPageCursor':R,'loadMore':I}};}const x=L?.[k(0x17c)]('addon');if(x){const q=async b=>{const c=k,F=await M[c(0x1a3)]['addon'][c(0x171)]({});return F[c(0x174)][c(0x19b)]?.[c(0x19e)](v=>v[c(0x197)])[c(0x17b)](v=>v[c(0x197)]===b);};if(a===k(0x197)){const b=await M[k(0x1a3)][k(0x18a)]['types']({}),F=b['data'][k(0x19b)]?.[k(0x19e)](v=>v[k(0x197)]);return{'choices':F,'defaultValue':Y};}if(a==='version'&&r?.[k(0x197)]!==undefined){const v=(await q(r[k(0x197)]))?.[k(0x198)],T=v!==undefined?[k(0x188),...v]:undefined;return{'choices':T,'defaultValue':Y};}if(a===k(0x16e)&&r?.[k(0x197)]!==undefined){const V=(await q(r[k(0x197)]))?.[k(0x175)]?.[k(0x16e)];return{'choices':V?.[k(0x176)],'defaultValue':V?.[k(0x183)]};}if(a==='replicas'&&r?.['type']!==undefined){const n=(await q(r[k(0x197)]))?.['resources']?.[k(0x19d)];return{'choices':n?.[k(0x176)],'defaultValue':n?.['default']};}}if(a===k(0x1a4)&&w?.['projectId']!==undefined){const p=await getAddons(M,w?.[k(0x182)]),{elements:y,nextPageCursor:g}=await p();return{'choices':y,'defaultValue':Y,'pagination':{'nextPageCursor':g,'loadMore':p}};}if(a===k(0x173)&&w?.[k(0x182)]!==undefined&&r?.[k(0x189)]?.[k(0x1a4)]!==undefined){const X=await getAddonBackups(M,w?.[k(0x182)],r?.[k(0x189)]?.[k(0x1a4)]),{elements:P,nextPageCursor:Q}=await X();return{'choices':P,'defaultValue':Y,'pagination':{'nextPageCursor':Q,'loadMore':X}};}const l=w?.[k(0x1a4)]??r?.[k(0x18d)]?.['addonId'];if(L?.['join']('')===k(0x1a0)&&a==='version'&&w?.[k(0x182)]!==undefined&&l!==undefined){const {upgradeTo:d}=(await M[k(0x1a3)][k(0x18a)][k(0x194)]({'parameters':{'addonId':l,'projectId':w?.['projectId']}}))[k(0x174)];if(d===undefined||d['length']<=0x0){warning(k(0x187));throw new Error();}return{'choices':d[k(0x19e)](J=>J[k(0x194)]),'defaultValue':Y};}if(a===k(0x179)){const u=await M['list'][k(0x18f)]({}),J=u[k(0x174)][k(0x18f)][k(0x19e)](U=>U?.['id']);return{'choices':J,'defaultValue':Y};}if((L?.[k(0x17c)]('secretLink')||L?.[k(0x17c)](k(0x178)))&&a===k(0x177)&&l!==undefined&&w?.[k(0x182)]!==undefined){const U=(await M[k(0x1a3)][k(0x18a)]['credentials']({'parameters':{'addonId':l,'projectId':w?.[k(0x182)]}}))[k(0x174)];return{'choices':[...Object[k(0x170)](U?.[k(0x190)])??[],...Object[k(0x170)](U?.['secrets'])??[]]};}}catch(W){}return{'choices':undefined,'defaultValue':Y};}
|
package/dist/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env -S node --no-deprecation
|
|
2
|
-
const a1T8=a1C;(function(T,C){const T7=a1C,i=T();while(!![]){try{const K=parseInt(T7(0x114))/0x1+parseInt(T7(0x169))/0x2+parseInt(T7(0x12d))/0x3*(parseInt(T7(0x14f))/0x4)+-parseInt(T7(0x163))/0x5+-parseInt(T7(0x143))/0x6*(parseInt(T7(0xfe))/0x7)+-parseInt(T7(0x17b))/0x8*(parseInt(T7(0x11a))/0x9)+parseInt(T7(0x157))/0xa*(parseInt(T7(0x140))/0xb);if(K===C)break;else i['push'](i['shift']());}catch(t){i['push'](i['shift']());}}}(a1T,0xdaefd));import{ApiClient,ApiClientFileContextProvider,GetApiEndpointPaginated}from'@northflank/js-client';import{Command}from'commander';import a1i from'fs';import a1K from'chalk';import{CliContext}from'./context/contextCommands.js';import{agent,assertContextExisting,asyncSequential,checkUpdate,customUserAgent,error,getCommand,proxyEnvsSet,warning}from'./utils.js';import*as a1t 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{CliLogs}from'./logs/index.js';import{CliMetrics}from'./metrics/index.js';import{CliFileCopy}from'./copy/index.js';function a1T(){const Tv=['backup-destination','delete','retrievePayloadViaInteractiveCli','moveCursor','body','3619990AFgAVQ','askForLogSink','isPaginatedEndpoint','type','dmn','resource','2192088jGDRZh','entries','backup','logs','.json','job','endsWith','secrets','pipelineId','resourceTagId','projectId','skipValidation','getLogsCommand','toLowerCase','volumeId','askForSubdomain','pop','backupDestinationId','376fONABt','map','paginationArgs','quiet','prj','tags','contextProvider','domainId','concat','sort','adn','filter','branches','Northflank\x20cli\x20version:\x20','replace','getCurrentProjectName','some','--verbose','jobId','addCommand','invoice','host','option','clusterId','load','Manage\x20your\x20Northflank\x20resources\x20from\x20the\x20command\x20line','subdomainPath','file','tag','askForProject','requiredPermissions','method','askConfirm','getNextPage','message','project','argv','opt','VERBOSE:\x20Request\x20body\x20->\x20','-f,\x20--file\x20<file-path>','statusText','deleteWarningPrompt','repository','File\x20does\x20not\x20exist:\x20','Expecting\x20resource\x20input\x20with\x20\x27--input\x27\x20or\x20\x27--file\x27\x20argument','runId','path','page','Update\x20Northflank\x20',',\x20-','repo','askForTemplateRun','subdomainId','login','askForTag','buildId','split','data','bind','docsTagsPath','Resource\x20was\x20not\x20deleted.','addons','alias','nonInteractiveEndpoint','Display\x20help\x20for\x20command','contexts','yaml','forEach','parse','get','secretId','/docs/v1/api/','aliases','northflank','downloadCmd','boolean','OPTIONAL:\x20','log','\x20Northflank\x20resources','Error\x20occured\x20while\x20trying\x20to\x20run\x20command,\x20error:\x20','after','hasNextPage','askForAddon','svc','plan','credential','getCurrentContext','Unknown\x20input\x20file\x20type:\x20','askForBackupDestination','askForClusterId','-i,\x20--input\x20<resource-def>','all','green','commands','runs','pln','exitCode','getCurrentServiceName','output','askForVolume','join','512099HRDqlC','addHelpText','Unknown\x20input\x20format.\x20Not\x20valid\x20json\x20and\x20not\x20valid\x20yaml.','keys','list','setPathVars','pagination','askForBuild','clearLine','default','stringify','templates','askForDomain',',\x20NF\x20error\x20id:\x20','base','url','loadAll','action','plans','askForService','VERBOSE:\x20Using\x20endpoint\x20->\x20','volumes','357329dAlQHd','Documentation:\x20','error','version','template','underline','303579jwVGMD','name','templateId','getOwnPropertyNames','subdomain','\x20properties','includes','rgn','execCmd','rawResponse','toString','length','JSON-formatted\x20resource\x20definition,\x20takes\x20precedence\x20over\x20\x22--file\x22','inv','\x0a>\x20Token\x20permissions\x20required:\x20','credentialId','custom-columns=','endpoints','addon','3ZrqmUL','find','addonId','logSinkId','description','noDefaults','projects','italic','existsSync','Print\x20the\x20current\x20version\x20of\x20the\x20Northflank\x20cli','domains','\x20--','query','getCurrentJobName','repositories','stdout','backups','services','backupId','9835815zAlsBZ','trim','tpl','66SbUlxH','Failed\x20to\x20validate\x20input\x20(incorrect\x20format):\x20','jobs','backup-destinations','askForJob','invoices','askForSubdomainPath','service','opts','yml','verbose','utf-8','6653236ETsphF','templateRunId','restores','getMetricsCommand','domain','askForPipeline','helpOption','count','10pOdknO','region','update','serviceId','defaults','credentials','toUpperCase'];a1T=function(){return Tv;};return a1T();}import{isEqual,has,set,kebabCase,upperFirst,isString,omit}from'lodash-es';import a1m from'js-yaml';function a1C(T,C){const i=a1T();return a1C=function(K,t){K=K-0xa4;let m=i[K];return m;},a1C(T,C);}import{readFileSync}from'fs';import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta[a1T8(0x10d)]),__dirname=dirname(__filename),pgk=JSON[a1T8(0xdd)](readFileSync(join(__dirname,'../package.json'),a1T8(0x14e)));export const getProgram=T=>{const T9=a1T8,C=new Command(T9(0xe2));C['description'](T9(0xb2)),C['enablePositionalOptions'](!![]),C['version'](T9(0xa6)+a1K[T9(0x119)](pgk[T9(0x117)]),'-v,\x20--version',T9(0x136));const i=new ApiClient(T,{'throwErrorOnHttpErrorCode':![],'customUserAgent':customUserAgent,'agent':agent}),K=new CliContext(i,agent),t=new CliPortForward(T,agent),m=new CliExec(T,agent),k=new CliFileCopy(T,agent),Q=new CliLogs(T,agent),R=new CliMetrics(T,agent);return C[T9(0xac)](t['portFwdCmd']),C['addCommand'](m[T9(0x122)]),C['addCommand'](k[T9(0xe3)]),C[T9(0xac)](k['uploadCmd']),C[T9(0xac)](K[T9(0xce)]),C[T9(0xac)](K[T9(0xda)]),generateCommands(i,i[T9(0x12b)],C,Q,R),C['addCommand'](getCommandOverview(C)),C['helpCommand']('help\x20[command]',T9(0xd9)),C[T9(0x155)](undefined,T9(0xd9)),C;};((async()=>{const TT=a1T8;try{const T=new ApiClientFileContextProvider();await checkUpdate(T);const C=getProgram(T);await C['parseAsync'](process[TT(0xbd)]);}catch(i){error(TT(0xe8)+i[TT(0xbb)]),process[TT(0xbd)][TT(0x12e)](K=>K===TT(0xaa))&&console[TT(0xe6)](i),process[TT(0xf9)]=0x1;}})());function isListCommand(T){const TC=a1T8,C=[[TC(0xde),'addon',TC(0x13d)],['get',TC(0x16e),TC(0xf7)]];return T[TC(0x12e)](i=>i===TC(0x102))||C['some'](i=>isEqual(T,i));}function generateCommands(T,C,i,K,t,m=a1t[a1T8(0x15b)],k=[]){const Ti=a1T8,Q=new InquirerHelper(new ApiClient(T[Ti(0x181)],{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':agent}));function R(G,Y){return G['required']!==![]&&Y===undefined;}function A(G,Y){const TK=Ti,{opt:q,name:N}=G,a=q[TK(0x107)],v=R(q,a),p=n=>n[TK(0x125)]>0x1?'--'+n:'-'+n,w=q?.[TK(0xd7)],Z=w?Array['isArray'](w)?'-'+w?.[TK(0x17c)](n=>p(n))[TK(0xfd)](TK(0xca))+',':''+p(w):'',F=v?'':TK(0xe5),l=typeof q[TK(0x166)]===TK(0xe4)||q[TK(0x166)]===TK(0xe4)?Z+TK(0x138)+N:Z+TK(0x138)+N+'\x20<'+N[TK(0x15d)]()+'>',I=F+q['description'];Y[TK(0xaf)](l[TK(0x141)](),I,a);}function V(G,Y){const Tt=Ti;if(Y[Tt(0xf6)][Tt(0xa9)](q=>q['name']()===Tt(0x16c)))return;isEqual(G,[Tt(0xde),Tt(0x14a)])&&(Y[Tt(0xac)](K[Tt(0x175)](Tt(0x14a))),Y[Tt(0xac)](t[Tt(0x152)](Tt(0x14a))),Y['addCommand'](K[Tt(0x175)](Tt(0x14a),!![])),Y[Tt(0xac)](t['getMetricsCommand']('service',!![]))),isEqual(G,['get',Tt(0x16e)])&&(Y[Tt(0xac)](K[Tt(0x175)](Tt(0x16e))),Y['addCommand'](t[Tt(0x152)](Tt(0x16e))),Y['addCommand'](K[Tt(0x175)]('job',!![])),Y[Tt(0xac)](t[Tt(0x152)](Tt(0x16e),!![]))),isEqual(G,[Tt(0xde),'addon'])&&(Y[Tt(0xac)](K[Tt(0x175)](Tt(0x12c))),Y[Tt(0xac)](t['getMetricsCommand']('addon'))),isEqual(G,['get',Tt(0x12c),Tt(0x16b)])&&Y[Tt(0xac)](K[Tt(0x175)](Tt(0x12c),![],!![])),isEqual(G,['get',Tt(0x12c),Tt(0x151)])&&Y[Tt(0xac)](K[Tt(0x175)]('addon',![],!![],!![]));}return Object[Ti(0x11d)](m)[Ti(0xdc)](G=>{const Tm=Ti,Y=C[G],q=m[G],N=k[Tm(0x183)]([G]);function a(f,e){const Tk=Tm,c=Object[Tk(0x11d)](f||{});c[Tk(0x17c)](O=>{return{'name':O,'opt':f[O]};})[Tk(0x184)]((O,x)=>!R(O[Tk(0xbe)])?!R(x[Tk(0xbe)])?0x0:0x1:-0x1)[Tk(0xdc)](O=>{A(O,e);});}function v(f,e){const TQ=Tm,c=[[TQ(0xbc),TQ(0x133),TQ(0x17f)],[TQ(0x14a),TQ(0x13e),TQ(0xec)],[TQ(0x15c),TQ(0xee),'cred'],[TQ(0x12c),TQ(0xd6),TQ(0x185)],[TQ(0x16e),TQ(0x145)],[TQ(0xed),TQ(0x110),TQ(0xf8)],[TQ(0x158),'regions',TQ(0x121)],[TQ(0x153),TQ(0x137),TQ(0x167)],['secret',TQ(0x170),'scrt'],[TQ(0x113),'volume','vol'],[TQ(0xa5),'branch','brn'],[TQ(0xad),TQ(0x148),TQ(0x127)],[TQ(0x118),TQ(0x109),TQ(0x142)],['repos',TQ(0xc3),TQ(0x13b),TQ(0xcb)],[TQ(0x15e),TQ(0x146)],[TQ(0xb5),TQ(0x180)]],O=c[TQ(0x12e)](x=>x[TQ(0x120)](e));if(O!==undefined)f[TQ(0xe1)](O[TQ(0xa4)](x=>x!==e));}async function p(f){const TR=Tm,e={},{contextProvider:c}=T,O=N[TR(0x120)](TR(0x15f)),x=f[TR(0x132)]===!![];async function z(b,u,o){const TA=TR;if(has(q['opt']?.[TA(0xc7)]??{},b)){const d=!x&&!O&&o?o():undefined,L=f[b]||d||await u();set(e,b,L);}}return await asyncSequential(Object[TR(0x16a)](q[TR(0xbe)]?.[TR(0xc7)]??{}),async([b,u])=>{const TV=TR,o=e?.[TV(0x173)],d=e?.[TV(0x11c)];switch(b){case TV(0x173):return await z(TV(0x173),Q[TV(0xb6)][TV(0xd3)](Q),c[TV(0xa8)][TV(0xd3)](c));case TV(0x15a):return await z(TV(0x15a),Q[TV(0x111)](o)['bind'](Q),c[TV(0xfa)]['bind'](c));case TV(0x12f):return await z(TV(0x12f),Q[TV(0xeb)](o)[TV(0xd3)](Q));case TV(0xab):return await z(TV(0xab),Q[TV(0x147)](o)[TV(0xd3)](Q),c[TV(0x13a)]['bind'](c));case TV(0xc6):return await z(TV(0xc6),Q['askForJobRun'](e['jobId'],o,![])[TV(0xd3)](Q));case'secretId':return await z(TV(0xdf),Q['askForSecret'](o)[TV(0xd3)](Q));case TV(0x153):case TV(0x182):return await z(TV(0x153),Q[TV(0x10a)][TV(0xd3)](Q));case TV(0x129):return await z(TV(0x129),Q['askForCredentials'][TV(0xd3)](Q));case TV(0x177):return await z(TV(0x177),Q[TV(0xfc)](o)[TV(0xd3)](Q));case'subdomain':return await z(TV(0x11e),Q['askForSubdomain'](e[TV(0x153)])[TV(0xd3)](Q));case'subdomainId':return await z(TV(0xcd),Q[TV(0x178)](e[TV(0x182)])['bind'](Q));case TV(0xb3):return await z(TV(0xb3),Q[TV(0x149)](e[TV(0x153)],e[TV(0x11e)]??e[TV(0xcd)])[TV(0xd3)](Q));case'backupId':return await z(TV(0x13f),Q['askForAddonBackup'](o,e[TV(0x12f)])[TV(0xd3)](Q));case'buildId':return await z(TV(0xd0),Q[TV(0x105)](o,e[TV(0x15a)],e[TV(0xab)])[TV(0xd3)](Q));case TV(0x11c):return await z(TV(0x11c),Q['askForTemplate']()[TV(0xd3)](Q));case'templateRunId':return await z(TV(0x150),Q[TV(0xcc)](d)[TV(0xd3)](Q));case TV(0x130):return await z(TV(0x130),Q[TV(0x164)]()[TV(0xd3)](Q));case TV(0x171):return await z(TV(0x171),Q[TV(0x154)](o)[TV(0xd3)](Q));case TV(0x172):return await z('resourceTagId',Q[TV(0xcf)]()[TV(0xd3)](Q));case TV(0x17a):return await z(TV(0x17a),Q[TV(0xf1)]()[TV(0xd3)](Q));case TV(0xb0):return await z(TV(0xb0),Q[TV(0xf2)]()[TV(0xd3)](Q));default:return await z(b,Q['askGeneric'](b,u?.['description'])[TV(0xd3)](Q));}}),e;}async function w(f){const TM=Tm,e={},c=q[TM(0xbe)]?.[TM(0x165)]?a1t[TM(0x17d)]:{},O={...q['opt']?.['query']??{},...c},x=Object[TM(0x101)](O)[TM(0xa4)](z=>z!==TM(0x10e));return await asyncSequential(x,async z=>{if(f[z]!==undefined)return set(e,z,f[z]);}),e;}function Z(){const TG=Tm;switch(N[0x0]){case'get':return'Get\x20information\x20about\x20Northflank\x20'+(N[0x1]||'resource')+'s';case TG(0x159):return TG(0xc9)+(N[0x1]||TG(0x168))+TG(0x11f);default:return upperFirst(G)+TG(0xe7);}}function F(f,e){const TY=Tm;if(!e){const L=getCommand()[TY(0x11b)](kebabCase(G))[TY(0x131)](Z());return v(L,G),L;}const c=f?.['requiredPermissions']?a1K[TY(0x134)](TY(0x128)+f[TY(0xb7)]):'',O=T[TY(0x181)][TY(0xef)](),x=O!==undefined&&q?.['opt']?.[TY(0xd4)]!==undefined,z=O?.[TY(0xae)][TY(0xa7)]('api.',''),b=x?TY(0x115)+z+TY(0xe0)+q?.[TY(0xbe)]?.[TY(0xd4)]:'',u=f?.['description']||'',o=getCommand(!![])['name'](kebabCase(G))[TY(0x131)](u)[TY(0xff)](TY(0xe9),[c,b][TY(0xfd)]('\x0a'));v(o,G);(q[TY(0xbe)]?.[TY(0x162)]||q['opt']?.['nonInteractiveEndpoint'])&&(o[TY(0xaf)](TY(0xc0),'File\x20to\x20load\x20resource\x20json\x20from'),o[TY(0xaf)](TY(0xf3),TY(0x126)));a(q[TY(0xbe)]?.[TY(0xc7)],o),a(q[TY(0xbe)]?.[TY(0x139)],o);const d=q['opt']?.[TY(0x165)];return d&&a(a1t['paginationArgs'],o),a(q[TY(0xbe)]?.[TY(0x10c)],o),o[TY(0x10f)](async()=>{const Tq=TY;assertContextExisting(T);const D=o[Tq(0x14b)]();D?.[Tq(0x14d)]&&proxyEnvsSet&&warning('VERBOSE:\x20HTTP_PROXY\x20or\x20HTTPS_PROXY\x20environment\x20variable\x20set:\x20tunnelling\x20traffic\x20through\x20HTTP\x20proxy.');const g=D[Tq(0xc8)]!==undefined||D['cursor']!==undefined;if(D[Tq(0x10e)]===!![]&&g)throw new Error('Options\x20\x27loadAll\x27\x20can\x20not\x20be\x20combined\x20with\x20\x27page\x27\x20or\x20\x27cursor\x27');const J=D?.[Tq(0xfb)],U=J==='json',S=J===Tq(0xdb)||J===Tq(0x14c),B=await p(D);Q[Tq(0x103)](B);const h=await w(D),s=Object[Tq(0x101)](q[Tq(0xbe)]?.[Tq(0xc7)]??{})[Tq(0x17c)](W=>W+'='+a1K[Tq(0xf5)](B[W]))['join'](',\x20');if(s[Tq(0x125)]>0x0&&!U&&!S){const W='=>\x20running\x20command\x20with:\x20'+s;console[Tq(0xe6)](W);}const X=q[Tq(0xbe)]?.['body']||q[Tq(0xbe)]?.[Tq(0xd8)]?await M(D,q,N):undefined;if(!D['force']&&N[Tq(0x120)](Tq(0x15f))&&!await Q[Tq(0xc2)]()){warning(Tq(0xd5));return;}const E=d&&(D[Tq(0x10e)]||(D[Tq(0xfb)]==='json'||D[Tq(0xfb)]===Tq(0xdb))&&!g);let y=E&&Y instanceof GetApiEndpointPaginated?await Y[Tq(0xf4)]({'parameters':B,'options':h,'data':X}):await Y['call']({'parameters':B,'options':{...h},'data':X});if(D?.['verbose']){const P=y['request'];console[Tq(0xe6)](Tq(0x112)+P[Tq(0xb8)][Tq(0x15d)]()+':'+P['url']),X!==undefined&&console[Tq(0xe6)](Tq(0xbf)+a1K[Tq(0x134)](JSON[Tq(0x108)](X)));}if(y['error']){const {details:r,id:T0,message:T1,status:T2}=y[Tq(0x116)],T3=r?'\x0a\x09details\x20:'+JSON[Tq(0x108)](r):'',T4=T0?Tq(0x10b)+T0:'',T5='(HTTP\x20status\x20code:\x20'+T2+T4+')';throw new Error('API\x20request\x20failed\x0a\x09Message:\x20'+T1+'\x20'+T5+T3);}let j=0x0;printCallResult(D,U,y[Tq(0xd2)],S,N,J,![],j,y['rawResponse'][Tq(0xc1)]);if(!D[Tq(0x17e)]&&!E&&!g&&y[Tq(0x104)]?.[Tq(0xea)])while(y[Tq(0x104)]?.[Tq(0xea)]){const T6=await Q[Tq(0xb9)]('there\x20are\x20more\x20rows,\x20load?');if(T6)process[Tq(0x13c)][Tq(0x161)](0x0,-0x1),process[Tq(0x13c)][Tq(0x106)](0x1),j+=y[Tq(0x104)][Tq(0x156)],y=await y['pagination'][Tq(0xba)](),printCallResult(D,U,y[Tq(0xd2)],S,N,J,!![],j,y[Tq(0x123)]['statusText']);else return;}}),o;}const l=has(q,Tm(0xbe)),I=Y,n=F(I,l);V(N,n),i[Tm(0xac)](n);const H=omit(q,Tm(0xbe));Object[Tm(0x101)](H)[Tm(0x125)]>0x0&&generateCommands(T,Y,n,K,t,H,N);});async function M(G,Y,q){const TN=Ti,{input:N,file:a}=G;if(N!==undefined)try{return JSON[TN(0xdd)](N);}catch(v){try{return a1m[TN(0xb1)](N);}catch(p){throw new Error(TN(0x100));}}if(a!==undefined){if(!a1i[TN(0x135)](a))throw new Error(TN(0xc4)+a);const w=a1i['readFileSync'](a)[TN(0x124)]();let Z;try{if(isString(w)){if(G[TN(0xb4)]['endsWith'](TN(0x16d)))Z=JSON[TN(0xdd)](w);else{if(G[TN(0xb4)]['endsWith']('.yaml')||G['file'][TN(0x16f)](TN(0x14c)))Z=a1m[TN(0xb1)](w);else throw new Error(TN(0xf0)+G[TN(0xb4)][TN(0xd1)]('.')[TN(0x179)]());}}else Z=w;return Z;}catch(F){throw new Error(TN(0x144)+F[TN(0xbb)]);}}if(Y?.[TN(0xbe)]?.[TN(0xd8)])throw new Error(TN(0xc5));return await Q[TN(0x160)](Y,{'cmdPath':q,'skipValidation':G[TN(0x174)]});}}const printCallResult=(T,C,i,K,t,m,k,Q,R)=>{const Ta=a1T8;if(!T?.[Ta(0x17e)]){if(C)handleJsonOutput(T?.[Ta(0xfb)],i);else{if(K)handleYamlOutput(T?.[Ta(0xfb)],i);else{if(isListCommand(t)){const A=m?.['startsWith']('custom-columns=')?m[Ta(0xa7)](Ta(0x12a),'')['split'](',')[Ta(0x17c)](q=>q[Ta(0x176)]()):undefined,V=t[t['length']-0x1],M=''+V+(V[Ta(0x16f)]('s')?'':'s'),G=upperFirst(M),Y=has(i,M)?i[M]:i;printAsTable(Y,G,A,k,Q);}else console[Ta(0xe6)](consoleFormat(i,R));}}}};
|
|
2
|
+
const a1a8=a1M;function a1M(a,M){const L=a1a();return a1M=function(r,w){r=r-0x18e;let h=L[r];return h;},a1M(a,M);}(function(a,M){const a7=a1M,L=a();while(!![]){try{const r=-parseInt(a7(0x25c))/0x1+parseInt(a7(0x1e8))/0x2*(parseInt(a7(0x20d))/0x3)+-parseInt(a7(0x1a1))/0x4*(parseInt(a7(0x1f7))/0x5)+parseInt(a7(0x228))/0x6+-parseInt(a7(0x22b))/0x7*(-parseInt(a7(0x268))/0x8)+-parseInt(a7(0x222))/0x9*(-parseInt(a7(0x26d))/0xa)+-parseInt(a7(0x1a8))/0xb;if(r===M)break;else L['push'](L['shift']());}catch(w){L['push'](L['shift']());}}}(a1a,0xe75e4));import{ApiClient,ApiClientFileContextProvider,GetApiEndpointPaginated}from'@northflank/js-client';import{Command}from'commander';import a1L from'fs';import a1r from'chalk';import{CliContext}from'./context/contextCommands.js';import{agent,assertContextExisting,asyncSequential,checkUpdate,customUserAgent,error,getCommand,proxyEnvsSet,warning}from'./utils.js';import*as a1w from'./defaults.js';import{InquirerHelper}from'./inquirer-helper.js';function a1a(){const as=['tag','credentialId','inv','replace','repo','backupId','4tHTFBE','startsWith','after','job','filter','noDefaults','-f,\x20--file\x20<file-path>','8348989NpcZOQ','cred','templateId','toUpperCase','tags','opt','askForTemplateRun','backup-destination','login','region','Error\x20occured\x20while\x20trying\x20to\x20run\x20command,\x20error:\x20','body','endsWith','askForBuild','adn','split','path','tpl','exitCode','projectId','rgn','portFwdCmd','load','--verbose','VERBOSE:\x20Request\x20body\x20->\x20','custom-columns=','clearLine','restores','find','Display\x20help\x20for\x20command','JSON-formatted\x20resource\x20definition,\x20takes\x20precedence\x20over\x20\x22--file\x22','Unknown\x20input\x20file\x20type:\x20','resource','volume','brn','\x20Northflank\x20resources','includes','log','default','some','Print\x20the\x20current\x20version\x20of\x20the\x20Northflank\x20cli','OPTIONAL:\x20',',\x20NF\x20error\x20id:\x20','secretId','Update\x20Northflank\x20','existsSync','Resource\x20was\x20not\x20deleted.','getMetricsCommand','type','service','argv','\x0a>\x20Token\x20permissions\x20required:\x20','file','addonId','API\x20request\x20failed\x0a\x09Message:\x20','backupDestinationId','serviceId','parse','stdout','retrievePayloadViaInteractiveCli','repos','verbose','volumes','jobId','10itBTlo','paginationArgs','askForService','loadAll','message','contextProvider','statusText','list','description','getCurrentJobName','error','addHelpText','hasNextPage','vol','concat','2590795XBoIiX','name','method','pln','count','Options\x20\x27loadAll\x27\x20can\x20not\x20be\x20combined\x20with\x20\x27page\x27\x20or\x20\x27cursor\x27','pipelineId','required','italic','option','domains','force','\x20--','clusterId','aliases','dmn','buildId','askConfirm','resourceTagId','-i,\x20--input\x20<resource-def>','requiredPermissions','project','490230BHBiXn','addon','delete','askForDomain','=>\x20running\x20command\x20with:\x20','askForSubdomain','northflank','call','plans','askForPipeline','logs','rawResponse','underline','VERBOSE:\x20Using\x20endpoint\x20->\x20','parseAsync','Northflank\x20cli\x20version:\x20','askForBackupDestination','toLowerCase','(HTTP\x20status\x20code:\x20','askForJobRun','bind','1786203VXrUiZ','../package.json','askForAddonBackup','trim','Manage\x20your\x20Northflank\x20resources\x20from\x20the\x20command\x20line','contexts','10112136OriYkD','request','-v,\x20--version','70WgkCzg','File\x20does\x20not\x20exist:\x20','enablePositionalOptions','jobs','getLogsCommand','Expecting\x20resource\x20input\x20with\x20\x27--input\x27\x20or\x20\x27--file\x27\x20argument','docsTagsPath','entries','Documentation:\x20','length',',\x20-','volumeId','version','toString','base','credentials','templateRunId','askGeneric','readFileSync','output','yaml','boolean','isArray','\x20properties','backup','File\x20to\x20load\x20resource\x20json\x20from','backup-destinations','domain','subdomainId','yml','there\x20are\x20more\x20rows,\x20load?','data','helpCommand','subdomainPath','get','invoice','subdomain','join','nonInteractiveEndpoint','map','templates','action','backups','getCurrentContext','askForLogSink','execCmd','VERBOSE:\x20HTTP_PROXY\x20or\x20HTTPS_PROXY\x20environment\x20variable\x20set:\x20tunnelling\x20traffic\x20through\x20HTTP\x20proxy.','domainId','scrt','1699069sUtRhl','getCurrentProjectName','quiet','downloadCmd','all','getOwnPropertyNames','template','api.','update','pagination','json','endpoints','343336NrVdsR','/docs/v1/api/','keys','runId','askForJob','50oJAnno','helpOption','deleteWarningPrompt','branch','services','addCommand','uploadCmd','logSinkId','pop','plan','commands','url','page','isPaginatedEndpoint','askForTag'];a1a=function(){return as;};return a1a();}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 a1h from'js-yaml';import{readFileSync}from'fs';import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta[a1a8(0x197)]),__dirname=dirname(__filename),pgk=JSON['parse'](readFileSync(join(__dirname,a1a8(0x223)),'utf-8'));export const getProgram=a=>{const a9=a1a8,M=new Command(a9(0x213));M['description'](a9(0x226)),M[a9(0x22d)](!![]),M[a9(0x237)](a9(0x21c)+a1r[a9(0x219)](pgk['version']),a9(0x22a),a9(0x1d0));const L=new ApiClient(a,{'throwErrorOnHttpErrorCode':![],'customUserAgent':customUserAgent,'agent':agent}),r=new CliContext(L,agent),w=new CliPortForward(a,agent),h=new CliExec(a,agent),Y=new CliFileCopy(a,agent),C=new CliLogs(a,agent),i=new CliMetrics(a,agent);return M[a9(0x191)](w[a9(0x1bd)]),M['addCommand'](h[a9(0x258)]),M[a9(0x191)](Y[a9(0x25f)]),M[a9(0x191)](Y[a9(0x192)]),M[a9(0x191)](r[a9(0x1b0)]),M[a9(0x191)](r[a9(0x227)]),generateCommands(L,L[a9(0x267)],M,C,i),M[a9(0x191)](getCommandOverview(M)),M[a9(0x24b)]('help\x20[command]','Display\x20help\x20for\x20command'),M[a9(0x26e)](undefined,a9(0x1c5)),M;};((async()=>{const aa=a1a8;try{const a=new ApiClientFileContextProvider();await checkUpdate(a);const M=getProgram(a);await M[aa(0x21b)](process[aa(0x1da)]);}catch(L){error(aa(0x1b2)+L['message']),process[aa(0x1da)][aa(0x1c4)](r=>r===aa(0x1bf))&&console['log'](L),process[aa(0x1ba)]=0x1;}})());function isListCommand(a){const aM=a1a8,M=[[aM(0x24d),aM(0x20e),aM(0x255)],['get','job','runs']];return a['find'](L=>L===aM(0x1ef))||M[aM(0x1cf)](L=>isEqual(a,L));}function generateCommands(a,M,L,r,w,h=a1w['defaults'],Y=[]){const aL=a1a8,C=new InquirerHelper(new ApiClient(a[aL(0x1ed)],{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':agent}));function i(O,H){const ar=aL;return O[ar(0x1fe)]!==![]&&H===undefined;}function x(O,H){const aw=aL,{opt:t,name:Z}=O,f=t[aw(0x1ce)],B=i(t,f),s=b=>b[aw(0x234)]>0x1?'--'+b:'-'+b,A=t?.['alias'],I=A?Array[aw(0x241)](A)?'-'+A?.[aw(0x252)](b=>s(b))['join'](aw(0x235))+',':''+s(A):'',m=B?'':aw(0x1d1),R=typeof t[aw(0x1d8)]===aw(0x240)||t['type']===aw(0x240)?I+aw(0x203)+Z:I+'\x20--'+Z+'\x20<'+Z[aw(0x1ab)]()+'>',q=m+t[aw(0x1f0)];H[aw(0x200)](R[aw(0x225)](),q,f);}function l(O,H){const ah=aL;if(H[ah(0x196)][ah(0x1cf)](t=>t[ah(0x1f8)]()===ah(0x217)))return;isEqual(O,['get','service'])&&(H[ah(0x191)](r['getLogsCommand'](ah(0x1d9))),H[ah(0x191)](w[ah(0x1d7)](ah(0x1d9))),H['addCommand'](r['getLogsCommand']('service',!![])),H['addCommand'](w[ah(0x1d7)]('service',!![]))),isEqual(O,[ah(0x24d),ah(0x1a4)])&&(H[ah(0x191)](r[ah(0x22f)]('job')),H['addCommand'](w[ah(0x1d7)]('job')),H['addCommand'](r[ah(0x22f)](ah(0x1a4),!![])),H['addCommand'](w[ah(0x1d7)](ah(0x1a4),!![]))),isEqual(O,[ah(0x24d),ah(0x20e)])&&(H['addCommand'](r['getLogsCommand'](ah(0x20e))),H[ah(0x191)](w[ah(0x1d7)](ah(0x20e)))),isEqual(O,[ah(0x24d),ah(0x20e),ah(0x243)])&&H[ah(0x191)](r['getLogsCommand']('addon',![],!![])),isEqual(O,[ah(0x24d),ah(0x20e),ah(0x1c3)])&&H[ah(0x191)](r[ah(0x22f)](ah(0x20e),![],!![],!![]));}return Object[aL(0x261)](h)['forEach'](O=>{const aY=aL,H=M[O],t=h[O],Z=Y[aY(0x1f6)]([O]);function f(v,T){const aC=aY,V=Object[aC(0x261)](v||{});V[aC(0x252)](n=>{return{'name':n,'opt':v[n]};})['sort']((n,e)=>!i(n[aC(0x1ad)])?!i(e['opt'])?0x0:0x1:-0x1)['forEach'](n=>{x(n,T);});}function B(v,T){const ai=aY,V=[[ai(0x20c),'projects','prj'],[ai(0x1d9),ai(0x190),'svc'],[ai(0x23a),'credential',ai(0x1a9)],['addon','addons',ai(0x1b6)],[ai(0x1a4),ai(0x22e)],[ai(0x195),ai(0x215),ai(0x1fa)],[ai(0x1b1),'regions',ai(0x1bc)],[ai(0x246),ai(0x201),ai(0x206)],['secret','secrets',ai(0x25b)],[ai(0x1e6),ai(0x1c9),ai(0x1f5)],['branches',ai(0x18f),ai(0x1ca)],[ai(0x24e),'invoices',ai(0x19d)],[ai(0x262),ai(0x253),ai(0x1b9)],[ai(0x1e4),'repository','repositories',ai(0x19f)],[ai(0x1af),ai(0x245)],[ai(0x19b),ai(0x1ac)]],n=V[ai(0x1c4)](e=>e[ai(0x1cc)](T));if(n!==undefined)v[ai(0x205)](n[ai(0x1a5)](e=>e!==T));}async function s(v){const ax=aY,T={},{contextProvider:V}=a,n=Z[ax(0x1cc)](ax(0x20f)),e=v[ax(0x1a6)]===!![];async function p(y,g,X){const al=ax;if(has(t['opt']?.[al(0x1b8)]??{},y)){const P=!e&&!n&&X?X():undefined,Q=v[y]||P||await g();set(T,y,Q);}}return await asyncSequential(Object[ax(0x232)](t[ax(0x1ad)]?.[ax(0x1b8)]??{}),async([y,g])=>{const ao=ax,X=T?.['projectId'],P=T?.['templateId'];switch(y){case ao(0x1bb):return await p(ao(0x1bb),C['askForProject'][ao(0x221)](C),V[ao(0x25d)]['bind'](V));case'serviceId':return await p(ao(0x1e0),C[ao(0x1ea)](X)[ao(0x221)](C),V['getCurrentServiceName'][ao(0x221)](V));case ao(0x1dd):return await p(ao(0x1dd),C['askForAddon'](X)[ao(0x221)](C));case ao(0x1e7):return await p(ao(0x1e7),C[ao(0x26c)](X)[ao(0x221)](C),V[ao(0x1f1)]['bind'](V));case ao(0x26b):return await p('runId',C[ao(0x220)](T['jobId'],X,![])[ao(0x221)](C));case'secretId':return await p(ao(0x1d3),C['askForSecret'](X)[ao(0x221)](C));case'domain':case ao(0x25a):return await p(ao(0x246),C[ao(0x210)]['bind'](C));case'credentialId':return await p(ao(0x19c),C['askForCredentials']['bind'](C));case ao(0x236):return await p(ao(0x236),C['askForVolume'](X)[ao(0x221)](C));case ao(0x24f):return await p(ao(0x24f),C[ao(0x212)](T[ao(0x246)])['bind'](C));case ao(0x247):return await p(ao(0x247),C['askForSubdomain'](T[ao(0x25a)])[ao(0x221)](C));case ao(0x24c):return await p('subdomainPath',C['askForSubdomainPath'](T[ao(0x246)],T[ao(0x24f)]??T[ao(0x247)])[ao(0x221)](C));case ao(0x1a0):return await p(ao(0x1a0),C[ao(0x224)](X,T['addonId'])[ao(0x221)](C));case ao(0x207):return await p(ao(0x207),C[ao(0x1b5)](X,T[ao(0x1e0)],T['jobId'])[ao(0x221)](C));case ao(0x1aa):return await p('templateId',C['askForTemplate']()[ao(0x221)](C));case ao(0x23b):return await p(ao(0x23b),C[ao(0x1ae)](P)[ao(0x221)](C));case'logSinkId':return await p(ao(0x193),C[ao(0x257)]()[ao(0x221)](C));case ao(0x1fd):return await p(ao(0x1fd),C[ao(0x216)](X)[ao(0x221)](C));case ao(0x209):return await p('resourceTagId',C[ao(0x19a)]()[ao(0x221)](C));case ao(0x1df):return await p(ao(0x1df),C[ao(0x21d)]()['bind'](C));case ao(0x204):return await p(ao(0x204),C['askForClusterId']()[ao(0x221)](C));default:return await p(y,C[ao(0x23c)](y,g?.[ao(0x1f0)])['bind'](C));}}),T;}async function A(v){const aO=aY,T={},V=t[aO(0x1ad)]?.[aO(0x199)]?a1w[aO(0x1e9)]:{},n={...t[aO(0x1ad)]?.['query']??{},...V},e=Object[aO(0x26a)](n)[aO(0x1a5)](p=>p!==aO(0x1eb));return await asyncSequential(e,async p=>{if(v[p]!==undefined)return set(T,p,v[p]);}),T;}function I(){const aH=aY;switch(Z[0x0]){case aH(0x24d):return'Get\x20information\x20about\x20Northflank\x20'+(Z[0x1]||aH(0x1c8))+'s';case aH(0x264):return aH(0x1d4)+(Z[0x1]||aH(0x1c8))+aH(0x242);default:return upperFirst(O)+aH(0x1cb);}}function m(v,T){const at=aY;if(!T){const Q=getCommand()[at(0x1f8)](kebabCase(O))['description'](I());return B(Q,O),Q;}const V=v?.[at(0x20b)]?a1r[at(0x1ff)](at(0x1db)+v[at(0x20b)]):'',n=a['contextProvider'][at(0x256)](),e=n!==undefined&&t?.[at(0x1ad)]?.['docsTagsPath']!==undefined,p=n?.['host'][at(0x19e)](at(0x263),''),y=e?at(0x233)+p+at(0x269)+t?.[at(0x1ad)]?.[at(0x231)]:'',g=v?.[at(0x1f0)]||'',X=getCommand(!![])[at(0x1f8)](kebabCase(O))['description'](g)[at(0x1f3)](at(0x1a3),[V,y][at(0x250)]('\x0a'));B(X,O);(t[at(0x1ad)]?.[at(0x1b3)]||t['opt']?.['nonInteractiveEndpoint'])&&(X['option'](at(0x1a7),at(0x244)),X[at(0x200)](at(0x20a),at(0x1c6)));f(t[at(0x1ad)]?.[at(0x1b8)],X),f(t['opt']?.['query'],X);const P=t['opt']?.[at(0x199)];return P&&f(a1w['paginationArgs'],X),f(t[at(0x1ad)]?.[at(0x239)],X),X[at(0x254)](async()=>{const aZ=at;assertContextExisting(a);const d=X['opts']();d?.[aZ(0x1e5)]&&proxyEnvsSet&&warning(aZ(0x259));const u=d[aZ(0x198)]!==undefined||d['cursor']!==undefined;if(d[aZ(0x1eb)]===!![]&&u)throw new Error(aZ(0x1fc));const J=d?.[aZ(0x23e)],U=J===aZ(0x266),W=J===aZ(0x23f)||J===aZ(0x248),E=await s(d);C['setPathVars'](E);const N=await A(d),S=Object['keys'](t['opt']?.['path']??{})[aZ(0x252)](K=>K+'='+a1r['green'](E[K]))[aZ(0x250)](',\x20');if(S[aZ(0x234)]>0x0&&!U&&!W){const K=aZ(0x211)+S;console[aZ(0x1cd)](K);}const G=t[aZ(0x1ad)]?.[aZ(0x1b3)]||t[aZ(0x1ad)]?.[aZ(0x251)]?await o(d,t,Z):undefined;if(!d[aZ(0x202)]&&Z['includes'](aZ(0x20f))&&!await C[aZ(0x18e)]()){warning(aZ(0x1d6));return;}const D=P&&(d['loadAll']||(d[aZ(0x23e)]===aZ(0x266)||d[aZ(0x23e)]===aZ(0x23f))&&!u);let k=D&&H instanceof GetApiEndpointPaginated?await H[aZ(0x260)]({'parameters':E,'options':N,'data':G}):await H[aZ(0x214)]({'parameters':E,'options':{...N},'data':G});if(d?.[aZ(0x1e5)]){const j=k[aZ(0x229)];console['log'](aZ(0x21a)+j[aZ(0x1f9)][aZ(0x1ab)]()+':'+j[aZ(0x197)]),G!==undefined&&console['log'](aZ(0x1c0)+a1r[aZ(0x1ff)](JSON['stringify'](G)));}if(k[aZ(0x1f2)]){const {details:z,id:a0,message:a1,status:a2}=k['error'],a3=z?'\x0a\x09details\x20:'+JSON['stringify'](z):'',a4=a0?aZ(0x1d2)+a0:'',a5=aZ(0x21f)+a2+a4+')';throw new Error(aZ(0x1de)+a1+'\x20'+a5+a3);}let c=0x0;printCallResult(d,U,k[aZ(0x24a)],W,Z,J,![],c,k[aZ(0x218)][aZ(0x1ee)]);if(!d[aZ(0x25e)]&&!D&&!u&&k[aZ(0x265)]?.[aZ(0x1f4)])while(k['pagination']?.[aZ(0x1f4)]){const a6=await C[aZ(0x208)](aZ(0x249));if(a6)process[aZ(0x1e2)]['moveCursor'](0x0,-0x1),process['stdout'][aZ(0x1c2)](0x1),c+=k[aZ(0x265)][aZ(0x1fb)],k=await k[aZ(0x265)]['getNextPage'](),printCallResult(d,U,k[aZ(0x24a)],W,Z,J,!![],c,k['rawResponse'][aZ(0x1ee)]);else return;}}),X;}const R=has(t,aY(0x1ad)),q=H,b=m(q,R);l(Z,b),L[aY(0x191)](b);const F=omit(t,aY(0x1ad));Object['keys'](F)[aY(0x234)]>0x0&&generateCommands(a,H,b,r,w,F,Z);});async function o(O,H,t){const af=aL,{input:Z,file:f}=O;if(Z!==undefined)try{return JSON[af(0x1e1)](Z);}catch(B){try{return a1h['load'](Z);}catch(s){throw new Error('Unknown\x20input\x20format.\x20Not\x20valid\x20json\x20and\x20not\x20valid\x20yaml.');}}if(f!==undefined){if(!a1L[af(0x1d5)](f))throw new Error(af(0x22c)+f);const A=a1L[af(0x23d)](f)[af(0x238)]();let I;try{if(isString(A)){if(O['file'][af(0x1b4)]('.json'))I=JSON[af(0x1e1)](A);else{if(O[af(0x1dc)][af(0x1b4)]('.yaml')||O[af(0x1dc)][af(0x1b4)]('yml'))I=a1h[af(0x1be)](A);else throw new Error(af(0x1c7)+O[af(0x1dc)][af(0x1b7)]('.')[af(0x194)]());}}else I=A;return I;}catch(m){throw new Error('Failed\x20to\x20validate\x20input\x20(incorrect\x20format):\x20'+m[af(0x1ec)]);}}if(H?.[af(0x1ad)]?.['nonInteractiveEndpoint'])throw new Error(af(0x230));return await C[af(0x1e3)](H,{'cmdPath':t,'skipValidation':O['skipValidation']});}}const printCallResult=(a,M,L,r,w,h,Y,C,i)=>{const aB=a1a8;if(!a?.[aB(0x25e)]){if(M)handleJsonOutput(a?.[aB(0x23e)],L);else{if(r)handleYamlOutput(a?.[aB(0x23e)],L);else{if(isListCommand(w)){const x=h?.[aB(0x1a2)](aB(0x1c1))?h[aB(0x19e)](aB(0x1c1),'')[aB(0x1b7)](',')[aB(0x252)](t=>t[aB(0x21e)]()):undefined,l=w[w[aB(0x234)]-0x1],o=''+l+(l[aB(0x1b4)]('s')?'':'s'),O=upperFirst(o),H=has(L,o)?L[o]:L;printAsTable(H,O,x,Y,C);}else console['log'](consoleFormat(L,i));}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a2I=a2C;(function(T,C){const l=a2C,i=T();while(!![]){try{const K=-parseInt(l(0x16f))/0x1*(parseInt(l(0x1a1))/0x2)+parseInt(l(0x1a4))/0x3*(parseInt(l(0x170))/0x4)+parseInt(l(0x1d4))/0x5+parseInt(l(0x181))/0x6*(parseInt(l(0x1b3))/0x7)+-parseInt(l(0x17d))/0x8+parseInt(l(0x182))/0x9*(-parseInt(l(0x1c8))/0xa)+parseInt(l(0x1cd))/0xb;if(K===C)break;else i['push'](i['shift']());}catch(t){i['push'](i['shift']());}}}(a2T,0xcf428));import{ProxyAgent}from'proxy-agent';import a2i from'chalk';function a2C(T,C){const i=a2T();return a2C=function(K,t){K=K-0x158;let m=i[K];return m;},a2C(T,C);}function a2T(){const E=['getProjectName','use','current','startLogin','sanitiseHostname','Failed\x20to\x20login\x20with\x20the\x20provided\x20token.\x20Token\x20was\x20not\x20changed','--token-login','Use\x20browser\x20login\x20but\x20only\x20print\x20URL\x20which\x20can\x20be\x20used\x20to\x20login','Change\x20current\x20context\x20to\x20context\x20identified\x20by\x20this\x20name','Error\x20occured\x20during\x20browser\x20login:\x20','59563EnWvLz','Change\x20the\x20default\x20service\x20in\x20the\x20current\x20local\x20context','List\x20all\x20available\x20contexts','Override\x20existing\x20contexts\x20(this\x20will\x20remove\x20project\x20and\x20service\x20context)','message','browser\x20login','dir','\x0a\x20\x20Default\x20Service:\x09','description','useProjectId','getCurrentContext','getCurrentBaseUrl','-i,\x20--id\x20[ID]','Token\x20for\x20this\x20context','Use\x20service\x20with\x20id:','getCurrentToken','login','delete','replace','agent','Local\x20context\x20name\x20to\x20remove.','20diQuPk','getInfo','browser-opened','getCurrentProjectName','useJobId','25188240GFzjYF','No\x20current\x20context\x20set.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20one\x20or\x20\x27northflank\x20context\x20use\x27\x20to\x20select\x20an\x20existing\x20one.','stdout','italic','Retrieve\x20and\x20update\x20local\x20context\x20settings.','Current\x20token\x20info','use\x20from\x20now\x20on','1489280BQPxVD','apiTokenLogin','ctx',',\x20added\x20context\x20with\x20name\x20',':\x20\x0a\x20\x20Name:\x09\x09\x09','log','useContext','Use\x20project\x20with\x20id:','\x0a\x20\x20Default\x20Project:\x09','askForContext','\x0a\x20\x20Token\x20Role\x20ID:\x09','Contexts','\x0aSuccessfully\x20logged\x20in\x20using\x20','defaultBaseUrl','askForProject','show','removeContext','contextAvailable','length','clearLine','Use\x20job\x20with\x20id:','No\x20context\x20available.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','timeout','\x0a\x20\x20\x20\x20\x20\x20\x20\x20','loadContextWrapper','verifyToken','set-token','Follow\x20the\x20steps\x20displayed\x20on\x20the\x20page\x20opened\x20in\x20the\x20browser\x20(URL\x20opened:\x20','alias','update-token','tokenInternalId','No\x20context\x20available.\x20Please\x20use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','\x20(api\x20host:\x20','token\x20login','askForJob','https://','https://api.northflank.com','map','remove','284233slzISd','5950376pbUcTa','Open\x20this\x20URL\x20in\x20your\x20browser\x20and\x20follow\x20the\x20steps:\x0a\x09','name','option','sessionToken=********','--host\x20[HOST]','apiClient','addCommand','.\x20Using\x20fallback.','token','browserLogin','Changed\x20current\x20context\x20to\x20','list','6425616ITQyxq','No\x20project\x20in\x20current\x20context.\x20Please\x20set\x20project\x20before\x20setting\x20a\x20project-scoped\x20resource','contexts','host','48agGstS','6094314sONyJc','confirm','contextProvider','project','--override','Token\x20for\x20this\x20context.\x20When\x20set,\x20browser\x20login\x20is\x20not\x20used','host\x20url\x20for\x20this\x20context','bold','doNotOpenBrowser','action','\x27\x20successfully\x20updated.','all','Service\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','Local\x20context\x20\x27','catch','Choose\x20the\x20context\x20to\x20','askForService','service','Update\x20token\x20for\x20current\x20context','Remove\x20a\x20context','then','/v1/login','--all','useServiceId','Project\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','-t,\x20--token\x20[TOKEN]','\x27\x20successfully\x20removed.','Connect\x20the\x20CLI\x20to\x20your\x20Northflank\x20account.','Shows\x20full\x20context\x20information\x20(including\x20tokens)','tokenLogin','\x0a\x20\x20Host:\x09\x09\x09','8VRSFcn','-n,\x20--name\x20[NAME]','\x0a\x20\x20Token\x20ID:\x09\x09','3LaPqUK','close','fullUrl','\x20(current)','Failed\x20to\x20login\x20with\x20the\x20provided\x20token,\x20make\x20sure\x20to\x20use\x20a\x20valid\x20token\x20and\x20host.'];a2T=function(){return E;};return a2T();}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 a2K from'node-fetch';import{set}from'lodash-es';import a2t from'inquirer';export class CliContext{[a2I(0x1c6)];[a2I(0x1e1)];[a2I(0x176)];[a2I(0x17f)];['login'];constructor(T,C=undefined,i=a2I(0x16c)){const n=a2I;this[n(0x1c6)]=C,this[n(0x1e1)]=i,this['apiClient']=T;const K=new InquirerHelper(T);this[n(0x1c3)]=getCommand()[n(0x172)](n(0x1c3))[n(0x1bb)](n(0x19d))[n(0x173)](n(0x1af),'Use\x20manual\x20login\x20with\x20API\x20token',![])[n(0x173)]('--do-not-open-browser',n(0x1b0),![])[n(0x173)]('-n,\x20--name\x20[NAME]','Name\x20for\x20login\x20context')[n(0x173)](n(0x19b),n(0x187))['option'](n(0x175),n(0x188),this['defaultBaseUrl'])[n(0x173)](n(0x186),n(0x1b6),![])[n(0x18b)](async Y=>{const H=n;set(Y,H(0x180),this[H(0x1ad)](Y[H(0x180)]));const q=Y[H(0x19f)]||Y[H(0x179)]!==undefined,{name:N,host:a,token:v,override:p}=q?await this[H(0x1d5)](Y,K):await this[H(0x17a)](Y,K);try{await this[H(0x176)][H(0x184)]['addContext']({'name':N,'host':a,'token':v},p);}catch(w){error(w[H(0x1b7)]);return;}if(!await this[H(0x161)]())error(H(0x1a8)),await this[H(0x176)]['contextProvider'][H(0x158)](N);else{const Z=q?H(0x169):H(0x1b8),F=H(0x1e0)+Z+H(0x1d7)+a2i[H(0x1d0)](N)+H(0x168)+a+')';success(F);}}),this[n(0x17f)]=getCommand()[n(0x172)]('context')[n(0x1bb)](n(0x1d1))['alias'](n(0x17f))[n(0x164)](n(0x1d6));const t=getCommand()['name']('list')[n(0x172)]('ls')['description'](n(0x1b5))['option'](n(0x198),n(0x19e))[n(0x18b)](async Y=>{const f=n;console[f(0x1d9)](T[f(0x184)]['getInfo']());const q=T[f(0x184)]['loadContextWrapper']();if(Y[f(0x18d)]===!![]){console[f(0x1b9)](q);return;}const N=q[f(0x1ab)],a=q[f(0x17f)]['sort']((v,p)=>v['name']===N?-0x1:p[f(0x172)]===N?0x1:0x0)[f(0x16d)](v=>{const e=f,p=N===v[e(0x172)]?e(0x1a7):'';return{'Name':''+v[e(0x172)]+p,'Host':v[e(0x180)],'Default\x20Project':v['project']||'-','Default\x20Service':v['service']||'-'};});printAsTable(a,f(0x1df));}),m=getCommand()['name'](n(0x1e3))[n(0x1bb)]('Shows\x20detailed\x20information\x20about\x20current\x20context')[n(0x18b)](async()=>{const c=n;console[c(0x1d9)](T[c(0x184)][c(0x1c9)]());const Y=T[c(0x184)][c(0x1bd)]();if(Y===undefined){console[c(0x1d9)](c(0x1ce));return;}const q=decodeJwtPayload(Y[c(0x179)]),N=Y[c(0x180)];console[c(0x1d9)](a2i[c(0x189)](c(0x1d2))+c(0x1d8)+Y[c(0x172)]+c(0x1a0)+N+c(0x1dc)+(Y['project']||'-')+c(0x1ba)+(Y[c(0x193)]||'-')+c(0x1a3)+(q?.[c(0x166)]||'-')+c(0x1de)+(q?.['roleInternalId']||'-')+c(0x15f));}),k=getCommand();k[n(0x172)]('use')[n(0x1bb)]('Switch\x20between\x20your\x20local\x20contexts')[n(0x173)](n(0x1a2),n(0x1b1))['action'](async Y=>{const O=n,q=Y?.[O(0x172)]||await this[O(0x1dd)](O(0x1aa));await this['apiClient'][O(0x184)][O(0x1da)](q),success('Changed\x20current\x20context\x20to\x20'+q);});const Q=n(0x1bf),R=getCommand()[n(0x172)](n(0x185))['description']('Change\x20the\x20default\x20project\x20in\x20the\x20current\x20local\x20context')[n(0x173)](Q,n(0x19a))[n(0x18b)](async Y=>{const x=n,q=Y?.['id']||await K[x(0x1e2)]();await this[x(0x176)][x(0x184)][x(0x1bc)](q),console['log'](x(0x1db),q);}),A=getCommand()[n(0x172)](n(0x193))[n(0x1bb)](n(0x1b4))['option'](Q,n(0x18e))[n(0x18b)](async Y=>{const z=n,q=Y?.['id']||await K[z(0x192)](this[z(0x1a9)]())();console[z(0x1d9)](z(0x1c1),q),await this['apiClient']['contextProvider'][z(0x199)](q);}),V=getCommand()[n(0x172)]('job')[n(0x1bb)]('Change\x20the\x20default\x20job\x20in\x20the\x20current\x20local\x20context')[n(0x173)](Q,'Job\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context')[n(0x18b)](async Y=>{const b=n,q=Y?.['id']||await K[b(0x16a)](this[b(0x1a9)]())();console['log'](b(0x15c),q),await this['apiClient'][b(0x184)][b(0x1cc)](q);});k[n(0x177)](R),k[n(0x177)](V),k[n(0x177)](A);const M=getCommand()[n(0x172)](n(0x16e))[n(0x164)](n(0x1c4))[n(0x164)]('rm')[n(0x1bb)](n(0x195))[n(0x173)](Q,n(0x1c7))[n(0x18b)](async Y=>{const u=n,q=Y?.['id']||await this[u(0x1dd)]('remove'),N=this['apiClient'][u(0x184)][u(0x1bd)]()?.[u(0x172)];await this[u(0x176)]['contextProvider']['removeContext'](q),success(u(0x18f)+q+u(0x19c));if(!this['contextAvailable']()){warning(u(0x15d));return;}if(N===q){const a=Y?.[u(0x172)]||await this['askForContext'](u(0x1d3));await this['apiClient'][u(0x184)][u(0x1da)](a),success(u(0x17b)+a);}}),G=getCommand()[n(0x172)](n(0x165))['alias'](n(0x162))[n(0x1bb)](n(0x194))[n(0x173)](n(0x19b),n(0x1c0))[n(0x18b)](async Y=>{const o=n,{contextProvider:q}=this[o(0x176)],N=Y?.['token']||await K['tokenPrompt'](),a=q[o(0x1c2)]();await q['updateToken'](N);if(await this[o(0x161)]())success('Token\x20for\x20current\x20context\x20\x27'+q['getCurrentName']()+o(0x18c));else{if(a)await q['updateToken'](a);error(o(0x1ae));}});this[n(0x17f)][n(0x177)](t),this[n(0x17f)][n(0x177)](m),this[n(0x17f)]['addCommand'](k),this['contexts'][n(0x177)](M),this['contexts'][n(0x177)](G);}async[a2I(0x17a)](T,C){const d=a2I,i=!T[d(0x18a)],K=T[d(0x180)]??this[d(0x1e1)],t=new NorthflankApiBrowserLogin(K,i,this[d(0x1c6)]);let m;t['on'](d(0x1ca),({url:A})=>{const L=d;if(i){const V=A[L(0x1c5)](/sessionToken=.*/,L(0x174));console[L(0x1d9)](L(0x163)+V+')'),m=a2t['prompt']([{'type':L(0x183),'name':L(0x1a6),'message':'Display\x20full\x20URL\x20to\x20allow\x20opening\x20the\x20link\x20manually','default':![]}]),m[L(0x196)](M=>{const D=L;process[D(0x1cf)]['moveCursor'](0x0,-0x1),process[D(0x1cf)][D(0x15b)](0x1),M[D(0x1a6)]&&console[D(0x1d9)](D(0x171)+A+'\x20');});}else console['log'](L(0x171)+A+'\x20');});const {token:k,contextName:Q}=await t[d(0x1ac)]()[d(0x190)](async A=>{const g=d;error(g(0x1b2)+A['message']+g(0x178));const V=await this['apiTokenLogin'](T,C);return{'token':V['token'],'contextName':V['name']};})['finally'](()=>{const J=d;if(m)m['ui'][J(0x1a5)]();}),R=T[d(0x172)]??Q??'autologin-'+new Date()['valueOf']();return{'name':R,'token':k,'host':K,'override':T['override']??![]};}[a2I(0x1ad)]=T=>{const U=a2I;let C=T;return!/^https?:\/\//i['test'](C)&&(C=U(0x16b)+C),C=C[U(0x1c5)](/\/+$/,''),C;};async[a2I(0x1d5)](T,C){const S=a2I,i=this[S(0x176)][S(0x184)][S(0x160)]()[S(0x17f)],{name:K,token:t,host:m,override:k}=await C['loginPrompt'](T,i);return{'name':K,'token':t,'host':m,'override':k};}[a2I(0x1a9)](){const B=a2I,T=this[B(0x176)][B(0x184)][B(0x1cb)]();if(T===undefined)throw new Error(B(0x17e));return T;}async[a2I(0x1dd)](T){const h=a2I;if(!this['contextAvailable']())throw new Error(h(0x167));const C=this[h(0x176)][h(0x184)]['loadContextWrapper']()[h(0x17f)][h(0x16d)](K=>K['name']),i=C[h(0x15a)]>0x4?'search-list':h(0x17c);return(await a2t['prompt']([{'type':i,'name':'name','message':h(0x191)+T+':','choices':C}]))[h(0x172)];}[a2I(0x159)](){const s=a2I;return this[s(0x176)]['contextProvider']['loadContextWrapper']()[s(0x17f)]['length']>0x0;}async['verifyToken'](){const X=a2I;try{const T=this[X(0x176)][X(0x184)][X(0x1be)](),C=this[X(0x176)][X(0x184)][X(0x1c2)](),i=T+X(0x197),K={'Authorization':'Bearer\x20'+C},t=new ProxyAgent(),m=await retry(0x3)(async()=>a2K(i,{'method':'GET','signal':AbortSignal[X(0x15e)](0xbb8),'headers':K,'agent':t}));if(m['ok'])return!![];return![];}catch(k){return![];}}}
|
|
1
|
+
function a2M(a,M){const L=a2a();return a2M=function(r,w){r=r-0xd5;let h=L[r];return h;},a2M(a,M);}const a2q=a2M;(function(a,M){const R=a2M,L=a();while(!![]){try{const r=-parseInt(R(0x110))/0x1+parseInt(R(0xe0))/0x2+parseInt(R(0xf4))/0x3+-parseInt(R(0x15f))/0x4*(parseInt(R(0x15e))/0x5)+parseInt(R(0x15a))/0x6*(-parseInt(R(0xf2))/0x7)+-parseInt(R(0x15b))/0x8+parseInt(R(0x164))/0x9*(parseInt(R(0x13d))/0xa);if(r===M)break;else L['push'](L['shift']());}catch(w){L['push'](L['shift']());}}}(a2a,0x78793));import{ProxyAgent}from'proxy-agent';function a2a(){const D=['Change\x20the\x20default\x20service\x20in\x20the\x20current\x20local\x20context','italic','Failed\x20to\x20login\x20with\x20the\x20provided\x20token,\x20make\x20sure\x20to\x20use\x20a\x20valid\x20token\x20and\x20host.','timeout','Changed\x20current\x20context\x20to\x20','autologin-','Shows\x20detailed\x20information\x20about\x20current\x20context','updateToken','token','addContext','contexts','https://api.northflank.com','\x0a\x20\x20\x20\x20\x20\x20\x20\x20','roleInternalId','-n,\x20--name\x20[NAME]','apiTokenLogin','search-list','askForService','No\x20context\x20available.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','override','service','Service\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','getCurrentName','project','--token-login','Update\x20token\x20for\x20current\x20context','Project\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','tokenLogin','Local\x20context\x20name\x20to\x20remove.','--host\x20[HOST]','useProjectId','3218970vTVKWB','fullUrl','sort','Override\x20existing\x20contexts\x20(this\x20will\x20remove\x20project\x20and\x20service\x20context)','getProjectName','list','\x20(current)','delete','Local\x20context\x20\x27','apiClient','No\x20context\x20available.\x20Please\x20use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','removeContext','bold','Bearer\x20','Shows\x20full\x20context\x20information\x20(including\x20tokens)','moveCursor','addCommand','Change\x20the\x20default\x20job\x20in\x20the\x20current\x20local\x20context','askForContext','--all','browser\x20login','all','agent','\x0aSuccessfully\x20logged\x20in\x20using\x20','getCurrentToken','Token\x20for\x20current\x20context\x20\x27','Use\x20service\x20with\x20id:','current','finally','78etdiAi','2346520gSAfit','use','Error\x20occured\x20during\x20browser\x20login:\x20','11685JZTQej','1084YCJJqd','useContext','Token\x20for\x20this\x20context.\x20When\x20set,\x20browser\x20login\x20is\x20not\x20used','askForJob','Switch\x20between\x20your\x20local\x20contexts','45gupqIV',':\x20\x0a\x20\x20Name:\x09\x09\x09','List\x20all\x20available\x20contexts','length','loginPrompt','No\x20current\x20context\x20set.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20one\x20or\x20\x27northflank\x20context\x20use\x27\x20to\x20select\x20an\x20existing\x20one.','askForProject','useJobId','Change\x20current\x20context\x20to\x20context\x20identified\x20by\x20this\x20name','Follow\x20the\x20steps\x20displayed\x20on\x20the\x20page\x20opened\x20in\x20the\x20browser\x20(URL\x20opened:\x20','show','browserLogin','534570iELDqf','valueOf','token\x20login','.\x20Using\x20fallback.','Change\x20the\x20default\x20project\x20in\x20the\x20current\x20local\x20context','stdout','browser-opened','login','Job\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','getInfo','getCurrentContext','dir','Remove\x20a\x20context','close','name','Use\x20job\x20with\x20id:','sanitiseHostname','GET','203707LBJNZR','alias','358356HAsOHY','verifyToken','Open\x20this\x20URL\x20in\x20your\x20browser\x20and\x20follow\x20the\x20steps:\x0a\x09','option','remove','\x20(api\x20host:\x20','map','replace','action','test','update-token','useServiceId','context','contextProvider',',\x20added\x20context\x20with\x20name\x20','sessionToken=********','use\x20from\x20now\x20on','tokenInternalId','Contexts','job','-t,\x20--token\x20[TOKEN]','log','defaultBaseUrl','Use\x20browser\x20login\x20but\x20only\x20print\x20URL\x20which\x20can\x20be\x20used\x20to\x20login','set-token','message','\x0a\x20\x20Default\x20Service:\x09','tokenPrompt','197808fNxRZc','prompt','\x0a\x20\x20Host:\x09\x09\x09','host','ctx','contextAvailable','getCurrentBaseUrl','loadContextWrapper','No\x20project\x20in\x20current\x20context.\x20Please\x20set\x20project\x20before\x20setting\x20a\x20project-scoped\x20resource','Failed\x20to\x20login\x20with\x20the\x20provided\x20token.\x20Token\x20was\x20not\x20changed','--do-not-open-browser','description','\x27\x20successfully\x20removed.','-i,\x20--id\x20[ID]'];a2a=function(){return D;};return a2a();}import a2L 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 a2r from'node-fetch';import{set}from'lodash-es';import a2w from'inquirer';export class CliContext{[a2q(0x153)];[a2q(0x10a)];['apiClient'];['contexts'];[a2q(0xe7)];constructor(a,M=undefined,L=a2q(0x129)){const b=a2q;this['agent']=M,this[b(0x10a)]=L,this[b(0x146)]=a;const r=new InquirerHelper(a);this['login']=getCommand()['name'](b(0xe7))['description']('Connect\x20the\x20CLI\x20to\x20your\x20Northflank\x20account.')[b(0xf7)](b(0x136),'Use\x20manual\x20login\x20with\x20API\x20token',![])[b(0xf7)](b(0x11a),b(0x10b),![])[b(0xf7)](b(0x12c),'Name\x20for\x20login\x20context')[b(0xf7)](b(0x108),b(0x161))['option'](b(0x13b),'host\x20url\x20for\x20this\x20context',this[b(0x10a)])['option']('--override',b(0x140),![])[b(0xfc)](async H=>{const F=b;set(H,F(0x113),this[F(0xf0)](H[F(0x113)]));const t=H[F(0x139)]||H['token']!==undefined,{name:Z,host:f,token:B,override:s}=t?await this[F(0x12d)](H,r):await this[F(0xdf)](H,r);try{await this['apiClient'][F(0x101)][F(0x127)]({'name':Z,'host':f,'token':B},s);}catch(A){error(A[F(0x10d)]);return;}if(!await this[F(0xf5)]())error(F(0x120)),await this['apiClient']['contextProvider'][F(0x148)](Z);else{const I=t?F(0xe2):F(0x151),m=F(0x154)+I+F(0x102)+a2L[F(0x11f)](Z)+F(0xf9)+f+')';success(m);}}),this[b(0x128)]=getCommand()[b(0xee)](b(0x100))['description']('Retrieve\x20and\x20update\x20local\x20context\x20settings.')[b(0xf3)]('contexts')['alias'](b(0x114));const w=getCommand()[b(0xee)](b(0x142))['name']('ls')['description'](b(0xd6))[b(0xf7)](b(0x150),b(0x14b))[b(0xfc)](async H=>{const v=b;console['log'](a[v(0x101)][v(0xe9)]());const t=a[v(0x101)][v(0x117)]();if(H[v(0x152)]===!![]){console[v(0xeb)](t);return;}const Z=t[v(0x158)],f=t['contexts'][v(0x13f)]((B,s)=>B[v(0xee)]===Z?-0x1:s[v(0xee)]===Z?0x1:0x0)['map'](B=>{const T=v,s=Z===B[T(0xee)]?T(0x143):'';return{'Name':''+B['name']+s,'Host':B[T(0x113)],'Default\x20Project':B[T(0x135)]||'-','Default\x20Service':B[T(0x132)]||'-'};});printAsTable(f,v(0x106));}),h=getCommand()['name'](b(0xde))['description'](b(0x124))[b(0xfc)](async()=>{const V=b;console[V(0x109)](a['contextProvider'][V(0xe9)]());const H=a[V(0x101)][V(0xea)]();if(H===undefined){console[V(0x109)](V(0xd9));return;}const t=decodeJwtPayload(H[V(0x126)]),Z=H['host'];console[V(0x109)](a2L[V(0x149)]('Current\x20token\x20info')+V(0xd5)+H[V(0xee)]+V(0x112)+Z+'\x0a\x20\x20Default\x20Project:\x09'+(H['project']||'-')+V(0x10e)+(H[V(0x132)]||'-')+'\x0a\x20\x20Token\x20ID:\x09\x09'+(t?.[V(0x105)]||'-')+'\x0a\x20\x20Token\x20Role\x20ID:\x09'+(t?.[V(0x12b)]||'-')+V(0x12a));}),Y=getCommand();Y[b(0xee)](b(0x15c))[b(0x11b)](b(0x163))[b(0xf7)](b(0x12c),b(0xdc))[b(0xfc)](async H=>{const n=b,t=H?.['name']||await this[n(0x14f)]('use');await this['apiClient']['contextProvider'][n(0x160)](t),success(n(0x122)+t);});const C=b(0x11d),i=getCommand()[b(0xee)]('project')[b(0x11b)](b(0xe4))[b(0xf7)](C,b(0x138))[b(0xfc)](async H=>{const e=b,t=H?.['id']||await r[e(0xda)]();await this['apiClient'][e(0x101)][e(0x13c)](t),console[e(0x109)]('Use\x20project\x20with\x20id:',t);}),x=getCommand()['name'](b(0x132))[b(0x11b)](b(0x11e))[b(0xf7)](C,b(0x133))[b(0xfc)](async H=>{const p=b,t=H?.['id']||await r[p(0x12f)](this['getProjectName']())();console['log'](p(0x157),t),await this[p(0x146)][p(0x101)][p(0xff)](t);}),l=getCommand()[b(0xee)](b(0x107))[b(0x11b)](b(0x14e))['option'](C,b(0xe8))[b(0xfc)](async H=>{const y=b,t=H?.['id']||await r[y(0x162)](this[y(0x141)]())();console[y(0x109)](y(0xef),t),await this[y(0x146)][y(0x101)][y(0xdb)](t);});Y[b(0x14d)](i),Y[b(0x14d)](l),Y[b(0x14d)](x);const o=getCommand()[b(0xee)]('remove')[b(0xf3)](b(0x144))[b(0xf3)]('rm')['description'](b(0xec))['option'](C,b(0x13a))[b(0xfc)](async H=>{const g=b,t=H?.['id']||await this[g(0x14f)](g(0xf8)),Z=this[g(0x146)][g(0x101)]['getCurrentContext']()?.['name'];await this[g(0x146)][g(0x101)][g(0x148)](t),success(g(0x145)+t+g(0x11c));if(!this[g(0x115)]()){warning(g(0x130));return;}if(Z===t){const f=H?.[g(0xee)]||await this[g(0x14f)](g(0x104));await this[g(0x146)][g(0x101)][g(0x160)](f),success(g(0x122)+f);}}),O=getCommand()[b(0xee)](b(0xfe))[b(0xf3)](b(0x10c))[b(0x11b)](b(0x137))[b(0xf7)](b(0x108),'Token\x20for\x20this\x20context')[b(0xfc)](async H=>{const X=b,{contextProvider:t}=this['apiClient'],Z=H?.['token']||await r[X(0x10f)](),f=t['getCurrentToken']();await t[X(0x125)](Z);if(await this[X(0xf5)]())success(X(0x156)+t[X(0x134)]()+'\x27\x20successfully\x20updated.');else{if(f)await t[X(0x125)](f);error(X(0x119));}});this[b(0x128)][b(0x14d)](w),this[b(0x128)][b(0x14d)](h),this['contexts'][b(0x14d)](Y),this['contexts']['addCommand'](o),this[b(0x128)]['addCommand'](O);}async[a2q(0xdf)](a,M){const P=a2q,L=!a['doNotOpenBrowser'],r=a[P(0x113)]??this['defaultBaseUrl'],w=new NorthflankApiBrowserLogin(r,L,this['agent']);let h;w['on'](P(0xe6),({url:x})=>{const Q=P;if(L){const l=x[Q(0xfb)](/sessionToken=.*/,Q(0x103));console['log'](Q(0xdd)+l+')'),h=a2w[Q(0x111)]([{'type':'confirm','name':Q(0x13e),'message':'Display\x20full\x20URL\x20to\x20allow\x20opening\x20the\x20link\x20manually','default':![]}]),h['then'](o=>{const d=Q;process['stdout'][d(0x14c)](0x0,-0x1),process[d(0xe5)]['clearLine'](0x1),o[d(0x13e)]&&console['log'](d(0xf6)+x+'\x20');});}else console[Q(0x109)](Q(0xf6)+x+'\x20');});const {token:Y,contextName:C}=await w['startLogin']()['catch'](async x=>{const u=P;error(u(0x15d)+x[u(0x10d)]+u(0xe3));const l=await this[u(0x12d)](a,M);return{'token':l[u(0x126)],'contextName':l[u(0xee)]};})[P(0x159)](()=>{const J=P;if(h)h['ui'][J(0xed)]();}),i=a[P(0xee)]??C??P(0x123)+new Date()[P(0xe1)]();return{'name':i,'token':Y,'host':r,'override':a[P(0x131)]??![]};}[a2q(0xf0)]=a=>{const U=a2q;let M=a;return!/^https?:\/\//i[U(0xfd)](M)&&(M='https://'+M),M=M['replace'](/\/+$/,''),M;};async[a2q(0x12d)](a,M){const W=a2q,L=this[W(0x146)][W(0x101)]['loadContextWrapper']()[W(0x128)],{name:r,token:w,host:h,override:Y}=await M[W(0xd8)](a,L);return{'name':r,'token':w,'host':h,'override':Y};}[a2q(0x141)](){const E=a2q,a=this[E(0x146)][E(0x101)]['getCurrentProjectName']();if(a===undefined)throw new Error(E(0x118));return a;}async[a2q(0x14f)](a){const N=a2q;if(!this[N(0x115)]())throw new Error(N(0x147));const M=this[N(0x146)][N(0x101)][N(0x117)]()[N(0x128)][N(0xfa)](r=>r[N(0xee)]),L=M[N(0xd7)]>0x4?N(0x12e):N(0x142);return(await a2w[N(0x111)]([{'type':L,'name':N(0xee),'message':'Choose\x20the\x20context\x20to\x20'+a+':','choices':M}]))['name'];}['contextAvailable'](){const S=a2q;return this[S(0x146)]['contextProvider']['loadContextWrapper']()[S(0x128)][S(0xd7)]>0x0;}async[a2q(0xf5)](){const G=a2q;try{const a=this[G(0x146)]['contextProvider'][G(0x116)](),M=this['apiClient'][G(0x101)][G(0x155)](),L=a+'/v1/login',r={'Authorization':G(0x14a)+M},w=new ProxyAgent(),h=await retry(0x3)(async()=>a2r(L,{'method':G(0xf1),'signal':AbortSignal[G(0x121)](0xbb8),'headers':r,'agent':w}));if(h['ok'])return!![];return![];}catch(Y){return![];}}}
|
package/dist/copy/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a3F=a3M;(function(a,M){const b=a3M,L=a();while(!![]){try{const r=-parseInt(b(0x1f8))/0x1+-parseInt(b(0x1f9))/0x2*(-parseInt(b(0x210))/0x3)+-parseInt(b(0x23c))/0x4+-parseInt(b(0x213))/0x5+-parseInt(b(0x20d))/0x6+parseInt(b(0x20a))/0x7*(parseInt(b(0x229))/0x8)+parseInt(b(0x205))/0x9*(parseInt(b(0x237))/0xa);if(r===M)break;else L['push'](L['shift']());}catch(w){L['push'](L['shift']());}}}(a3a,0xa3531));import{ApiClient,CopyType}from'@northflank/js-client';function a3M(a,M){const L=a3a();return a3M=function(r,w){r=r-0x1eb;let h=L[r];return h;},a3M(a,M);}import{assertContextExisting,customUserAgent,getCommand,success}from'../utils.js';function a3a(){const P=['local','getCurrentProjectName','Local\x20file\x20or\x20directory','40ruKyDx','name','\x27remotePath\x27','user\x20home','\x20directory\x20is\x20used.\x20If\x20the\x20directory\x20for\x20','813592ZpAVIH','upload','action','\x27\x20to\x20\x27','charAt','job','\x20the\x20specified\x20','addCommand','file','download','\x27localPath\x27','File\x20and\x20directory\x20download\x20for\x20Northflank\x20service.','description','Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.','1002129pOJlbW','643768BEpmEE','\x20files\x20','--project\x20--projectId\x20[NAME]','ed-file.txt\x0a\x20\x20','remotePath','option','Path\x20does\x20not\x20exist,\x20it\x20will\x20be\x20created.\x0aExamples:\x0a\x20\x20','Remote\x20file\x20or\x20directory','\x20(random\x20container\x20will\x20be\x20chosen\x20if\x20not\x20specified)','Downloaded\x20all\x20directory\x20contents\x20from\x20\x27','askForPath','toUpperCase','6923412FIvqpI','alias','FILE_UPLOAD','remote','Uploaded\x20all\x20directory\x20contents\x20from\x20\x27','53011keBUKj','getStandardCopyCommand','\x27\x20to\x20container\x20directory\x20\x27','7308804hWTAcN','File\x20and\x20directory\x20download\x20for\x20Northflank\x20job.','\x20directory:\x20\x20\x20\x20\x20northflank\x20','3uFifvE','downloadCmd','File\x20and\x20directory\x20upload\x20for\x20Northflank\x20service.','2932595aVzqax','logCopyResult','-dir','from','Id\x20[NAME]','Project\x20for\x20','--local\x20--localPath\x20[LOCALPATH]','\x20files','Downloaded\x20file\x20\x27','askForService','input','uploadCmd','localPath','slice','apiClient','FILE_DOWNLOAD','service','ensureRelevantPathIsSet','\x20--','.\x20If\x20the\x20','File\x20and\x20directory\x20download\x20for\x20Northflank\x20services\x20and\x20jobs.','getCurrentServiceName','296nHpWcG','Container\x20used\x20to\x20','askForProject','--noDefaults','prompt','type','current\x20working','--remote\x20--remotePath\x20[REMOTEPATH]','Path\x20is\x20not\x20specified,\x20the\x20','askForJob','\x20file\x20--localPath\x20my_directory\x20--remotePath\x20/home/'];a3a=function(){return P;};return a3a();}import{InquirerHelper}from'../inquirer-helper.js';import{capitalize}from'lodash-es';import a3L from'inquirer';export class CliFileCopy{[a3F(0x211)];[a3F(0x21e)];[a3F(0x221)];['getStandardCopyCommand']=(a,M)=>{const v=a3F,L=capitalize(M),r=M===v(0x1eb)?v(0x208):v(0x234),w=M==='upload'?v(0x23a):v(0x22f),h=M===v(0x1eb)?'to':v(0x216);return getCommand(!![])[v(0x238)](v(0x1f2))[v(0x1f6)](L+v(0x1fa)+h+v(0x1f0)+a+v(0x226)+r+v(0x231)+w+v(0x23b)+r+v(0x1ff)+L+'\x20single\x20file:\x20\x20\x20northflank\x20'+M+'\x20'+a+'\x20file\x20--localPath\x20my_directory/my-file.txt\x20--remotePath\x20/home/my-'+M+v(0x1fc)+L+v(0x20f)+M+'\x20'+a+v(0x233)+M+v(0x215))[v(0x1fe)](v(0x1fb),v(0x218)+M)[v(0x1fe)]('--'+a+v(0x225)+a+v(0x217),a[v(0x1ee)](0x0)[v(0x204)]()+a[v(0x220)](0x1)+'\x20to\x20'+M+v(0x21a))['option']('--container\x20--containerId\x20[NAME]',v(0x22a)+M+v(0x201))[v(0x1fe)](v(0x219),v(0x236))['option'](v(0x230),v(0x200))[v(0x1fe)](v(0x22c),v(0x1f7),![]);};constructor(a,M){const T=a3F;this[T(0x221)]=new ApiClient(a,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':M});const L=new InquirerHelper(this['apiClient']);this[T(0x211)]=getCommand()[T(0x238)](T(0x1f3))['alias']('dl')[T(0x1f6)](T(0x227)),this[T(0x21e)]=getCommand()[T(0x238)](T(0x1eb))[T(0x206)]('ul')[T(0x1f6)]('File\x20and\x20directory\x20upload\x20for\x20Northflank\x20services\x20and\x20jobs.');const r=getCommand()['name'](T(0x223))['description'](T(0x1f5)),w=getCommand()['name'](T(0x223))[T(0x1f6)](T(0x212)),h=getCommand()[T(0x238)](T(0x1ef))['description'](T(0x20e)),Y=getCommand()[T(0x238)](T(0x1ef))[T(0x1f6)]('File\x20and\x20directory\x20upload\x20for\x20Northflank\x20job.'),C=x=>{const V=T;return this[V(0x20b)]('service',x)[V(0x1ec)](async l=>{const n=V,{projectId:o,serviceId:O,containerId:H,noDefaults:t,quiet:Z}=l;assertContextExisting(this[n(0x221)]);const f=t?undefined:a[n(0x235)](),B=o||f||await L[n(0x22b)](),s=t?undefined:a[n(0x228)](),A=O||s||await L[n(0x21c)](B)(),{remotePath:I,localPath:m}=await this[n(0x224)](x,l),R={'projectId':B,'serviceId':A},q=await this[n(0x221)][x][n(0x223)]['files'](R,{'containerName':H,'localPath':m,'remotePath':I});this[n(0x214)](q,Z);});},i=x=>{const e=T;return this[e(0x20b)](e(0x1ef),x)[e(0x1ec)](async l=>{const p=e,{projectId:o,jobId:O,containerId:H,noDefaults:t,quiet:Z}=l;assertContextExisting(this[p(0x221)]);const f=t?undefined:a[p(0x235)](),B=o||f||await L[p(0x22b)](),s=O||await L[p(0x232)](B)(),{remotePath:A,localPath:I}=await this[p(0x224)](x,l),m={'projectId':B,'jobId':s},R=await this[p(0x221)][x][p(0x1ef)]['files'](m,{'containerName':H,'localPath':I,'remotePath':A});this[p(0x214)](R,Z);});};r[T(0x1f1)](C(T(0x1f3))),h[T(0x1f1)](i(T(0x1f3))),w[T(0x1f1)](C(T(0x1eb))),Y[T(0x1f1)](i(T(0x1eb))),this[T(0x211)]['addCommand'](r),this[T(0x211)][T(0x1f1)](h),this['uploadCmd']['addCommand'](w),this[T(0x21e)][T(0x1f1)](Y);}[a3F(0x214)]=(a,M)=>{const y=a3F;if(M)return;const {sourceDirectory:L,targetDirectory:r,sourceFile:w,targetFile:h}=a;switch(a[y(0x22e)]){case CopyType['DIRECTORY_DOWNLOAD']:{success(y(0x202)+L+'\x27\x20to\x20local\x20directory\x20\x27'+r+'\x27');break;}case CopyType[y(0x222)]:{success(y(0x21b)+L+'/'+w+'\x27\x20to\x20\x27'+r+'/'+h+'\x27');break;}case CopyType['DIRECTORY_UPLOAD']:{success(y(0x209)+L+y(0x20c)+r+'\x27');break;}case CopyType[y(0x207)]:{success('Uploaded\x20file\x20from\x20\x27'+L+'/'+w+y(0x1ed)+r+'/'+h+'\x27');break;}}};[a3F(0x224)]=async(a,M)=>{const g=a3F,L=a===g(0x1f3)&&M[g(0x1fd)]===undefined?await this[g(0x203)](g(0x239),g(0x1f3)):M[g(0x1fd)],r=a===g(0x1eb)&&M[g(0x21f)]===undefined?await this[g(0x203)](g(0x1f4),'upload'):M[g(0x21f)];return{'localPath':r,'remotePath':L};};[a3F(0x203)]=async(a,M)=>{const X=a3F,L=a+'\x20is\x20required\x20for\x20'+M+'s.\x20Please\x20enter\x20a\x20path:';return(await a3L[X(0x22d)]([{'type':X(0x21d),'name':X(0x238),'message':L}]))[X(0x238)];};}
|