@northflank/cli 0.11.0 → 0.11.1
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 -1
- package/dist/utils.js +1 -1
- package/package.json +2 -2
package/dist/api-helpers.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a0e(){const w=['1873672AZUypd','replicas','credentials','includes','addonId','4548303bSnPyj','addon','registryCredentials','plans','keyName','storage','logSink','7OfronD','type','templates','secretLink','map','2350430gyDxNV','regions','secret','resources','10CcpCID','secrets','412349oPhiGq','internalId','cursor','default','nextPageCursor','data','types','templateId','323412KFMBEu','addonTypes','services','projects','updateaddonversion','keys','837279eEbeSj','backupId','addonDependencies','get','versions','projectId','deploymentPlan','6eizLeS','length','owningObject','find','list','join','version','pagination','454766VVwoSA','backups','region','serviceId'];a0e=function(){return w;};return a0e();}(function(e,V){const H=a0V,b=e();while(!![]){try{const G=parseInt(H(0xe0))/0x1+-parseInt(H(0xc5))/0x2+parseInt(H(0xb6))/0x3+parseInt(H(0xe8))/0x4+parseInt(H(0xda))/0x5*(parseInt(H(0xbd))/0x6)+parseInt(H(0xd5))/0x7*(-parseInt(H(0xc9))/0x8)+parseInt(H(0xce))/0x9*(-parseInt(H(0xde))/0xa);if(G===V)break;else b['push'](b['shift']());}catch(a){b['push'](b['shift']());}}}(a0e,0x433de));import{warning}from'./utils.js';const defaultPaginationPageSize=0x64,getProjects=(e,V)=>async b=>{const i=a0V,G=await e[i(0xc1)][i(0xb3)]({...V?{'parameters':{'teamId':V}}:{},'options':{'per_page':defaultPaginationPageSize,'cursor':b?.[i(0xe4)]}});return{'elements':G[i(0xe5)][i(0xb3)][i(0xd9)](a=>a['id']),'nextPageCursor':G[i(0xc4)]?.[i(0xe2)]};},getServices=(e,V,b)=>async G=>{const P=a0V,a=await e['list'][P(0xea)]({'parameters':{'projectId':V,'teamId':b},'options':{'per_page':defaultPaginationPageSize,'cursor':G?.[P(0xe4)]}});return{'elements':a[P(0xe5)][P(0xea)][P(0xd9)](m=>m['id']),'nextPageCursor':a['pagination']?.['cursor']};},getAddons=(e,V,b)=>async G=>{const v=a0V,a=await e[v(0xc1)]['addons']({'parameters':{'teamId':b,'projectId':V},'options':{'per_page':defaultPaginationPageSize,'cursor':G?.[v(0xe4)]}});return{'elements':a[v(0xe5)]['addons'][v(0xd9)](m=>m['id']),'nextPageCursor':a[v(0xc4)]?.[v(0xe2)]};},getAddonBackups=(e,V,b,G)=>async a=>{const t=a0V,m=await e[t(0xb9)]['addon']['backups']({'parameters':{'teamId':G,'projectId':V,'addonId':b},'options':{'per_page':defaultPaginationPageSize,'cursor':a?.['nextPageCursor']}});return{'elements':m[t(0xe5)][t(0xc6)]['map'](O=>O['id']),'nextPageCursor':m[t(0xc4)]?.[t(0xe2)]};};function a0V(e,V){const b=a0e();return a0V=function(G,a){G=G-0xb3;let m=b[G];return m;},a0V(e,V);}export async function fetchResourceList(V,b,G,a,m,O){const A=a0V,E=undefined,W=m?.['teamId'];try{if(V===A(0xbc)){const U=await b[A(0xc1)][A(0xd1)]({}),S=U[A(0xe5)][A(0xd1)][A(0xd9)](z=>z?.[A(0xe1)]??z?.['id']);return{'choices':S,'defaultValue':E};}if(V===A(0xc7)&&!G?.[A(0xcc)](A(0xd4))){const z=await b[A(0xc1)][A(0xdb)]({}),x=z[A(0xe5)][A(0xdb)][A(0xd9)](o=>o?.[A(0xe1)]??o?.['id']);return{'choices':x,'defaultValue':E};}if(V===A(0xbb)){const o=await getProjects(b,W),{elements:K,nextPageCursor:N}=await o();return{'choices':K,'defaultValue':E,'pagination':{'nextPageCursor':N,'loadMore':o}};}if(V===A(0xcb)){const J=await b[A(0xc1)][A(0xd0)]({...W?{'parameters':{'teamId':W}}:{}}),f=J['data'][A(0xcb)][A(0xd9)](D=>D['id']);return{'choices':f,'defaultValue':E};}const M=m?.[A(0xbb)],Q=V===A(0xc8)||V==='id'&&O?.[A(0xcc)](A(0xbf));if(M!==undefined&&Q){const D=await getServices(b,M,W),{elements:Y,nextPageCursor:j}=await D();return{'choices':Y,'defaultValue':E,'pagination':{'nextPageCursor':j,'loadMore':D}};}const k=G?.[A(0xcc)](A(0xcf));if(k){const d=async B=>{const h=A,I=await b[h(0xb9)][h(0xcf)][h(0xe6)]({});return I[h(0xe5)][h(0xe9)]?.[h(0xd9)](R=>R['type'])[h(0xc0)](R=>R[h(0xd6)]===B);};if(V===A(0xd6)){const B=await b[A(0xb9)][A(0xcf)][A(0xe6)]({}),I=B[A(0xe5)][A(0xe9)]?.[A(0xd9)](R=>R['type']);return{'choices':I,'defaultValue':E};}if(V===A(0xc3)&&a?.[A(0xd6)]!==undefined){const R=(await d(a[A(0xd6)]))?.[A(0xba)],c=R!==undefined?['latest',...R]:undefined;return{'choices':c,'defaultValue':E};}if(V===A(0xd3)&&a?.[A(0xd6)]!==undefined){const y=(await d(a['type']))?.['resources']?.[A(0xd3)];return{'choices':y?.['options'],'defaultValue':y?.[A(0xe3)]};}if(V===A(0xca)&&a?.[A(0xd6)]!==undefined){const X=(await d(a[A(0xd6)]))?.[A(0xdd)]?.['replicas'];return{'choices':X?.['options'],'defaultValue':X?.['default']};}}if(V===A(0xcd)&&m?.[A(0xbb)]!==undefined){const Z=await getAddons(b,m?.['projectId'],W),{elements:l,nextPageCursor:T}=await Z();return{'choices':l,'defaultValue':E,'pagination':{'nextPageCursor':T,'loadMore':Z}};}if(V===A(0xb7)&&M!==undefined&&a?.['source']?.['addonId']!==undefined){const g=getAddonBackups(b,M,a?.['source']?.[A(0xcd)],W),{elements:p,nextPageCursor:C}=await g();return{'choices':p,'defaultValue':E,'pagination':{'nextPageCursor':C,'loadMore':g}};}const r=m?.[A(0xcd)]??a?.[A(0xb8)]?.[A(0xcd)];if(G?.[A(0xc2)]('')===A(0xb4)&&V===A(0xc3)&&M!==undefined&&r!==undefined){const {upgradeTo:u}=(await b[A(0xb9)][A(0xcf)][A(0xc3)]({'parameters':{'teamId':W,'addonId':r,'projectId':M}}))[A(0xe5)];if(u===undefined||u[A(0xbe)]<=0x0){warning('No\x20available\x20versions\x20to\x20upgrade\x20to.');throw new Error();}return{'choices':u[A(0xd9)](L=>L[A(0xc3)]),'defaultValue':E};}if(V===A(0xe7)){const L=await b['list'][A(0xd7)]({...W?{'parameters':{'teamId':W}}:{}}),q=L[A(0xe5)][A(0xd7)][A(0xd9)](s=>s?.['id']);return{'choices':q,'defaultValue':E};}if((G?.[A(0xcc)](A(0xd8))||G?.[A(0xcc)](A(0xdc)))&&V===A(0xd2)&&r!==undefined&&M!==undefined){const s=(await b[A(0xb9)]['addon']['credentials']({'parameters':{'addonId':r,'projectId':M,'teamId':W}}))[A(0xe5)];return{'choices':[...Object[A(0xb5)](s?.['envs'])??[],...Object[A(0xb5)](s?.[A(0xdf)])??[]]};}}catch(F){}return{'choices':undefined,'defaultValue':E};}
|
package/dist/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env -S node --no-deprecation
|
|
2
|
-
const a1l8=a1e;(function(l,e){const l7=a1e,s=l();while(!![]){try{const f=parseInt(l7(0x18e))/0x1+-parseInt(l7(0x162))/0x2*(parseInt(l7(0x16e))/0x3)+parseInt(l7(0x1cc))/0x4*(-parseInt(l7(0x189))/0x5)+-parseInt(l7(0x136))/0x6*(parseInt(l7(0x15f))/0x7)+-parseInt(l7(0x18c))/0x8+parseInt(l7(0x112))/0x9+-parseInt(l7(0x1a3))/0xa*(-parseInt(l7(0x124))/0xb);if(f===e)break;else s['push'](s['shift']());}catch(i){s['push'](s['shift']());}}}(a1l,0xb205b));function a1l(){const lS=['3313674QlDmzc','dmn','uploadCmd','addonId','utf-8','backup-destinations','file','pln','-i,\x20--input\x20<resource-def>','isArray','description','askGeneric','exitCode','statusText','underline','branch','askForSubdomainPath','entries','8426oBJQHl','help\x20[command]','retrievePayloadViaInteractiveCli','Failed\x20to\x20validate\x20input\x20(incorrect\x20format):\x20','service','json','API\x20request\x20failed\x0a\x09Message:\x20','addHelpText','askForVolume','resource','credential','backupDestinationId','parseAsync','stdout','repo','readFileSync','data','Expecting\x20resource\x20input\x20with\x20\x27--input\x27\x20or\x20\x27--file\x27\x20argument','6RvqTbh','askForService','runId','rawResponse','find','tags','list','method','volumes','getNextPage','addon','getLogsCommand','downloadCmd','backupId','log','-f,\x20--file\x20<file-path>','length','getCurrentJobName','version','adn','serviceId','-v,\x20--version','hasNextPage','call','pop','logSinkId','addCommand','default','region','File\x20does\x20not\x20exist:\x20','verbose','Display\x20help\x20for\x20command','org','enablePositionalOptions','volume','error','backup','askForLogSink','replace','rgn','pipelineId','556759VQpcZP','filter','url','452nJkfmp','tag','helpCommand','delete','option','getTokenScope','endpoints','docsTagsPath','templateId','buildId','join','parse','1434qHJmlj','defaults','request','clearLine','backups','askForDomain','credentials','domains','subdomainPath','.yaml','contextProvider','query','body','italic','jobs','\x0a>\x20Token\x20permissions\x20required:\x20','portFwdCmd','api.','VERBOSE:\x20Using\x20endpoint\x20->\x20','Documentation:\x20','endsWith','aliases','some','opt','split','sort','Resource\x20was\x20not\x20deleted.','1355mRiUFZ','askForTemplate','templateRunId','896232lkLEdJ','askForJobRun','736808Bmibsr','bind','subdomain','stringify','.json','project','services','base','job','credentialId','volumeId','count','plan','jobId','required','teamScoped','concat','quiet','(HTTP\x20status\x20code:\x20','regions','vol','7280FQkItF','moveCursor','askForClusterId','VERBOSE:\x20HTTP_PROXY\x20or\x20HTTPS_PROXY\x20environment\x20variable\x20set:\x20tunnelling\x20traffic\x20through\x20HTTP\x20proxy.','message','runs','argv','cursor','inv','paginationArgs','all','nonInteractiveEndpoint','includes','Get\x20information\x20about\x20Northflank\x20','Manage\x20your\x20Northflank\x20resources\x20from\x20the\x20command\x20line','\x20--','sshCmd','clusterId','getCurrentServiceName','helpOption','askForCredentials','askForBuild','execCmd','page','OPTIONAL:\x20','startsWith','boolean','commands','repository','isPaginatedEndpoint','template','opts','login','skipValidation','cred','askForTag','output','../package.json','green','existsSync','toUpperCase','9356LLsUUO','domainId','tpl','keys','noDefaults','Northflank\x20cli\x20version:\x20','requiredPermissions','get','force','resourceTagId','forEach','teamId','map','prj','update','domain','=>\x20running\x20command\x20with:\x20','after','Options\x20\x27loadAll\x27\x20can\x20not\x20be\x20combined\x20with\x20\x27page\x27\x20or\x20\x27cursor\x27','getOwnPropertyNames','\x0a\x09details\x20:','setPathVars','projectId','custom-columns=','load','there\x20are\x20more\x20rows,\x20load?','path','subdomainId','yml','getMetricsCommand','name','secrets','JSON-formatted\x20resource\x20definition,\x20takes\x20precedence\x20over\x20\x22--file\x22','pagination','loadAll','askForTeam','secretId','toString','askForBackupDestination','trim','getCurrentProjectName'];a1l=function(){return lS;};return a1l();}import{ApiClient,ApiClientFileContextProvider,GetApiEndpointPaginated}from'@northflank/js-client';import{Command}from'commander';import a1s from'fs';import a1f from'chalk';import{CliContext}from'./context/contextCommands.js';import{agent,assertContextExisting,asyncSequential,checkUpdate,customUserAgent,error,getCommand,proxyEnvsSet,warning}from'./utils.js';import*as a1i from'./defaults.js';import{InquirerHelper}from'./inquirer-helper.js';import{consoleFormat,handleJsonOutput,handleYamlOutput,printAsTable}from'./formatting/console-format-helpers.js';import{getCommandOverview}from'./formatting/command-overview.js';import{CliPortForward}from'./port-forward/index.js';import{CliExec}from'./exec/index.js';import{CliSsh}from'./ssh/index.js';import{CliLogs}from'./logs/index.js';import{CliMetrics}from'./metrics/index.js';import{CliFileCopy}from'./copy/index.js';function a1e(l,e){const s=a1l();return a1e=function(f,i){f=f-0xfc;let c=s[f];return c;},a1e(l,e);}import{isEqual,has,set,kebabCase,upperFirst,isString,omit}from'lodash-es';import a1c from'js-yaml';import{readFileSync}from'fs';import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta[a1l8(0x161)]),__dirname=dirname(__filename),pgk=JSON[a1l8(0x16d)](readFileSync(join(__dirname,a1l8(0x1c8)),a1l8(0x116)));export const getProgram=l=>{const l9=a1l8,e=new Command('northflank');e[l9(0x11c)](l9(0x1b1)),e[l9(0x157)](!![]),e['version'](l9(0x1d1)+a1f[l9(0x120)](pgk[l9(0x148)]),l9(0x14b),'Print\x20the\x20current\x20version\x20of\x20the\x20Northflank\x20cli');const s=new ApiClient(l,{'throwErrorOnHttpErrorCode':![],'customUserAgent':customUserAgent,'agent':agent}),f=new CliContext(s,agent),i=new CliPortForward(l,agent),c=new CliExec(l,agent),a=new CliSsh(l,agent),D=new CliFileCopy(l,agent),Y=new CliLogs(l,agent),T=new CliMetrics(l,agent);return e[l9(0x150)](i[l9(0x17e)]),e[l9(0x150)](c[l9(0x1b9)]),e[l9(0x150)](a[l9(0x1b3)]),e['addCommand'](D[l9(0x142)]),e[l9(0x150)](D[l9(0x114)]),e[l9(0x150)](f[l9(0x1c3)]),e[l9(0x150)](f['contexts']),generateCommands(s,s[l9(0x168)],e,Y,T),e[l9(0x150)](getCommandOverview(e)),e[l9(0x164)](l9(0x125),l9(0x155)),e[l9(0x1b6)](undefined,l9(0x155)),e;};((async()=>{const ll=a1l8;try{const l=new ApiClientFileContextProvider();await checkUpdate(l);const s=getProgram(l);await s[ll(0x130)](process[ll(0x1a9)]);}catch(f){error('Error\x20occured\x20while\x20trying\x20to\x20run\x20command,\x20error:\x20'+f['message']),process[ll(0x1a9)][ll(0x13a)](i=>i==='--verbose')&&console[ll(0x144)](f),process[ll(0x11e)]=0x1;}})());function isListCommand(l){const le=a1l8,e=[[le(0x1d3),'addon',le(0x172)],[le(0x1d3),le(0x196),le(0x1a8)]];return l[le(0x13a)](s=>s===le(0x13c))||e['some'](s=>isEqual(l,s));}function generateCommands(l,e,s,f,i,c=a1i[a1l8(0x16f)],a=[]){const ls=a1l8,D=new InquirerHelper(new ApiClient(l[ls(0x178)],{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':agent}));function Y(t,J){const lf=ls;return t[lf(0x19c)]!==![]&&J===undefined;}function T(t,J){const li=ls,{opt:N,name:Z}=t,x=N[li(0x151)],g=Y(N,x),S=B=>B[li(0x146)]>0x1?'--'+B:'-'+B,o=N?.['alias'],G=o?Array[li(0x11b)](o)?'-'+o?.[li(0x1d8)](B=>S(B))[li(0x16c)](',\x20-')+',':''+S(o):'',I=g?'':li(0x1bb),P=typeof N['type']===li(0x1bd)||N['type']===li(0x1bd)?G+li(0x1b2)+Z:G+li(0x1b2)+Z+'\x20<'+Z[li(0x1cb)]()+'>',F=I+N[li(0x11c)];J['option'](P[li(0x110)](),F,x);}function b(t,J){const lc=ls;if(J[lc(0x1be)][lc(0x184)](N=>N[lc(0x107)]()==='logs'))return;isEqual(t,[lc(0x1d3),lc(0x128)])&&(J[lc(0x150)](f[lc(0x141)](lc(0x128))),J[lc(0x150)](i[lc(0x106)](lc(0x128))),J[lc(0x150)](f[lc(0x141)]('service',!![])),J[lc(0x150)](i[lc(0x106)](lc(0x128),!![]))),isEqual(t,[lc(0x1d3),lc(0x196)])&&(J[lc(0x150)](f[lc(0x141)](lc(0x196))),J[lc(0x150)](i[lc(0x106)](lc(0x196))),J['addCommand'](f[lc(0x141)](lc(0x196),!![])),J[lc(0x150)](i[lc(0x106)](lc(0x196),!![]))),isEqual(t,['get',lc(0x140)])&&(J[lc(0x150)](f[lc(0x141)]('addon')),J['addCommand'](i[lc(0x106)](lc(0x140)))),isEqual(t,[lc(0x1d3),lc(0x140),lc(0x15a)])&&J[lc(0x150)](f[lc(0x141)](lc(0x140),![],!![])),isEqual(t,[lc(0x1d3),'addon','restores'])&&J[lc(0x150)](f[lc(0x141)](lc(0x140),![],!![],!![]));}return Object[ls(0xfc)](c)[ls(0x1d6)](t=>{const la=ls,J=e[t],N=c[t],Z=a[la(0x19e)]([t]);function x(v,r){const lD=la,W=Object['getOwnPropertyNames'](v||{});W[lD(0x1d8)](u=>{return{'name':u,'opt':v[u]};})[lD(0x187)]((u,V)=>!Y(u['opt'])?!Y(V[lD(0x185)])?0x0:0x1:-0x1)['forEach'](u=>{T(u,r);});}function g(v,r){const lY=la,W=[[lY(0x193),'projects',lY(0x1d9)],[lY(0x128),lY(0x194),'svc'],[lY(0x174),lY(0x12e),lY(0x1c5)],[lY(0x140),'addons',lY(0x149)],['job',lY(0x17c)],[lY(0x19a),'plans',lY(0x119)],[lY(0x152),lY(0x1a1),lY(0x15d)],[lY(0x1db),lY(0x175),lY(0x113)],['secret',lY(0x108),'scrt'],[lY(0x13e),lY(0x158),lY(0x1a2)],['branches',lY(0x121),'brn'],['invoice','invoices',lY(0x1ab)],[lY(0x1c1),'templates',lY(0x1ce)],['repos',lY(0x1bf),'repositories',lY(0x132)],['backup-destination',lY(0x117)],[lY(0x163),lY(0x13b)]],u=W['find'](V=>V[lY(0x1af)](r));if(u!==undefined)v[lY(0x183)](u['filter'](V=>V!==r));}async function S(v){const lT=la,r={},{contextProvider:W}=l,u=Z[lT(0x1af)](lT(0x165)),V=v[lT(0x1d0)]===!![];async function h(X,j,d,w){const lb=lT;if(w||has(N[lb(0x185)]?.[lb(0x103)]??{},X)){const H=!V&&!u&&d?d():undefined,M=v[X]||H||await j();set(r,X,M);}}const R=Object[lT(0x123)](N['opt']?.[lT(0x103)]??{}),m=await l['contextProvider'][lT(0x167)]();return N['opt']?.[lT(0x19d)]&&m===lT(0x156)&&!R['some'](([X])=>X===lT(0x1d7))&&await h('teamId',D[lT(0x10c)]['bind'](D),undefined,!![]),await asyncSequential(R,async([X,j])=>{const lq=lT,d=r?.[lq(0xff)],w=r?.[lq(0x1d7)],H=r?.['templateId'];switch(X){case'teamId':return await h('teamId',D[lq(0x10c)][lq(0x18f)](D));case lq(0xff):return await h(lq(0xff),D['askForProject'](w)[lq(0x18f)](D),W[lq(0x111)][lq(0x18f)](W));case lq(0x14a):return await h('serviceId',D[lq(0x137)](d,w)['bind'](D),W[lq(0x1b5)]['bind'](W));case'addonId':return await h(lq(0x115),D['askForAddon'](d,w)['bind'](D));case lq(0x19b):return await h(lq(0x19b),D['askForJob'](d,w)[lq(0x18f)](D),W[lq(0x147)]['bind'](W));case lq(0x138):return await h(lq(0x138),D[lq(0x18d)](r[lq(0x19b)],d,![],w)[lq(0x18f)](D));case'secretId':return await h(lq(0x10d),D['askForSecret'](d,w)['bind'](D));case'domain':case lq(0x1cd):return await h(lq(0x1db),D[lq(0x173)](w)[lq(0x18f)](D));case lq(0x197):return await h(lq(0x197),D[lq(0x1b7)](w)['bind'](D));case'volumeId':return await h(lq(0x198),D[lq(0x12c)](d,w)[lq(0x18f)](D));case'subdomain':return await h(lq(0x190),D['askForSubdomain'](r['domain'],w)[lq(0x18f)](D));case'subdomainId':return await h('subdomainId',D['askForSubdomain'](r['domainId'],w)[lq(0x18f)](D));case lq(0x176):return await h(lq(0x176),D[lq(0x122)](r['domain'],r[lq(0x190)]??r[lq(0x104)],w)[lq(0x18f)](D));case'backupId':return await h(lq(0x143),D['askForAddonBackup'](d,r[lq(0x115)],w)[lq(0x18f)](D));case lq(0x16b):return await h(lq(0x16b),D[lq(0x1b8)](d,r[lq(0x14a)],r['jobId'],w)[lq(0x18f)](D));case'templateId':return await h(lq(0x16a),D[lq(0x18a)](w)[lq(0x18f)](D));case'templateRunId':return await h(lq(0x18b),D['askForTemplateRun'](H,w)[lq(0x18f)](D));case lq(0x14f):return await h(lq(0x14f),D[lq(0x15b)](w)['bind'](D));case lq(0x15e):return await h(lq(0x15e),D['askForPipeline'](d,w)[lq(0x18f)](D));case lq(0x1d5):return await h(lq(0x1d5),D[lq(0x1c6)](w)[lq(0x18f)](D));case lq(0x12f):return await h(lq(0x12f),D[lq(0x10f)](w)[lq(0x18f)](D));case lq(0x1b4):return await h('clusterId',D[lq(0x1a5)](w)[lq(0x18f)](D));default:return await h(X,D[lq(0x11d)](X,j?.[lq(0x11c)])[lq(0x18f)](D));}}),r;}async function o(v){const lt=la,r={},W=N['opt']?.[lt(0x1c0)]?a1i['paginationArgs']:{},u={...N[lt(0x185)]?.['query']??{},...W},V=Object['keys'](u)[lt(0x160)](h=>h!=='loadAll');return await asyncSequential(V,async h=>{if(v[h]!==undefined)return set(r,h,v[h]);}),r;}function G(){const lJ=la;switch(Z[0x0]){case lJ(0x1d3):return lJ(0x1b0)+(Z[0x1]||lJ(0x12d))+'s';case lJ(0x1da):return'Update\x20Northflank\x20'+(Z[0x1]||lJ(0x12d))+'\x20properties';default:return upperFirst(t)+'\x20Northflank\x20resources';}}function I(v,r){const lN=la;if(!r){const d=getCommand()[lN(0x107)](kebabCase(t))[lN(0x11c)](G());return g(d,t),d;}const W=v?.[lN(0x1d2)]?a1f['italic'](lN(0x17d)+v[lN(0x1d2)]):'',u=l[lN(0x178)]['getCurrentContext'](),V=u!==undefined&&N?.[lN(0x185)]?.[lN(0x169)]!==undefined,h=u?.['host']['replace'](lN(0x17f),''),R=V?lN(0x181)+h+'/docs/v1/api/'+N?.[lN(0x185)]?.[lN(0x169)]:'',m=v?.[lN(0x11c)]||'',X=getCommand(!![])['name'](kebabCase(t))[lN(0x11c)](m)[lN(0x12b)](lN(0x1dd),[W,R]['join']('\x0a'));g(X,t);(N[lN(0x185)]?.[lN(0x17a)]||N[lN(0x185)]?.[lN(0x1ae)])&&(X[lN(0x166)](lN(0x145),'File\x20to\x20load\x20resource\x20json\x20from'),X[lN(0x166)](lN(0x11a),lN(0x109)));x(N[lN(0x185)]?.['path'],X),x(N['opt']?.[lN(0x179)],X);const j=N[lN(0x185)]?.[lN(0x1c0)];return j&&x(a1i[lN(0x1ac)],X),x(N[lN(0x185)]?.[lN(0x195)],X),X['action'](async()=>{const lZ=lN;assertContextExisting(l);const w=X[lZ(0x1c2)]();w?.[lZ(0x154)]&&proxyEnvsSet&&warning(lZ(0x1a6));const H=w[lZ(0x1ba)]!==undefined||w[lZ(0x1aa)]!==undefined;if(w[lZ(0x10b)]===!![]&&H)throw new Error(lZ(0x1de));const M=w?.[lZ(0x1c7)],A=M===lZ(0x129),L=M==='yaml'||M===lZ(0x105),C=await S(w);D[lZ(0xfe)](C);const y=await o(w),n=Object['keys'](N[lZ(0x185)]?.[lZ(0x103)]??{})[lZ(0x1d8)](O=>O+'='+a1f[lZ(0x1c9)](C[O]))['join'](',\x20');if(n[lZ(0x146)]>0x0&&!A&&!L){const p=lZ(0x1dc)+n;console[lZ(0x144)](p);}const K=N[lZ(0x185)]?.['body']||N[lZ(0x185)]?.[lZ(0x1ae)]?await q(w,N,Z):undefined;if(!w[lZ(0x1d4)]&&Z[lZ(0x1af)]('delete')&&!await D['deleteWarningPrompt']()){warning(lZ(0x188));return;}const Q=j&&(w[lZ(0x10b)]||(w[lZ(0x1c7)]==='json'||w[lZ(0x1c7)]==='yaml')&&!H);let E=Q&&J instanceof GetApiEndpointPaginated?await J[lZ(0x1ad)]({'parameters':C,'options':y,'data':K}):await J[lZ(0x14d)]({'parameters':C,'options':{...y},'data':K});if(w?.['verbose']){const O=E[lZ(0x170)];console[lZ(0x144)](lZ(0x180)+O[lZ(0x13d)][lZ(0x1cb)]()+':'+O['url']),K!==undefined&&console['log']('VERBOSE:\x20Request\x20body\x20->\x20'+a1f[lZ(0x17b)](JSON['stringify'](K)));}if(E[lZ(0x159)]){const {details:z,id:l0,message:l1,status:l2}=E[lZ(0x159)],l3=z?lZ(0xfd)+JSON[lZ(0x191)](z):'',l4=l0?',\x20NF\x20error\x20id:\x20'+l0:'',l5=lZ(0x1a0)+l2+l4+')';throw new Error(lZ(0x12a)+l1+'\x20'+l5+l3);}let U=0x0;printCallResult(w,A,E[lZ(0x134)],L,Z,M,![],U,E[lZ(0x139)][lZ(0x11f)]);if(!w[lZ(0x19f)]&&!Q&&!H&&E[lZ(0x10a)]?.[lZ(0x14c)])while(E[lZ(0x10a)]?.['hasNextPage']){const l6=await D['askConfirm'](lZ(0x102));if(l6)process[lZ(0x131)][lZ(0x1a4)](0x0,-0x1),process[lZ(0x131)][lZ(0x171)](0x1),U+=E[lZ(0x10a)][lZ(0x199)],E=await E[lZ(0x10a)][lZ(0x13f)](),printCallResult(w,A,E[lZ(0x134)],L,Z,M,!![],U,E[lZ(0x139)][lZ(0x11f)]);else return;}}),X;}const P=has(N,la(0x185)),F=J,B=I(F,P);b(Z,B),s[la(0x150)](B);const k=omit(N,la(0x185));Object[la(0x1cf)](k)[la(0x146)]>0x0&&generateCommands(l,J,B,f,i,k,Z);});async function q(t,J,N){const lx=ls,{input:Z,file:x}=t;if(Z!==undefined)try{return JSON[lx(0x16d)](Z);}catch(g){try{return a1c[lx(0x101)](Z);}catch(S){throw new Error('Unknown\x20input\x20format.\x20Not\x20valid\x20json\x20and\x20not\x20valid\x20yaml.');}}if(x!==undefined){if(!a1s[lx(0x1ca)](x))throw new Error(lx(0x153)+x);const o=a1s[lx(0x133)](x)[lx(0x10e)]();let G;try{if(isString(o)){if(t[lx(0x118)][lx(0x182)](lx(0x192)))G=JSON[lx(0x16d)](o);else{if(t[lx(0x118)][lx(0x182)](lx(0x177))||t['file'][lx(0x182)](lx(0x105)))G=a1c[lx(0x101)](o);else throw new Error('Unknown\x20input\x20file\x20type:\x20'+t[lx(0x118)][lx(0x186)]('.')[lx(0x14e)]());}}else G=o;return G;}catch(I){throw new Error(lx(0x127)+I[lx(0x1a7)]);}}if(J?.['opt']?.[lx(0x1ae)])throw new Error(lx(0x135));return await D[lx(0x126)](J,{'cmdPath':N,'skipValidation':t[lx(0x1c4)]});}}const printCallResult=(l,e,s,f,i,c,a,D,Y)=>{const lg=a1l8;if(!l?.[lg(0x19f)]){if(e)handleJsonOutput(l?.[lg(0x1c7)],s);else{if(f)handleYamlOutput(l?.[lg(0x1c7)],s);else{if(isListCommand(i)){const T=c?.[lg(0x1bc)](lg(0x100))?c[lg(0x15c)](lg(0x100),'')[lg(0x186)](',')[lg(0x1d8)](N=>N['toLowerCase']()):undefined,b=i[i[lg(0x146)]-0x1],q=''+b+(b['endsWith']('s')?'':'s'),t=upperFirst(q),J=has(s,q)?s[q]:s;printAsTable(J,t,T,a,D);}else console[lg(0x144)](consoleFormat(s,Y));}}}};
|
|
2
|
+
const a1e8=a1V;(function(e,V){const e7=a1V,b=e();while(!![]){try{const G=-parseInt(e7(0x1ad))/0x1*(-parseInt(e7(0x1d5))/0x2)+-parseInt(e7(0x12d))/0x3*(parseInt(e7(0x1cf))/0x4)+parseInt(e7(0x139))/0x5*(parseInt(e7(0x184))/0x6)+-parseInt(e7(0x16d))/0x7*(-parseInt(e7(0x13e))/0x8)+parseInt(e7(0x11c))/0x9*(parseInt(e7(0x19f))/0xa)+-parseInt(e7(0x155))/0xb*(-parseInt(e7(0x1a2))/0xc)+parseInt(e7(0x15e))/0xd*(-parseInt(e7(0x1e4))/0xe);if(G===V)break;else b['push'](b['shift']());}catch(a){b['push'](b['shift']());}}}(a1e,0xe11e9));import{ApiClient,ApiClientFileContextProvider,GetApiEndpointPaginated}from'@northflank/js-client';import{Command}from'commander';import a1b from'fs';import a1G from'chalk';import{CliContext}from'./context/contextCommands.js';import{agent,assertContextExisting,asyncSequential,checkUpdate,customUserAgent,error,getCommand,proxyEnvsSet,warning}from'./utils.js';import*as a1a from'./defaults.js';import{InquirerHelper}from'./inquirer-helper.js';import{consoleFormat,handleJsonOutput,handleYamlOutput,printAsTable}from'./formatting/console-format-helpers.js';import{getCommandOverview}from'./formatting/command-overview.js';import{CliPortForward}from'./port-forward/index.js';import{CliExec}from'./exec/index.js';import{CliSsh}from'./ssh/index.js';import{CliLogs}from'./logs/index.js';import{CliMetrics}from'./metrics/index.js';import{CliFileCopy}from'./copy/index.js';import{isEqual,has,set,kebabCase,upperFirst,isString,omit}from'lodash-es';import a1m from'js-yaml';import{readFileSync}from'fs';function a1e(){const eK=['opts','type','Documentation:\x20','bind',',\x20-','templateRunId','tag','uploadCmd','concat','103941gCMArt','delete','buildId','askForSubdomain','path','contextProvider','resourceTagId','backupId','name','count','replace','force','getOwnPropertyNames','runs','output','.json','startsWith','166827bIuJYX','list','credential','subdomain','isPaginatedEndpoint','domain','opt','message','getCurrentJobName','setPathVars','domainId','helpOption','5iIDHkM','find','yml','subdomainPath','prj','4991912OCcZKI','utf-8','askForProject','askConfirm','northflank','cred','askForTemplateRun','\x20--','../package.json','includes','default','option','regions','teamScoped','svc','Get\x20information\x20about\x20Northflank\x20','filter','split','VERBOSE:\x20Using\x20endpoint\x20->\x20','volumeId','clusterId','pop','all','11DItLhd','jobs','template','dmn','plans','description','skipValidation','credentialId','getCurrentServiceName','2634827gpYOzt','branches','version','paginationArgs','Failed\x20to\x20validate\x20input\x20(incorrect\x20format):\x20','keys','repo','underline','=>\x20running\x20command\x20with:\x20','getNextPage','pagination','entries','projectId','backupDestinationId','call','7MAdPvj','join','isArray',',\x20NF\x20error\x20id:\x20','invoices','VERBOSE:\x20Request\x20body\x20->\x20','deleteWarningPrompt','data','downloadCmd','region','inv','backup','json','login','requiredPermissions','argv','there\x20are\x20more\x20rows,\x20load?','runId','Error\x20occured\x20while\x20trying\x20to\x20run\x20command,\x20error:\x20','repository','askForTemplate','\x0a\x09details\x20:','domains','7954626dSzBbP','aliases','quiet','nonInteractiveEndpoint','loadAll','backup-destinations','required','askForJob','existsSync','toUpperCase','italic','serviceId','brn','askForPipeline','stringify','Display\x20help\x20for\x20command','pipelineId','repositories','Manage\x20your\x20Northflank\x20resources\x20from\x20the\x20command\x20line','repos','retrievePayloadViaInteractiveCli','addon','map','moveCursor','subdomainId','invoice','askForTeam','790RkbtDi','askForSecret','backups','19277268cJCgyG','templates','API\x20request\x20failed\x0a\x09Message:\x20','docsTagsPath','getCurrentProjectName','logSinkId','askForDomain','templateId','host','getCurrentContext','getMetricsCommand','1511723zqelLS','help\x20[command]','sort','File\x20does\x20not\x20exist:\x20','forEach','action','trim','clearLine','pln','length','yaml','service','(HTTP\x20status\x20code:\x20','askForAddonBackup','logs','getLogsCommand','addonId','Unknown\x20input\x20format.\x20Not\x20valid\x20json\x20and\x20not\x20valid\x20yaml.','job','askForBackupDestination','url','.yaml','jobId','addons','some','addCommand','exitCode','sshCmd','secretId','Expecting\x20resource\x20input\x20with\x20\x27--input\x27\x20or\x20\x27--file\x27\x20argument','log','portFwdCmd','File\x20to\x20load\x20resource\x20json\x20from','noDefaults','116MLpYbp','org','secrets','rawResponse','askForAddon','body','2HLUTLg','Update\x20Northflank\x20','OPTIONAL:\x20','--verbose','statusText','after','askForCredentials','scrt','get','green','custom-columns=','file','hasNextPage','endsWith','parse','238OZBCic','query','askForSubdomainPath','resource','JSON-formatted\x20resource\x20definition,\x20takes\x20precedence\x20over\x20\x22--file\x22','project','\x20Northflank\x20resources','teamId','volumes','api.'];a1e=function(){return eK;};return a1e();}import{fileURLToPath}from'url';import{dirname,join}from'path';const __filename=fileURLToPath(import.meta['url']),__dirname=dirname(__filename),pgk=JSON[a1e8(0x1e3)](readFileSync(join(__dirname,a1e8(0x146)),a1e8(0x13f)));export const getProgram=e=>{const e9=a1e8,V=new Command(e9(0x142));V[e9(0x15a)](e9(0x196)),V['enablePositionalOptions'](!![]),V[e9(0x160)]('Northflank\x20cli\x20version:\x20'+a1G[e9(0x165)](pgk[e9(0x160)]),'-v,\x20--version','Print\x20the\x20current\x20version\x20of\x20the\x20Northflank\x20cli');const b=new ApiClient(e,{'throwErrorOnHttpErrorCode':![],'customUserAgent':customUserAgent,'agent':agent}),G=new CliContext(b,agent),a=new CliPortForward(e,agent),m=new CliExec(e,agent),O=new CliSsh(e,agent),E=new CliFileCopy(e,agent),W=new CliLogs(e,agent),M=new CliMetrics(e,agent);return V[e9(0x1c6)](a[e9(0x1cc)]),V['addCommand'](m['execCmd']),V[e9(0x1c6)](O[e9(0x1c8)]),V[e9(0x1c6)](E[e9(0x175)]),V[e9(0x1c6)](E[e9(0x11a)]),V[e9(0x1c6)](G[e9(0x17a)]),V['addCommand'](G['contexts']),generateCommands(b,b['endpoints'],V,W,M),V[e9(0x1c6)](getCommandOverview(V)),V['helpCommand'](e9(0x1ae),'Display\x20help\x20for\x20command'),V[e9(0x138)](undefined,e9(0x193)),V;};((async()=>{const ee=a1e8;try{const V=new ApiClientFileContextProvider();await checkUpdate(V);const b=getProgram(V);await b['parseAsync'](process[ee(0x17c)]);}catch(G){error(ee(0x17f)+G['message']),process[ee(0x17c)][ee(0x13a)](a=>a===ee(0x1d8))&&console[ee(0x1cb)](G),process[ee(0x1c7)]=0x1;}})());function isListCommand(e){const eV=a1e8,V=[['get',eV(0x199),eV(0x1a1)],[eV(0x1dd),eV(0x1bf),eV(0x129)]];return e[eV(0x13a)](b=>b===eV(0x12e))||V[eV(0x1c5)](b=>isEqual(e,b));}function a1V(e,V){const b=a1e();return a1V=function(G,a){G=G-0x114;let m=b[G];return m;},a1V(e,V);}function generateCommands(e,V,b,G,a,m=a1a['defaults'],O=[]){const eb=a1e8,E=new InquirerHelper(new ApiClient(e[eb(0x121)],{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':agent}));function W(r,U){const eG=eb;return r[eG(0x18a)]!==![]&&U===undefined;}function M(r,U){const ea=eb,{opt:S,name:z}=r,x=S[ea(0x148)],o=W(S,x),K=j=>j[ea(0x1b6)]>0x1?'--'+j:'-'+j,N=S?.['alias'],J=N?Array[ea(0x16f)](N)?'-'+N?.['map'](j=>K(j))[ea(0x16e)](ea(0x117))+',':''+K(N):'',f=o?'':ea(0x1d7),D=typeof S[ea(0x114)]==='boolean'||S[ea(0x114)]==='boolean'?J+ea(0x145)+z:J+'\x20--'+z+'\x20<'+z[ea(0x18d)]()+'>',Y=f+S[ea(0x15a)];U[ea(0x149)](D[ea(0x1b3)](),Y,x);}function Q(r,U){const em=eb;if(U['commands']['some'](S=>S[em(0x124)]()===em(0x1bb)))return;isEqual(r,[em(0x1dd),'service'])&&(U[em(0x1c6)](G[em(0x1bc)](em(0x1b8))),U[em(0x1c6)](a[em(0x1ac)](em(0x1b8))),U['addCommand'](G[em(0x1bc)](em(0x1b8),!![])),U[em(0x1c6)](a[em(0x1ac)](em(0x1b8),!![]))),isEqual(r,['get',em(0x1bf)])&&(U[em(0x1c6)](G['getLogsCommand'](em(0x1bf))),U['addCommand'](a[em(0x1ac)](em(0x1bf))),U['addCommand'](G[em(0x1bc)]('job',!![])),U['addCommand'](a[em(0x1ac)]('job',!![]))),isEqual(r,['get','addon'])&&(U['addCommand'](G[em(0x1bc)](em(0x199))),U['addCommand'](a[em(0x1ac)]('addon'))),isEqual(r,['get',em(0x199),em(0x178)])&&U[em(0x1c6)](G['getLogsCommand'](em(0x199),![],!![])),isEqual(r,['get','addon','restores'])&&U[em(0x1c6)](G[em(0x1bc)](em(0x199),![],!![],!![]));}return Object[eb(0x128)](m)[eb(0x1b1)](r=>{const eO=eb,U=V[r],S=m[r],z=O[eO(0x11b)]([r]);function x(B,I){const eE=eO,R=Object[eE(0x128)](B||{});R[eE(0x19a)](c=>{return{'name':c,'opt':B[c]};})[eE(0x1af)]((c,y)=>!W(c[eE(0x133)])?!W(y[eE(0x133)])?0x0:0x1:-0x1)['forEach'](c=>{M(c,I);});}function o(B,I){const eW=eO,R=[[eW(0x1e9),'projects',eW(0x13d)],[eW(0x1b8),'services',eW(0x14c)],['credentials',eW(0x12f),eW(0x143)],['addon',eW(0x1c4),'adn'],['job',eW(0x156)],['plan',eW(0x159),eW(0x1b5)],[eW(0x176),eW(0x14a),'rgn'],[eW(0x132),eW(0x183),eW(0x158)],['secret',eW(0x1d1),eW(0x1dc)],[eW(0x1ec),'volume','vol'],[eW(0x15f),'branch',eW(0x190)],[eW(0x19d),eW(0x171),eW(0x177)],[eW(0x157),eW(0x1a3),'tpl'],[eW(0x197),eW(0x180),eW(0x195),eW(0x164)],['backup-destination',eW(0x189)],[eW(0x119),'tags']],c=R['find'](y=>y[eW(0x147)](I));if(c!==undefined)B[eW(0x185)](c[eW(0x14e)](y=>y!==I));}async function K(B){const eM=eO,I={},{contextProvider:R}=e,c=z[eM(0x147)](eM(0x11d)),y=B[eM(0x1ce)]===!![];async function X(T,g,p,C){const eQ=eM;if(C||has(S[eQ(0x133)]?.['path']??{},T)){const u=!y&&!c&&p?p():undefined,L=B[T]||u||await g();set(I,T,L);}}const Z=Object[eM(0x169)](S['opt']?.['path']??{}),l=await e[eM(0x121)]['getTokenScope']();return S['opt']?.[eM(0x14b)]&&l===eM(0x1d0)&&!Z[eM(0x1c5)](([T])=>T===eM(0x1eb))&&await X(eM(0x1eb),E[eM(0x19e)][eM(0x116)](E),undefined,!![]),await asyncSequential(Z,async([T,g])=>{const ek=eM,p=I?.[ek(0x16a)],C=I?.[ek(0x1eb)],u=I?.['templateId'];switch(T){case ek(0x1eb):return await X(ek(0x1eb),E[ek(0x19e)][ek(0x116)](E));case'projectId':return await X(ek(0x16a),E[ek(0x140)](C)[ek(0x116)](E),R[ek(0x1a6)]['bind'](R));case ek(0x18f):return await X(ek(0x18f),E['askForService'](p,C)['bind'](E),R[ek(0x15d)][ek(0x116)](R));case'addonId':return await X(ek(0x1bd),E[ek(0x1d3)](p,C)['bind'](E));case ek(0x1c3):return await X(ek(0x1c3),E[ek(0x18b)](p,C)[ek(0x116)](E),R[ek(0x135)][ek(0x116)](R));case ek(0x17e):return await X(ek(0x17e),E['askForJobRun'](I['jobId'],p,![],C)[ek(0x116)](E));case ek(0x1c9):return await X(ek(0x1c9),E[ek(0x1a0)](p,C)[ek(0x116)](E));case ek(0x132):case ek(0x137):return await X(ek(0x132),E[ek(0x1a8)](C)[ek(0x116)](E));case ek(0x15c):return await X(ek(0x15c),E[ek(0x1db)](C)['bind'](E));case ek(0x151):return await X('volumeId',E['askForVolume'](p,C)['bind'](E));case ek(0x130):return await X(ek(0x130),E['askForSubdomain'](I[ek(0x132)],C)[ek(0x116)](E));case ek(0x19c):return await X(ek(0x19c),E[ek(0x11f)](I['domainId'],C)[ek(0x116)](E));case ek(0x13c):return await X(ek(0x13c),E[ek(0x1e6)](I[ek(0x132)],I[ek(0x130)]??I['subdomainId'],C)[ek(0x116)](E));case ek(0x123):return await X(ek(0x123),E[ek(0x1ba)](p,I[ek(0x1bd)],C)[ek(0x116)](E));case ek(0x11e):return await X('buildId',E['askForBuild'](p,I['serviceId'],I[ek(0x1c3)],C)[ek(0x116)](E));case ek(0x1a9):return await X(ek(0x1a9),E[ek(0x181)](C)['bind'](E));case ek(0x118):return await X(ek(0x118),E[ek(0x144)](u,C)[ek(0x116)](E));case'logSinkId':return await X(ek(0x1a7),E['askForLogSink'](C)[ek(0x116)](E));case ek(0x194):return await X('pipelineId',E[ek(0x191)](p,C)[ek(0x116)](E));case ek(0x122):return await X(ek(0x122),E['askForTag'](C)['bind'](E));case ek(0x16b):return await X('backupDestinationId',E[ek(0x1c0)](C)[ek(0x116)](E));case ek(0x152):return await X(ek(0x152),E['askForClusterId'](C)[ek(0x116)](E));default:return await X(T,E['askGeneric'](T,g?.[ek(0x15a)])['bind'](E));}}),I;}async function N(B){const er=eO,I={},R=S[er(0x133)]?.[er(0x131)]?a1a['paginationArgs']:{},c={...S[er(0x133)]?.[er(0x1e5)]??{},...R},y=Object[er(0x163)](c)[er(0x14e)](X=>X!=='loadAll');return await asyncSequential(y,async X=>{if(B[X]!==undefined)return set(I,X,B[X]);}),I;}function J(){const eU=eO;switch(z[0x0]){case eU(0x1dd):return eU(0x14d)+(z[0x1]||eU(0x1e7))+'s';case'update':return eU(0x1d6)+(z[0x1]||'resource')+'\x20properties';default:return upperFirst(r)+eU(0x1ea);}}function f(B,I){const eS=eO;if(!I){const p=getCommand()[eS(0x124)](kebabCase(r))[eS(0x15a)](J());return o(p,r),p;}const R=B?.['requiredPermissions']?a1G[eS(0x18e)]('\x0a>\x20Token\x20permissions\x20required:\x20'+B[eS(0x17b)]):'',c=e['contextProvider'][eS(0x1ab)](),y=c!==undefined&&S?.['opt']?.['docsTagsPath']!==undefined,X=c?.[eS(0x1aa)][eS(0x126)](eS(0x1ed),''),Z=y?eS(0x115)+X+'/docs/v1/api/'+S?.[eS(0x133)]?.[eS(0x1a5)]:'',l=B?.[eS(0x15a)]||'',T=getCommand(!![])[eS(0x124)](kebabCase(r))[eS(0x15a)](l)['addHelpText'](eS(0x1da),[R,Z]['join']('\x0a'));o(T,r);(S[eS(0x133)]?.[eS(0x1d4)]||S[eS(0x133)]?.[eS(0x187)])&&(T[eS(0x149)]('-f,\x20--file\x20<file-path>',eS(0x1cd)),T[eS(0x149)]('-i,\x20--input\x20<resource-def>',eS(0x1e8)));x(S['opt']?.['path'],T),x(S[eS(0x133)]?.[eS(0x1e5)],T);const g=S[eS(0x133)]?.['isPaginatedEndpoint'];return g&&x(a1a[eS(0x161)],T),x(S['opt']?.['base'],T),T[eS(0x1b2)](async()=>{const ez=eS;assertContextExisting(e);const C=T[ez(0x1ee)]();C?.['verbose']&&proxyEnvsSet&&warning('VERBOSE:\x20HTTP_PROXY\x20or\x20HTTPS_PROXY\x20environment\x20variable\x20set:\x20tunnelling\x20traffic\x20through\x20HTTP\x20proxy.');const u=C['page']!==undefined||C['cursor']!==undefined;if(C[ez(0x188)]===!![]&&u)throw new Error('Options\x20\x27loadAll\x27\x20can\x20not\x20be\x20combined\x20with\x20\x27page\x27\x20or\x20\x27cursor\x27');const L=C?.['output'],q=L===ez(0x179),s=L==='yaml'||L===ez(0x13b),F=await K(C);E[ez(0x136)](F);const H=await N(C),i=Object[ez(0x163)](S['opt']?.[ez(0x120)]??{})[ez(0x19a)](h=>h+'='+a1G[ez(0x1de)](F[h]))[ez(0x16e)](',\x20');if(i[ez(0x1b6)]>0x0&&!q&&!s){const h=ez(0x166)+i;console['log'](h);}const P=S[ez(0x133)]?.['body']||S[ez(0x133)]?.[ez(0x187)]?await k(C,S,z):undefined;if(!C[ez(0x127)]&&z[ez(0x147)](ez(0x11d))&&!await E[ez(0x173)]()){warning('Resource\x20was\x20not\x20deleted.');return;}const v=g&&(C['loadAll']||(C[ez(0x12a)]===ez(0x179)||C['output']===ez(0x1b7))&&!u);let t=v&&U instanceof GetApiEndpointPaginated?await U[ez(0x154)]({'parameters':F,'options':H,'data':P}):await U[ez(0x16c)]({'parameters':F,'options':{...H},'data':P});if(C?.['verbose']){const w=t['request'];console[ez(0x1cb)](ez(0x150)+w['method']['toUpperCase']()+':'+w[ez(0x1c1)]),P!==undefined&&console[ez(0x1cb)](ez(0x172)+a1G[ez(0x18e)](JSON['stringify'](P)));}if(t['error']){const {details:n,id:e0,message:e1,status:e2}=t['error'],e3=n?ez(0x182)+JSON[ez(0x192)](n):'',e4=e0?ez(0x170)+e0:'',e5=ez(0x1b9)+e2+e4+')';throw new Error(ez(0x1a4)+e1+'\x20'+e5+e3);}let A=0x0;printCallResult(C,q,t[ez(0x174)],s,z,L,![],A,t[ez(0x1d2)]['statusText']);if(!C['quiet']&&!v&&!u&&t['pagination']?.[ez(0x1e1)])while(t[ez(0x168)]?.[ez(0x1e1)]){const e6=await E[ez(0x141)](ez(0x17d));if(e6)process['stdout'][ez(0x19b)](0x0,-0x1),process['stdout'][ez(0x1b4)](0x1),A+=t['pagination'][ez(0x125)],t=await t[ez(0x168)][ez(0x167)](),printCallResult(C,q,t[ez(0x174)],s,z,L,!![],A,t[ez(0x1d2)][ez(0x1d9)]);else return;}}),T;}const D=has(S,eO(0x133)),Y=U,j=f(Y,D);Q(z,j),b['addCommand'](j);const d=omit(S,eO(0x133));Object[eO(0x163)](d)[eO(0x1b6)]>0x0&&generateCommands(e,U,j,G,a,d,z);});async function k(r,U,S){const ex=eb,{input:z,file:x}=r;if(z!==undefined)try{return JSON['parse'](z);}catch(o){try{return a1m['load'](z);}catch(K){throw new Error(ex(0x1be));}}if(x!==undefined){if(!a1b[ex(0x18c)](x))throw new Error(ex(0x1b0)+x);const N=a1b['readFileSync'](x)['toString']();let J;try{if(isString(N)){if(r[ex(0x1e0)][ex(0x1e2)](ex(0x12b)))J=JSON[ex(0x1e3)](N);else{if(r[ex(0x1e0)][ex(0x1e2)](ex(0x1c2))||r[ex(0x1e0)]['endsWith'](ex(0x13b)))J=a1m['load'](N);else throw new Error('Unknown\x20input\x20file\x20type:\x20'+r[ex(0x1e0)][ex(0x14f)]('.')[ex(0x153)]());}}else J=N;return J;}catch(f){throw new Error(ex(0x162)+f[ex(0x134)]);}}if(U?.['opt']?.['nonInteractiveEndpoint'])throw new Error(ex(0x1ca));return await E[ex(0x198)](U,{'cmdPath':S,'skipValidation':r[ex(0x15b)]});}}const printCallResult=(e,V,b,G,a,m,O,E,W)=>{const eo=a1e8;if(!e?.[eo(0x186)]){if(V)handleJsonOutput(e?.['output'],b);else{if(G)handleYamlOutput(e?.[eo(0x12a)],b);else{if(isListCommand(a)){const M=m?.[eo(0x12c)](eo(0x1df))?m['replace'](eo(0x1df),'')[eo(0x14f)](',')['map'](S=>S['toLowerCase']()):undefined,Q=a[a[eo(0x1b6)]-0x1],k=''+Q+(Q[eo(0x1e2)]('s')?'':'s'),r=upperFirst(k),U=has(b,k)?b[k]:b;printAsTable(U,r,M,O,E);}else console['log'](consoleFormat(b,W));}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a2F=a2e;(function(l,e){const P=a2e,s=l();while(!![]){try{const f=parseInt(P(0x16f))/0x1+parseInt(P(0x18d))/0x2+-parseInt(P(0x132))/0x3+parseInt(P(0x181))/0x4+parseInt(P(0x152))/0x5*(parseInt(P(0x11f))/0x6)+parseInt(P(0x11d))/0x7*(-parseInt(P(0x17a))/0x8)+-parseInt(P(0x12a))/0x9;if(f===e)break;else s['push'](s['shift']());}catch(i){s['push'](s['shift']());}}}(a2l,0x66d83));function a2l(){const Q=['Change\x20the\x20default\x20service\x20in\x20the\x20current\x20local\x20context','--do-not-open-browser','replace','Change\x20the\x20default\x20job\x20in\x20the\x20current\x20local\x20context','useContext','tokenPrompt','remove','log','\x27\x20successfully\x20updated.','set-token','addCommand','agent','1340915TqpVKb','confirm','autologin-','startLogin','Change\x20the\x20default\x20project\x20in\x20the\x20current\x20local\x20context','Token\x20for\x20this\x20context.\x20When\x20set,\x20browser\x20login\x20is\x20not\x20used','alias','Use\x20project\x20with\x20id:','Token\x20for\x20current\x20context\x20\x27','removeContext','stdout','loadContextWrapper','Project\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','override','Name\x20for\x20login\x20context','GET','contextAvailable','apiTokenLogin','finally','Shows\x20detailed\x20information\x20about\x20current\x20context','project','loginPrompt','-t,\x20--token\x20[TOKEN]','No\x20context\x20available.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','close','Connect\x20the\x20CLI\x20to\x20your\x20Northflank\x20account.','\x0a\x20\x20\x20\x20\x20\x20\x20\x20','getInfo','ctx','547773mjvkvx','delete','\x0a\x20\x20Default\x20Project:\x09','Override\x20existing\x20contexts\x20(this\x20will\x20remove\x20project\x20and\x20service\x20context)','--override','askForJob','getCurrentToken','valueOf','Changed\x20current\x20context\x20to\x20','updateToken','askForService','61512qLboTx','verifyToken','apiClient','then','--all','host\x20url\x20for\x20this\x20context','-n,\x20--name\x20[NAME]','3145128dadjBD','length','Display\x20full\x20URL\x20to\x20allow\x20opening\x20the\x20link\x20manually','fullUrl','addContext','.\x20Using\x20fallback.','--token-login','askForProject','\x20(current)','Switch\x20between\x20your\x20local\x20contexts','\x0a\x20\x20Host:\x09\x09\x09','action','957104LTNYpl','Choose\x20the\x20context\x20to\x20','contextProvider','current','askForContext','test','getCurrentName','getCurrentBaseUrl','option','useServiceId','browser-opened','List\x20all\x20available\x20contexts','Failed\x20to\x20login\x20with\x20the\x20provided\x20token,\x20make\x20sure\x20to\x20use\x20a\x20valid\x20token\x20and\x20host.','description','\x20(api\x20host:\x20','Retrieve\x20and\x20update\x20local\x20context\x20settings.','Use\x20browser\x20login\x20but\x20only\x20print\x20URL\x20which\x20can\x20be\x20used\x20to\x20login','Contexts','Shows\x20full\x20context\x20information\x20(including\x20tokens)','\x0a\x20\x20Default\x20Service:\x09','defaultBaseUrl','203QVxEsu','show','6KXrRLJ','--host\x20[HOST]','host','map','timeout','use','getCurrentContext','tokenScope','getProjectName','context','Service\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','10836711fzaDsn','-i,\x20--id\x20[ID]','message','sessionToken=********','Local\x20context\x20name\x20to\x20remove.','clearLine',',\x20added\x20context\x20with\x20name\x20','name','697437vSkseN','all','contexts','browser\x20login','prompt','browserLogin','list','service','Remove\x20a\x20context','use\x20from\x20now\x20on',':\x20\x0a\x20\x20Name:\x09\x09\x09','\x27\x20successfully\x20removed.','Use\x20job\x20with\x20id:','No\x20context\x20available.\x20Please\x20use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','token','tokenInternalId','getCurrentProjectName','login','Failed\x20to\x20login\x20with\x20the\x20provided\x20token.\x20Token\x20was\x20not\x20changed','search-list'];a2l=function(){return Q;};return a2l();}import{ProxyAgent}from'proxy-agent';import a2s from'chalk';import{error,getCommand,retry,success,warning,decodeJwtPayload}from'../utils.js';import{InquirerHelper}from'../inquirer-helper.js';import{printAsTable}from'../formatting/console-format-helpers.js';function a2e(l,e){const s=a2l();return a2e=function(f,i){f=f-0x10b;let c=s[f];return c;},a2e(l,e);}import{NorthflankApiBrowserLogin}from'../login/browser-login.js';import a2f from'node-fetch';import{set}from'lodash-es';import a2i from'inquirer';export class CliContext{['agent'];[a2F(0x11c)];[a2F(0x17c)];[a2F(0x134)];[a2F(0x143)];constructor(l,e=undefined,s='https://api.northflank.com'){const B=a2F;this[B(0x151)]=e,this[B(0x11c)]=s,this[B(0x17c)]=l;const f=new InquirerHelper(l);this[B(0x143)]=getCommand()['name'](B(0x143))['description'](B(0x16b))['option'](B(0x187),'Use\x20manual\x20login\x20with\x20API\x20token',![])[B(0x110)](B(0x147),B(0x118),![])['option']('-n,\x20--name\x20[NAME]',B(0x160))[B(0x110)](B(0x168),B(0x157))[B(0x110)](B(0x120),B(0x17f),this[B(0x11c)])[B(0x110)](B(0x173),B(0x172),![])[B(0x18c)](async J=>{const k=B;set(J,k(0x121),this['sanitiseHostname'](J[k(0x121)]));const N=J['tokenLogin']||J[k(0x140)]!==undefined,{name:Z,host:x,token:g,override:S}=N?await this[k(0x163)](J,f):await this[k(0x137)](J,f);try{await this[k(0x17c)]['contextProvider'][k(0x185)]({'name':Z,'host':x,'token':g},S);}catch(o){error(o[k(0x12c)]);return;}if(!await this['verifyToken']())error(k(0x114)),await this['apiClient'][k(0x18f)][k(0x15b)](Z);else{const G=N?'token\x20login':k(0x135),I='\x0aSuccessfully\x20logged\x20in\x20using\x20'+G+k(0x130)+a2s['italic'](Z)+k(0x116)+x+')';success(I);}}),this['contexts']=getCommand()['name'](B(0x128))[B(0x115)](B(0x117))[B(0x158)](B(0x134))[B(0x158)](B(0x16e));const i=getCommand()[B(0x131)](B(0x138))['name']('ls')[B(0x115)](B(0x113))[B(0x110)](B(0x17e),B(0x11a))['action'](async J=>{const v=B;console[v(0x14d)](l[v(0x18f)]['getInfo']());const N=l[v(0x18f)][v(0x15d)]();if(J[v(0x133)]===!![]){console['dir'](N);return;}const Z=N[v(0x10b)],x=N[v(0x134)]['sort']((g,S)=>g['name']===Z?-0x1:S[v(0x131)]===Z?0x1:0x0)[v(0x122)](g=>{const r=v,S=Z===g[r(0x131)]?r(0x189):'';return{'Name':''+g[r(0x131)]+S,'Host':g[r(0x121)],'Token\x20scope':g[r(0x126)],'Default\x20Project':g[r(0x166)]||'-','Default\x20Service':g[r(0x139)]||'-'};});printAsTable(x,v(0x119));}),c=getCommand()[B(0x131)](B(0x11e))[B(0x115)](B(0x165))[B(0x18c)](async()=>{const W=B;console[W(0x14d)](l['contextProvider'][W(0x16d)]());const J=l[W(0x18f)][W(0x125)]();if(J===undefined){console[W(0x14d)]('No\x20current\x20context\x20set.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20one\x20or\x20\x27northflank\x20context\x20use\x27\x20to\x20select\x20an\x20existing\x20one.');return;}const N=decodeJwtPayload(J[W(0x140)]),Z=J['host'];console['log'](a2s['bold']('Current\x20token\x20info')+W(0x13c)+J[W(0x131)]+W(0x18b)+Z+'\x0a\x20\x20Token\x20Scope:\x09\x09'+J['tokenScope']+W(0x171)+(J[W(0x166)]||'-')+W(0x11b)+(J['service']||'-')+'\x0a\x20\x20Token\x20ID:\x09\x09'+(N?.[W(0x141)]||'-')+'\x0a\x20\x20Token\x20Role\x20ID:\x09'+(N?.['roleInternalId']||'-')+W(0x16c));}),a=getCommand();a[B(0x131)]('use')[B(0x115)](B(0x18a))[B(0x110)](B(0x180),'Change\x20current\x20context\x20to\x20context\x20identified\x20by\x20this\x20name')[B(0x18c)](async J=>{const u=B,N=J?.[u(0x131)]||await this[u(0x10c)](u(0x124));this[u(0x17c)][u(0x18f)][u(0x14a)](N),success(u(0x177)+N);});const D=B(0x12b),Y=getCommand()[B(0x131)](B(0x166))['description'](B(0x156))[B(0x110)](D,B(0x15e))[B(0x18c)](async J=>{const V=B,N=J?.['id']||await f[V(0x188)]()();this['apiClient'][V(0x18f)]['useProjectId'](N),console[V(0x14d)](V(0x159),N);}),T=getCommand()['name'](B(0x139))[B(0x115)](B(0x146))['option'](D,B(0x129))[B(0x18c)](async J=>{const h=B,N=J?.['id']||await f[h(0x179)](this['getProjectName']())();console[h(0x14d)]('Use\x20service\x20with\x20id:',N),this['apiClient'][h(0x18f)][h(0x111)](N);}),b=getCommand()[B(0x131)]('job')['description'](B(0x149))[B(0x110)](D,'Job\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context')[B(0x18c)](async J=>{const R=B,N=J?.['id']||await f[R(0x174)](this[R(0x127)]())();console['log'](R(0x13e),N),await this[R(0x17c)]['contextProvider']['useJobId'](N);});a['addCommand'](Y),a['addCommand'](b),a[B(0x150)](T);const q=getCommand()[B(0x131)]('remove')[B(0x158)](B(0x170))[B(0x158)]('rm')[B(0x115)](B(0x13a))[B(0x110)](D,B(0x12e))['action'](async J=>{const m=B,N=J?.['id']||await this[m(0x10c)](m(0x14c)),Z=this['apiClient']['contextProvider'][m(0x125)]()?.[m(0x131)];this[m(0x17c)][m(0x18f)]['removeContext'](N),success('Local\x20context\x20\x27'+N+m(0x13d));if(!this[m(0x162)]()){warning(m(0x169));return;}if(Z===N){const x=J?.[m(0x131)]||await this[m(0x10c)](m(0x13b));this[m(0x17c)][m(0x18f)][m(0x14a)](x),success('Changed\x20current\x20context\x20to\x20'+x);}}),t=getCommand()[B(0x131)]('update-token')[B(0x158)](B(0x14f))[B(0x115)]('Update\x20token\x20for\x20current\x20context')[B(0x110)](B(0x168),'Token\x20for\x20this\x20context')[B(0x18c)](async J=>{const X=B,{contextProvider:N}=this[X(0x17c)],Z=J?.[X(0x140)]||await f[X(0x14b)](),x=N['getCurrentToken']();N[X(0x178)](Z);if(await this[X(0x17b)]())success(X(0x15a)+N[X(0x10e)]()+X(0x14e));else{if(x)N['updateToken'](x);error(X(0x144));}});this[B(0x134)][B(0x150)](i),this[B(0x134)][B(0x150)](c),this[B(0x134)]['addCommand'](a),this['contexts'][B(0x150)](q),this[B(0x134)][B(0x150)](t);}async[a2F(0x137)](l,e){const j=a2F,s=!l['doNotOpenBrowser'],f=l[j(0x121)]??this['defaultBaseUrl'],i=new NorthflankApiBrowserLogin(f,s,this[j(0x151)]);let c;i['on'](j(0x112),({url:T})=>{const d=j;if(s){const b=T[d(0x148)](/sessionToken=.*/,d(0x12d));console[d(0x14d)]('Follow\x20the\x20steps\x20displayed\x20on\x20the\x20page\x20opened\x20in\x20the\x20browser\x20(URL\x20opened:\x20'+b+')'),c=a2i['prompt']([{'type':d(0x153),'name':d(0x184),'message':d(0x183),'default':![]}]),c[d(0x17d)](q=>{const w=d;process[w(0x15c)]['moveCursor'](0x0,-0x1),process['stdout'][w(0x12f)](0x1),q[w(0x184)]&&console['log']('Open\x20this\x20URL\x20in\x20your\x20browser\x20and\x20follow\x20the\x20steps:\x0a\x09'+T+'\x20');});}else console[d(0x14d)]('Open\x20this\x20URL\x20in\x20your\x20browser\x20and\x20follow\x20the\x20steps:\x0a\x09'+T+'\x20');});const {token:a,contextName:D}=await i[j(0x155)]()['catch'](async T=>{const H=j;error('Error\x20occured\x20during\x20browser\x20login:\x20'+T[H(0x12c)]+H(0x186));const b=await this[H(0x163)](l,e);return{'token':b[H(0x140)],'contextName':b[H(0x131)]};})[j(0x164)](()=>{const M=j;if(c)c['ui'][M(0x16a)]();}),Y=l[j(0x131)]??D??j(0x154)+new Date()[j(0x176)]();return{'name':Y,'token':a,'host':f,'override':l[j(0x15f)]??![]};}['sanitiseHostname']=l=>{const A=a2F;let e=l;return!/^https?:\/\//i[A(0x10d)](e)&&(e='https://'+e),e=e[A(0x148)](/\/+$/,''),e;};async['apiTokenLogin'](l,e){const L=a2F,s=this['apiClient']['contextProvider'][L(0x15d)]()[L(0x134)],{name:f,token:i,host:c,override:a}=await e[L(0x167)](l,s);return{'name':f,'token':i,'host':c,'override':a};}[a2F(0x127)](){const C=a2F,l=this[C(0x17c)]['contextProvider'][C(0x142)]();if(l===undefined)throw new Error('No\x20project\x20in\x20current\x20context.\x20Please\x20set\x20project\x20before\x20setting\x20a\x20project-scoped\x20resource');return l;}async[a2F(0x10c)](l){const y=a2F;if(!this[y(0x162)]())throw new Error(y(0x13f));const e=this[y(0x17c)]['contextProvider']['loadContextWrapper']()['contexts'][y(0x122)](f=>f[y(0x131)]),s=e[y(0x182)]>0x4?y(0x145):y(0x138);return(await a2i[y(0x136)]([{'type':s,'name':y(0x131),'message':y(0x18e)+l+':','choices':e}]))['name'];}['contextAvailable'](){const n=a2F;return this[n(0x17c)][n(0x18f)][n(0x15d)]()[n(0x134)][n(0x182)]>0x0;}async[a2F(0x17b)](){const K=a2F;try{const l=this[K(0x17c)]['contextProvider'][K(0x10f)](),s=this[K(0x17c)][K(0x18f)][K(0x175)](),f=l+'/v1/login',i={'Authorization':'Bearer\x20'+s},c=new ProxyAgent(),a=await retry(0x3)(async()=>a2f(f,{'method':K(0x161),'signal':AbortSignal[K(0x123)](0xbb8),'headers':i,'agent':c}));if(a['ok'])return!![];return![];}catch(D){return![];}}}
|
|
1
|
+
function a2V(e,V){const b=a2e();return a2V=function(G,a){G=G-0xad;let m=b[G];return m;},a2V(e,V);}const a2Y=a2V;function a2e(){const v=['test','useContext','updateToken','useJobId','Token\x20for\x20current\x20context\x20\x27','3255PBblde','bold','confirm','sessionToken=********','tokenLogin','Retrieve\x20and\x20update\x20local\x20context\x20settings.','catch','Changed\x20current\x20context\x20to\x20','Name\x20for\x20login\x20context','host\x20url\x20for\x20this\x20context','No\x20context\x20available.\x20Use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.','Shows\x20detailed\x20information\x20about\x20current\x20context','apiTokenLogin','getCurrentToken','3198816oTgEMU','context',',\x20added\x20context\x20with\x20name\x20','alias','getCurrentName','\x20(api\x20host:\x20','useProjectId','Change\x20the\x20default\x20project\x20in\x20the\x20current\x20local\x20context','Use\x20job\x20with\x20id:','remove','Connect\x20the\x20CLI\x20to\x20your\x20Northflank\x20account.','https://','length','3278100sjanzq','https://api.northflank.com','close','Token\x20for\x20this\x20context','Local\x20context\x20\x27','List\x20all\x20available\x20contexts','verifyToken','service','startLogin','token','map','tokenScope','prompt','\x27\x20successfully\x20updated.','Override\x20existing\x20contexts\x20(this\x20will\x20remove\x20project\x20and\x20service\x20context)','No\x20project\x20in\x20current\x20context.\x20Please\x20set\x20project\x20before\x20setting\x20a\x20project-scoped\x20resource',':\x20\x0a\x20\x20Name:\x09\x09\x09','Update\x20token\x20for\x20current\x20context','use','662IKIpsR','--do-not-open-browser','list','set-token','Display\x20full\x20URL\x20to\x20allow\x20opening\x20the\x20link\x20manually','addContext','getInfo','Service\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context','ctx','apiClient','contextAvailable','\x0a\x20\x20\x20\x20\x20\x20\x20\x20','Choose\x20the\x20context\x20to\x20','--all','browser-opened','update-token','Failed\x20to\x20login\x20with\x20the\x20provided\x20token.\x20Token\x20was\x20not\x20changed','option','-i,\x20--id\x20[ID]','Current\x20token\x20info','getCurrentProjectName','contexts','Bearer\x20','Change\x20the\x20default\x20job\x20in\x20the\x20current\x20local\x20context','fullUrl','message','browserLogin','--override','Open\x20this\x20URL\x20in\x20your\x20browser\x20and\x20follow\x20the\x20steps:\x0a\x09','project','job','all','getProjectName','\x0aSuccessfully\x20logged\x20in\x20using\x20','-n,\x20--name\x20[NAME]','Shows\x20full\x20context\x20information\x20(including\x20tokens)','Token\x20for\x20this\x20context.\x20When\x20set,\x20browser\x20login\x20is\x20not\x20used','Follow\x20the\x20steps\x20displayed\x20on\x20the\x20page\x20opened\x20in\x20the\x20browser\x20(URL\x20opened:\x20','getCurrentBaseUrl','browser\x20login','show','Error\x20occured\x20during\x20browser\x20login:\x20','\x0a\x20\x20Host:\x09\x09\x09','clearLine','defaultBaseUrl','Switch\x20between\x20your\x20local\x20contexts','moveCursor','login','log','1149492ouGjfs','removeContext','useServiceId','Use\x20project\x20with\x20id:','\x0a\x20\x20Token\x20Role\x20ID:\x09','1258434lWnzPv','italic','dir','finally','contextProvider','askForContext','getCurrentContext','tokenInternalId','loadContextWrapper','autologin-','token\x20login','\x20(current)','\x0a\x20\x20Token\x20ID:\x09\x09','use\x20from\x20now\x20on','current','6xVqVen','\x0a\x20\x20Default\x20Project:\x09','\x27\x20successfully\x20removed.','124356KfargO','override','name','Remove\x20a\x20context','replace','-t,\x20--token\x20[TOKEN]','description','agent','action','askForProject','addCommand','host','\x0a\x20\x20Token\x20Scope:\x09\x09','roleInternalId','sanitiseHostname','1634165yAINvR'];a2e=function(){return v;};return a2e();}(function(e,V){const D=a2V,b=e();while(!![]){try{const G=parseInt(D(0xb7))/0x1+-parseInt(D(0xfa))/0x2*(-parseInt(D(0xcc))/0x3)+parseInt(D(0x12b))/0x4+-parseInt(D(0xc6))/0x5*(parseInt(D(0xb4))/0x6)+-parseInt(D(0xe7))/0x7+parseInt(D(0xda))/0x8+-parseInt(D(0x130))/0x9;if(G===V)break;else b['push'](b['shift']());}catch(a){b['push'](b['shift']());}}}(a2e,0x398ed));import{ProxyAgent}from'proxy-agent';import a2b 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 a2G from'node-fetch';import{set}from'lodash-es';import a2a from'inquirer';export class CliContext{['agent'];[a2Y(0x126)];[a2Y(0x103)];['contexts'];[a2Y(0x129)];constructor(e,V=undefined,b=a2Y(0xe8)){const j=a2Y;this['agent']=V,this[j(0x126)]=b,this['apiClient']=e;const G=new InquirerHelper(e);this[j(0x129)]=getCommand()['name']('login')['description'](j(0xe4))[j(0x10b)]('--token-login','Use\x20manual\x20login\x20with\x20API\x20token',![])['option'](j(0xfb),'Use\x20browser\x20login\x20but\x20only\x20print\x20URL\x20which\x20can\x20be\x20used\x20to\x20login',![])[j(0x10b)]('-n,\x20--name\x20[NAME]',j(0xd4))[j(0x10b)](j(0xbc),j(0x11e))[j(0x10b)]('--host\x20[HOST]',j(0xd5),this['defaultBaseUrl'])['option'](j(0x115),j(0xf5),![])[j(0xbf)](async U=>{const d=j;set(U,d(0xc2),this[d(0xc5)](U['host']));const S=U[d(0xd0)]||U[d(0xf0)]!==undefined,{name:z,host:x,token:o,override:K}=S?await this[d(0xd8)](U,G):await this['browserLogin'](U,G);try{await this[d(0x103)][d(0x134)][d(0xff)]({'name':z,'host':x,'token':o},K);}catch(N){error(N['message']);return;}if(!await this[d(0xed)]())error('Failed\x20to\x20login\x20with\x20the\x20provided\x20token,\x20make\x20sure\x20to\x20use\x20a\x20valid\x20token\x20and\x20host.'),await this['apiClient'][d(0x134)][d(0x12c)](z);else{const J=S?d(0xaf):d(0x121),f=d(0x11b)+J+d(0xdc)+a2b[d(0x131)](z)+d(0xdf)+x+')';success(f);}}),this[j(0x10f)]=getCommand()[j(0xb9)](j(0xdb))[j(0xbd)](j(0xd1))[j(0xdd)]('contexts')[j(0xdd)](j(0x102));const a=getCommand()['name'](j(0xfc))[j(0xb9)]('ls')[j(0xbd)](j(0xec))[j(0x10b)](j(0x107),j(0x11d))[j(0xbf)](async U=>{const B=j;console[B(0x12a)](e['contextProvider'][B(0x100)]());const S=e[B(0x134)]['loadContextWrapper']();if(U[B(0x119)]===!![]){console[B(0x132)](S);return;}const z=S[B(0xb3)],x=S[B(0x10f)]['sort']((o,K)=>o[B(0xb9)]===z?-0x1:K['name']===z?0x1:0x0)[B(0xf1)](o=>{const I=B,K=z===o[I(0xb9)]?I(0xb0):'';return{'Name':''+o[I(0xb9)]+K,'Host':o[I(0xc2)],'Token\x20scope':o['tokenScope'],'Default\x20Project':o[I(0x117)]||'-','Default\x20Service':o[I(0xee)]||'-'};});printAsTable(x,'Contexts');}),m=getCommand()[j(0xb9)](j(0x122))['description'](j(0xd7))[j(0xbf)](async()=>{const R=j;console[R(0x12a)](e[R(0x134)][R(0x100)]());const U=e[R(0x134)]['getCurrentContext']();if(U===undefined){console['log']('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 S=decodeJwtPayload(U[R(0xf0)]),z=U[R(0xc2)];console[R(0x12a)](a2b[R(0xcd)](R(0x10d))+R(0xf7)+U['name']+R(0x124)+z+R(0xc3)+U[R(0xf2)]+R(0xb5)+(U['project']||'-')+'\x0a\x20\x20Default\x20Service:\x09'+(U[R(0xee)]||'-')+R(0xb1)+(S?.[R(0x137)]||'-')+R(0x12f)+(S?.[R(0xc4)]||'-')+R(0x105));}),O=getCommand();O[j(0xb9)](j(0xf9))['description'](j(0x127))[j(0x10b)](j(0x11c),'Change\x20current\x20context\x20to\x20context\x20identified\x20by\x20this\x20name')['action'](async U=>{const c=j,S=U?.[c(0xb9)]||await this['askForContext'](c(0xf9));this[c(0x103)][c(0x134)][c(0xc8)](S),success('Changed\x20current\x20context\x20to\x20'+S);});const E=j(0x10c),W=getCommand()['name'](j(0x117))[j(0xbd)](j(0xe1))[j(0x10b)](E,'Project\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context')[j(0xbf)](async U=>{const y=j,S=U?.['id']||await G[y(0xc0)]()();this[y(0x103)]['contextProvider'][y(0xe0)](S),console['log'](y(0x12e),S);}),M=getCommand()[j(0xb9)](j(0xee))[j(0xbd)]('Change\x20the\x20default\x20service\x20in\x20the\x20current\x20local\x20context')[j(0x10b)](E,j(0x101))[j(0xbf)](async U=>{const X=j,S=U?.['id']||await G['askForService'](this[X(0x11a)]())();console[X(0x12a)]('Use\x20service\x20with\x20id:',S),this['apiClient'][X(0x134)][X(0x12d)](S);}),Q=getCommand()[j(0xb9)](j(0x118))[j(0xbd)](j(0x111))['option'](E,'Job\x20name\x20(internal\x20id)\x20to\x20use\x20as\x20default\x20in\x20context')[j(0xbf)](async U=>{const Z=j,S=U?.['id']||await G['askForJob'](this[Z(0x11a)]())();console['log'](Z(0xe2),S),await this[Z(0x103)][Z(0x134)][Z(0xca)](S);});O[j(0xc1)](W),O[j(0xc1)](Q),O['addCommand'](M);const k=getCommand()[j(0xb9)](j(0xe3))[j(0xdd)]('delete')[j(0xdd)]('rm')['description'](j(0xba))['option'](E,'Local\x20context\x20name\x20to\x20remove.')[j(0xbf)](async U=>{const l=j,S=U?.['id']||await this[l(0x135)](l(0xe3)),z=this[l(0x103)][l(0x134)][l(0x136)]()?.[l(0xb9)];this[l(0x103)][l(0x134)]['removeContext'](S),success(l(0xeb)+S+l(0xb6));if(!this[l(0x104)]()){warning(l(0xd6));return;}if(z===S){const x=U?.['name']||await this['askForContext'](l(0xb2));this[l(0x103)]['contextProvider'][l(0xc8)](x),success(l(0xd3)+x);}}),r=getCommand()[j(0xb9)](j(0x109))[j(0xdd)](j(0xfd))[j(0xbd)](j(0xf8))[j(0x10b)](j(0xbc),j(0xea))['action'](async U=>{const T=j,{contextProvider:S}=this[T(0x103)],z=U?.[T(0xf0)]||await G['tokenPrompt'](),x=S[T(0xd9)]();S[T(0xc9)](z);if(await this['verifyToken']())success(T(0xcb)+S[T(0xde)]()+T(0xf4));else{if(x)S[T(0xc9)](x);error(T(0x10a));}});this[j(0x10f)][j(0xc1)](a),this['contexts'][j(0xc1)](m),this['contexts'][j(0xc1)](O),this[j(0x10f)]['addCommand'](k),this[j(0x10f)][j(0xc1)](r);}async[a2Y(0x114)](e,V){const g=a2Y,b=!e['doNotOpenBrowser'],G=e[g(0xc2)]??this[g(0x126)],a=new NorthflankApiBrowserLogin(G,b,this[g(0xbe)]);let m;a['on'](g(0x108),({url:M})=>{const p=g;if(b){const Q=M[p(0xbb)](/sessionToken=.*/,p(0xcf));console[p(0x12a)](p(0x11f)+Q+')'),m=a2a['prompt']([{'type':p(0xce),'name':p(0x112),'message':p(0xfe),'default':![]}]),m['then'](k=>{const C=p;process['stdout'][C(0x128)](0x0,-0x1),process['stdout'][C(0x125)](0x1),k[C(0x112)]&&console[C(0x12a)](C(0x116)+M+'\x20');});}else console['log'](p(0x116)+M+'\x20');});const {token:O,contextName:E}=await a[g(0xef)]()[g(0xd2)](async M=>{const u=g;error(u(0x123)+M[u(0x113)]+'.\x20Using\x20fallback.');const Q=await this[u(0xd8)](e,V);return{'token':Q[u(0xf0)],'contextName':Q[u(0xb9)]};})[g(0x133)](()=>{const L=g;if(m)m['ui'][L(0xe9)]();}),W=e[g(0xb9)]??E??g(0xae)+new Date()['valueOf']();return{'name':W,'token':O,'host':G,'override':e[g(0xb8)]??![]};}['sanitiseHostname']=e=>{const q=a2Y;let V=e;return!/^https?:\/\//i[q(0xc7)](V)&&(V=q(0xe5)+V),V=V['replace'](/\/+$/,''),V;};async[a2Y(0xd8)](e,V){const s=a2Y,b=this[s(0x103)][s(0x134)][s(0xad)]()[s(0x10f)],{name:G,token:a,host:m,override:O}=await V['loginPrompt'](e,b);return{'name':G,'token':a,'host':m,'override':O};}[a2Y(0x11a)](){const F=a2Y,e=this[F(0x103)][F(0x134)][F(0x10e)]();if(e===undefined)throw new Error(F(0xf6));return e;}async['askForContext'](e){const H=a2Y;if(!this[H(0x104)]())throw new Error('No\x20context\x20available.\x20Please\x20use\x20\x27northflank\x20login\x27\x20to\x20create\x20context.');const V=this[H(0x103)][H(0x134)]['loadContextWrapper']()[H(0x10f)]['map'](G=>G[H(0xb9)]),b=V['length']>0x4?'search-list':H(0xfc);return(await a2a[H(0xf3)]([{'type':b,'name':'name','message':H(0x106)+e+':','choices':V}]))['name'];}[a2Y(0x104)](){const i=a2Y;return this[i(0x103)][i(0x134)][i(0xad)]()[i(0x10f)][i(0xe6)]>0x0;}async[a2Y(0xed)](){const P=a2Y;try{const V=this['apiClient'][P(0x134)][P(0x120)](),b=this['apiClient'][P(0x134)][P(0xd9)](),G=V+'/v1/login',a={'Authorization':P(0x110)+b},m=new ProxyAgent(),O=await retry(0x3)(async()=>a2G(G,{'method':'GET','signal':AbortSignal['timeout'](0xbb8),'headers':a,'agent':m}));if(O['ok'])return!![];return![];}catch(E){return![];}}}
|
package/dist/copy/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a3R=a3V;(function(e,V){const I=a3V,b=e();while(!![]){try{const G=parseInt(I(0x169))/0x1*(parseInt(I(0x14b))/0x2)+-parseInt(I(0x183))/0x3*(-parseInt(I(0x190))/0x4)+parseInt(I(0x178))/0x5*(parseInt(I(0x16e))/0x6)+parseInt(I(0x184))/0x7*(parseInt(I(0x18c))/0x8)+parseInt(I(0x191))/0x9*(parseInt(I(0x163))/0xa)+parseInt(I(0x179))/0xb*(-parseInt(I(0x198))/0xc)+-parseInt(I(0x168))/0xd;if(G===V)break;else b['push'](b['shift']());}catch(a){b['push'](b['shift']());}}}(a3e,0x72a53));import{ApiClient,CopyType}from'@northflank/js-client';function a3V(e,V){const b=a3e();return a3V=function(G,a){G=G-0x148;let m=b[G];return m;},a3V(e,V);}import{assertContextExisting,customUserAgent,getCommand,success}from'../utils.js';function a3e(){const L=['description','\x20(random\x20instance\x20will\x20be\x20chosen\x20if\x20not\x20specified)','ensureRelevantPathIsSet','\x20(random\x20container\x20will\x20be\x20chosen\x20if\x20not\x20specified)','File\x20and\x20directory\x20download\x20for\x20Northflank\x20service.','askForJob','download','\x27localPath\x27','Uploaded\x20all\x20directory\x20contents\x20from\x20\x27','job','4210QKYNPa','files','-dir','upload','DIRECTORY_DOWNLOAD','26549601qrAthD','5CYlvfl','Instance\x20(pod\x20name)\x20used\x20to\x20','downloadCmd','\x27\x20to\x20\x27','File\x20and\x20directory\x20download\x20for\x20Northflank\x20services\x20and\x20jobs.','28716gPoXLF','\x27\x20to\x20container\x20directory\x20\x27','\x20to\x20','option','file','apiClient','Id\x20[NAME]','getCurrentProjectName','Downloaded\x20file\x20\x27','\x20files\x20','570oMRofE','121XROLtn','getTokenScope','--team\x20--teamId\x20[TEAMID]','uploadCmd','\x20file\x20--localPath\x20my_directory\x20--remotePath\x20/home/','ed-file.txt\x0a\x20\x20','\x20the\x20specified\x20','slice','prompt','\x20directory:\x20\x20\x20\x20\x20northflank\x20','3ddXJgd','5428955qJLoBi','localPath','remotePath','FILE_DOWNLOAD','askForTeam','type','addCommand','logCopyResult','8FgprUO','\x20files','s.\x20Please\x20enter\x20a\x20path:','Path\x20does\x20not\x20exist,\x20it\x20will\x20be\x20created.\x0aExamples:\x0a\x20\x20','171948KwzvhU','12294DycmAM','action','--container\x20--containerId\x20[NAME]','Downloaded\x20all\x20directory\x20contents\x20from\x20\x27','askForProjectContext','toUpperCase','from','5556XIGARK','--remote\x20--remotePath\x20[REMOTEPATH]','getStandardCopyCommand','service','File\x20and\x20directory\x20download\x20for\x20Northflank\x20job.','\x20--','File\x20and\x20directory\x20upload\x20for\x20Northflank\x20service.','current\x20working','input','charAt','File\x20and\x20directory\x20upload\x20for\x20Northflank\x20job.','Remote\x20file\x20or\x20directory','231086ZQvpnf','Team\x20id','askForProject','alias','Project\x20for\x20','\x20single\x20file:\x20\x20\x20northflank\x20','askForPath','getCurrentServiceName','\x20is\x20required\x20for\x20','DIRECTORY_UPLOAD','user\x20home','Path\x20is\x20not\x20specified,\x20the\x20','name','.\x20If\x20the\x20'];a3e=function(){return L;};return a3e();}import{InquirerHelper}from'../inquirer-helper.js';import{capitalize}from'lodash-es';import a3b from'inquirer';export class CliFileCopy{[a3R(0x16b)];[a3R(0x17c)];[a3R(0x173)];[a3R(0x19a)]=(e,V)=>{const c=a3R,b=capitalize(V),G=V==='upload'?'remote':'local',a=V===c(0x166)?c(0x155):c(0x19f),m=V==='upload'?'to':c(0x197),O=getCommand(!![])[c(0x157)](c(0x172))[c(0x159)](b+c(0x177)+m+c(0x17f)+e+c(0x158)+G+c(0x156)+a+'\x20directory\x20is\x20used.\x20If\x20the\x20directory\x20for\x20'+G+c(0x18f)+b+c(0x150)+V+'\x20'+e+'\x20file\x20--localPath\x20my_directory/my-file.txt\x20--remotePath\x20/home/my-'+V+c(0x17e)+b+c(0x182)+V+'\x20'+e+c(0x17d)+V+c(0x165))['option']('--project\x20--projectId\x20[NAME]',c(0x14f)+V);return this[c(0x173)]['contextProvider'][c(0x17a)]()==='org'&&O[c(0x171)](c(0x17b),c(0x14c)),O[c(0x171)]('--'+e+c(0x19d)+e+c(0x174),e[c(0x148)](0x0)[c(0x196)]()+e[c(0x180)](0x1)+c(0x170)+V+c(0x18d))[c(0x171)]('--instance\x20--instanceName\x20[NAME]',c(0x16a)+V+c(0x15a))[c(0x171)](c(0x193),'Container\x20used\x20to\x20'+V+c(0x15c))[c(0x171)]('--local\x20--localPath\x20[LOCALPATH]','Local\x20file\x20or\x20directory')[c(0x171)](c(0x199),c(0x14a))[c(0x171)]('--noDefaults','Don\x27t\x20use\x20context\x20default\x20values,\x20explicitly\x20use\x20options\x20or\x20ask.',![]),O;};constructor(e,V){const y=a3R;this['apiClient']=new ApiClient(e,{'throwErrorOnHttpErrorCode':!![],'customUserAgent':customUserAgent,'agent':V});const b=new InquirerHelper(this['apiClient']);this[y(0x16b)]=getCommand()['name'](y(0x15f))[y(0x14e)]('dl')[y(0x159)](y(0x16d)),this['uploadCmd']=getCommand()[y(0x157)](y(0x166))['alias']('ul')['description']('File\x20and\x20directory\x20upload\x20for\x20Northflank\x20services\x20and\x20jobs.');const G=getCommand()[y(0x157)]('service')[y(0x159)](y(0x15d)),a=getCommand()[y(0x157)]('service')['description'](y(0x19e)),m=getCommand()[y(0x157)](y(0x162))[y(0x159)](y(0x19c)),O=getCommand()[y(0x157)](y(0x162))[y(0x159)](y(0x149)),E=M=>{const X=y;return this[X(0x19a)](X(0x19b),M)[X(0x192)](async Q=>{const Z=X,{teamId:k,projectId:r,serviceId:U,containerId:S,instanceName:z,noDefaults:x,quiet:o}=Q;assertContextExisting(this[Z(0x173)]);const K=x?undefined:e['getCurrentProjectName'](),{projectId:N,teamId:J}=await this[Z(0x195)](e,b,r,k,K),f=x?undefined:e[Z(0x152)](),D=U||f||await b['askForService'](N,J)(),{remotePath:Y,localPath:j}=await this['ensureRelevantPathIsSet'](M,Q),d={'teamId':J,'projectId':N,'serviceId':D},B=await this[Z(0x173)][M][Z(0x19b)]['files'](d,{'containerName':S,'instanceName':z,'localPath':j,'remotePath':Y});this['logCopyResult'](B,o);});},W=M=>{const l=y;return this[l(0x19a)](l(0x162),M)['action'](async Q=>{const T=l,{projectId:k,teamId:r,jobId:U,instanceName:S,containerId:z,noDefaults:x,quiet:o}=Q;assertContextExisting(this[T(0x173)]);const K=x?undefined:e[T(0x175)](),{projectId:N,teamId:J}=await this[T(0x195)](e,b,k,r,K),f=U||await b[T(0x15e)](N,J)(),{remotePath:D,localPath:Y}=await this[T(0x15b)](M,Q),j={'teamId':J,'projectId':N,'jobId':f},d=await this[T(0x173)][M][T(0x162)][T(0x164)](j,{'containerName':z,'instanceName':S,'localPath':Y,'remotePath':D});this[T(0x18b)](d,o);});};G[y(0x18a)](E(y(0x15f))),m[y(0x18a)](W(y(0x15f))),a[y(0x18a)](E('upload')),O[y(0x18a)](W(y(0x166))),this[y(0x16b)][y(0x18a)](G),this['downloadCmd']['addCommand'](m),this[y(0x17c)][y(0x18a)](a),this[y(0x17c)][y(0x18a)](O);}['askForProjectContext']=async(e,V,b,G,a)=>{const g=a3R,m=e['getTokenScope']()==='org'?G??await V[g(0x188)]():undefined,O=b||a||await V[g(0x14d)](m)();return{'teamId':m,'projectId':O};};['logCopyResult']=(e,V)=>{const p=a3R;if(V)return;const {sourceDirectory:b,targetDirectory:G,sourceFile:a,targetFile:m}=e;switch(e[p(0x189)]){case CopyType[p(0x167)]:{success(p(0x194)+b+'\x27\x20to\x20local\x20directory\x20\x27'+G+'\x27');break;}case CopyType[p(0x187)]:{success(p(0x176)+b+'/'+a+p(0x16c)+G+'/'+m+'\x27');break;}case CopyType[p(0x154)]:{success(p(0x161)+b+p(0x16f)+G+'\x27');break;}case CopyType['FILE_UPLOAD']:{success('Uploaded\x20file\x20from\x20\x27'+b+'/'+a+p(0x16c)+G+'/'+m+'\x27');break;}}};['ensureRelevantPathIsSet']=async(e,V)=>{const C=a3R,b=e===C(0x15f)&&V[C(0x186)]===undefined?await this[C(0x151)]('\x27remotePath\x27',C(0x15f)):V[C(0x186)],G=e==='upload'&&V[C(0x185)]===undefined?await this[C(0x151)](C(0x160),C(0x166)):V[C(0x185)];return{'localPath':G,'remotePath':b};};['askForPath']=async(e,V)=>{const u=a3R,b=e+u(0x153)+V+u(0x18e);return(await a3b[u(0x181)]([{'type':u(0x1a0),'name':u(0x157),'message':b}]))[u(0x157)];};}
|