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