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